From 7d300a39c94f1325f37b82c9032ae6985d0b2765 Mon Sep 17 00:00:00 2001 From: zarzet Date: Thu, 11 Jun 2026 01:08:20 +0700 Subject: [PATCH] refactor: generalize Tidal-specific naming to legacy/DASH terminology - Rename downloadProviderMatchesBuiltIn -> downloadProviderReplacesLegacyProvider - Rename Tidal DASH ffmpeg helpers and lossy format pickers to generic names - Add utils.decryptCTRSegments crypto API + raw/bytes file read path in extension runtime - Update l10n strings/descriptions to drop hardcoded service names - Bump version to 4.5.7+134 --- .gitignore | 1 + README.md | 9 +- go_backend/extension_runtime.go | 1 + go_backend/extension_runtime_binary.go | 235 ++++++++++++-- go_backend/extension_runtime_binary_test.go | 300 ++++++++++++++++++ go_backend/extension_runtime_file.go | 16 +- lib/constants/app_info.dart | 4 +- lib/l10n/app_localizations.dart | 62 ++-- lib/l10n/app_localizations_ar.dart | 29 +- lib/l10n/app_localizations_de.dart | 27 +- lib/l10n/app_localizations_en.dart | 29 +- lib/l10n/app_localizations_es.dart | 56 ++-- lib/l10n/app_localizations_fr.dart | 26 +- lib/l10n/app_localizations_hi.dart | 29 +- lib/l10n/app_localizations_id.dart | 27 +- lib/l10n/app_localizations_ja.dart | 29 +- lib/l10n/app_localizations_ko.dart | 31 +- lib/l10n/app_localizations_nl.dart | 29 +- lib/l10n/app_localizations_pt.dart | 56 ++-- lib/l10n/app_localizations_ru.dart | 26 +- lib/l10n/app_localizations_tr.dart | 28 +- lib/l10n/app_localizations_uk.dart | 27 +- lib/l10n/app_localizations_zh.dart | 88 ++--- lib/l10n/arb/app_ar.arb | 62 ++-- lib/l10n/arb/app_de.arb | 62 ++-- lib/l10n/arb/app_en.arb | 62 ++-- lib/l10n/arb/app_es.arb | 58 ++-- lib/l10n/arb/app_es_ES.arb | 62 ++-- lib/l10n/arb/app_fr.arb | 62 ++-- lib/l10n/arb/app_hi.arb | 62 ++-- lib/l10n/arb/app_id.arb | 62 ++-- lib/l10n/arb/app_ja.arb | 62 ++-- lib/l10n/arb/app_ko.arb | 62 ++-- lib/l10n/arb/app_nl.arb | 62 ++-- lib/l10n/arb/app_pt.arb | 58 ++-- lib/l10n/arb/app_pt_PT.arb | 62 ++-- lib/l10n/arb/app_ru.arb | 62 ++-- lib/l10n/arb/app_tr.arb | 62 ++-- lib/l10n/arb/app_uk.arb | 62 ++-- lib/l10n/arb/app_zh.arb | 58 ++-- lib/l10n/arb/app_zh_CN.arb | 62 ++-- lib/l10n/arb/app_zh_TW.arb | 62 ++-- lib/models/settings.dart | 2 +- lib/providers/download_queue_provider.dart | 30 +- lib/providers/extension_provider.dart | 12 +- .../settings/download_settings_page.dart | 26 +- lib/services/ffmpeg_service.dart | 16 +- pubspec.yaml | 4 +- 48 files changed, 1479 insertions(+), 942 deletions(-) diff --git a/.gitignore b/.gitignore index b81c3a4b..ecf49ac1 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ extension/ AGENTS.md # Temp/misc +.tmp/ nul NUL network_requests.txt diff --git a/README.md b/README.md index 07c9783d..bd1faa96 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Extensions let the community add new music sources and features without waiting ## Related Projects ### [SpotiFLAC (Desktop)](https://github.com/afkarxyz/SpotiFLAC) -Download music in true lossless FLAC from Tidal, Qobuz & Amazon Music available for Windows, macOS & Linux. +Download music in true lossless FLAC from extension-provided sources on Windows, macOS & Linux. ### [SpotiFLAC (Python Module)](https://github.com/ShuShuzinhuu/SpotiFLAC-Module-Version) Python library for SpotiFLAC integration, maintained by [@ShuShuzinhuu](https://github.com/ShuShuzinhuu). @@ -80,7 +80,7 @@ Starting from version 3.8.0, SpotiFLAC uses a decentralized extension repository Why is my download failing with "Song not found"?
-The track may not be available on the streaming services. Try enabling more providers under **Settings > Download > Provider Priority**, or install additional extensions like Amazon Music from the Store. +The track may not be available from your enabled providers. Try enabling more providers under **Settings > Extensions > Provider Priority**, or install additional download extensions from the Store. @@ -88,10 +88,7 @@ The track may not be available on the streaming services. Try enabling more prov Why are some tracks downloading in lower quality?
-Quality depends on what's available from the streaming service and its extensions. Built-in providers: -- **Tidal** up to 24-bit/192kHz -- **Qobuz** up to 24-bit/192kHz -- **Deezer** up to 16-bit/44.1kHz +Quality depends on what's available from the source and the installed download extension. Check each extension's quality options and service notes in the app. diff --git a/go_backend/extension_runtime.go b/go_backend/extension_runtime.go index f29d3528..3eaf6eda 100644 --- a/go_backend/extension_runtime.go +++ b/go_backend/extension_runtime.go @@ -504,6 +504,7 @@ func (r *extensionRuntime) RegisterAPIs(vm *goja.Runtime) { utilsObj.Set("decrypt", r.cryptoDecrypt) utilsObj.Set("encryptBlockCipher", r.encryptBlockCipher) utilsObj.Set("decryptBlockCipher", r.decryptBlockCipher) + utilsObj.Set("decryptCTRSegments", r.decryptCTRSegments) utilsObj.Set("generateKey", r.cryptoGenerateKey) utilsObj.Set("randomUserAgent", r.randomUserAgent) utilsObj.Set("appVersion", r.appVersion) diff --git a/go_backend/extension_runtime_binary.go b/go_backend/extension_runtime_binary.go index 1fb02c17..adb2fb66 100644 --- a/go_backend/extension_runtime_binary.go +++ b/go_backend/extension_runtime_binary.go @@ -158,6 +158,11 @@ func decodeRuntimeBytesValue(raw interface{}, encoding string) ([]byte, error) { cloned := make([]byte, len(value)) copy(cloned, value) return cloned, nil + case goja.ArrayBuffer: + src := value.Bytes() + cloned := make([]byte, len(src)) + copy(cloned, src) + return cloned, nil case []interface{}: decoded := make([]byte, len(value)) for i, item := range value { @@ -279,7 +284,10 @@ func (r *extensionRuntime) transformBlockCipher(call goja.FunctionCall, decrypt "error": err.Error(), }) } - if parsedOptions.Mode != "cbc" { + switch parsedOptions.Mode { + case "cbc", "ctr": + // supported + default: return r.vm.ToValue(map[string]interface{}{ "success": false, "error": fmt.Sprintf("unsupported block cipher mode: %s", parsedOptions.Mode), @@ -303,37 +311,49 @@ func (r *extensionRuntime) transformBlockCipher(call goja.FunctionCall, decrypt } if len(parsedOptions.IV) != block.BlockSize() { - return r.vm.ToValue(map[string]interface{}{ - "success": false, - "error": fmt.Sprintf("iv must be %d bytes for %s", block.BlockSize(), parsedOptions.Algorithm), - }) - } - - data := inputData - if !decrypt && parsedOptions.Padding == "pkcs7" { - data = applyPKCS7Padding(data, block.BlockSize()) - } - if len(data)%block.BlockSize() != 0 { - return r.vm.ToValue(map[string]interface{}{ - "success": false, - "error": fmt.Sprintf("input length must be a multiple of %d bytes", block.BlockSize()), - }) - } - - output := make([]byte, len(data)) - if decrypt { - cipher.NewCBCDecrypter(block, parsedOptions.IV).CryptBlocks(output, data) - if parsedOptions.Padding == "pkcs7" { - output, err = removePKCS7Padding(output, block.BlockSize()) - if err != nil { - return r.vm.ToValue(map[string]interface{}{ - "success": false, - "error": err.Error(), - }) - } + ivLabel := "iv" + if parsedOptions.Mode == "ctr" { + ivLabel = "iv (counter)" } + return r.vm.ToValue(map[string]interface{}{ + "success": false, + "error": fmt.Sprintf("%s must be %d bytes for %s", ivLabel, block.BlockSize(), parsedOptions.Algorithm), + }) + } + + var output []byte + if parsedOptions.Mode == "ctr" { + // CTR is a stream mode: encryption and decryption are identical, + // require no padding, and accept arbitrary input lengths. + output = make([]byte, len(inputData)) + cipher.NewCTR(block, parsedOptions.IV).XORKeyStream(output, inputData) } else { - cipher.NewCBCEncrypter(block, parsedOptions.IV).CryptBlocks(output, data) + data := inputData + if !decrypt && parsedOptions.Padding == "pkcs7" { + data = applyPKCS7Padding(data, block.BlockSize()) + } + if len(data)%block.BlockSize() != 0 { + return r.vm.ToValue(map[string]interface{}{ + "success": false, + "error": fmt.Sprintf("input length must be a multiple of %d bytes", block.BlockSize()), + }) + } + + output = make([]byte, len(data)) + if decrypt { + cipher.NewCBCDecrypter(block, parsedOptions.IV).CryptBlocks(output, data) + if parsedOptions.Padding == "pkcs7" { + output, err = removePKCS7Padding(output, block.BlockSize()) + if err != nil { + return r.vm.ToValue(map[string]interface{}{ + "success": false, + "error": err.Error(), + }) + } + } + } else { + cipher.NewCBCEncrypter(block, parsedOptions.IV).CryptBlocks(output, data) + } } encoded, err := encodeRuntimeBytes(output, parsedOptions.OutputEncoding) @@ -358,3 +378,158 @@ func (r *extensionRuntime) encryptBlockCipher(call goja.FunctionCall) goja.Value func (r *extensionRuntime) decryptBlockCipher(call goja.FunctionCall) goja.Value { return r.transformBlockCipher(call, true) } + +// decryptCTRSegments decrypts many independently-IV'd AES-CTR segments inside a +// single buffer in one host call. This exists to avoid thousands of JS->Go +// bridge crossings when an extension decrypts per-sample CENC media (each +// sample has its own IV/counter and cannot be merged into one stream). +// +// It is a generic primitive: any extension can use it for "one buffer, many +// CTR segments" workloads, not just Apple CENC. +// +// For best performance, pass the buffer as an ArrayBuffer/Uint8Array and set +// outputEncoding:"bytes" to get an ArrayBuffer back. This avoids base64 +// encode/decode of the (potentially multi-MB) payload entirely, which is the +// dominant cost under the goja interpreter. +// +// JS signature: +// utils.decryptCTRSegments(data, { +// algorithm: "aes", // optional, default "aes" +// key: "", keyEncoding: "hex", +// segments: [ { offset: , size: , iv: "" }, ... ], +// ivEncoding: "base64", // encoding of each segment.iv, default base64 +// inputEncoding: "bytes", // "bytes" for ArrayBuffer/Uint8Array, else base64/hex +// outputEncoding: "bytes" // "bytes" -> ArrayBuffer; else base64/hex string +// }) +// Returns { success, data, segments_processed } or { success:false, error }. +func (r *extensionRuntime) decryptCTRSegments(call goja.FunctionCall) goja.Value { + fail := func(msg string) goja.Value { + return r.vm.ToValue(map[string]interface{}{ + "success": false, + "error": msg, + }) + } + + if len(call.Arguments) < 2 { + return fail("data and options are required") + } + + options := parseRuntimeOptionsArgument(call, 1) + if options == nil { + return fail("options object is required") + } + + algorithm := strings.ToLower(runtimeOptionString(options, "algorithm", "aes")) + inputEncoding := strings.ToLower(runtimeOptionString(options, "inputEncoding", "base64")) + outputEncoding := strings.ToLower(runtimeOptionString(options, "outputEncoding", "base64")) + ivEncoding := strings.ToLower(runtimeOptionString(options, "ivEncoding", "base64")) + + key, err := decodeRuntimeBytesString( + runtimeOptionString(options, "key", ""), + runtimeOptionString(options, "keyEncoding", "hex"), + ) + if err != nil { + return fail(fmt.Sprintf("invalid key: %v", err)) + } + if len(key) == 0 { + return fail("key is required") + } + + var block cipher.Block + switch algorithm { + case "aes": + block, err = aes.NewCipher(key) + case "blowfish": + block, err = blowfish.NewCipher(key) + default: + return fail("unsupported algorithm: " + algorithm) + } + if err != nil { + return fail(err.Error()) + } + blockSize := block.BlockSize() + + // Decode the payload. For "bytes" input we operate on the raw []byte + // (ArrayBuffer/Uint8Array) without any base64 round-trip. + var data []byte + if inputEncoding == "bytes" || inputEncoding == "raw" { + data, err = decodeRuntimeBytesValue(call.Arguments[0].Export(), "") + if err != nil { + return fail("invalid byte payload: " + err.Error()) + } + } else { + data, err = decodeRuntimeBytesValue(call.Arguments[0].Export(), inputEncoding) + if err != nil { + return fail(err.Error()) + } + } + + rawSegments, ok := options["segments"] + if !ok || rawSegments == nil { + return fail("segments array is required") + } + segments, ok := rawSegments.([]interface{}) + if !ok { + return fail("segments must be an array") + } + + processed := 0 + for i, rawSeg := range segments { + seg, ok := rawSeg.(map[string]interface{}) + if !ok { + return fail(fmt.Sprintf("segment %d is not an object", i)) + } + + offset := int(runtimeOptionInt64(seg, "offset", -1)) + size := int(runtimeOptionInt64(seg, "size", -1)) + if offset < 0 || size < 0 { + return fail(fmt.Sprintf("segment %d has invalid offset/size", i)) + } + if size == 0 { + continue + } + if offset+size > len(data) { + return fail(fmt.Sprintf("segment %d out of bounds (offset=%d size=%d len=%d)", i, offset, size, len(data))) + } + + iv, err := decodeRuntimeBytesString(runtimeOptionString(seg, "iv", ""), ivEncoding) + if err != nil { + return fail(fmt.Sprintf("segment %d has invalid iv: %v", i, err)) + } + if len(iv) != blockSize { + // Accept short IVs by left-aligning into a block-sized counter + // (CENC commonly uses 8-byte IVs for a 16-byte AES counter). + if len(iv) > blockSize { + return fail(fmt.Sprintf("segment %d iv longer than block size (%d > %d)", i, len(iv), blockSize)) + } + padded := make([]byte, blockSize) + copy(padded, iv) + iv = padded + } + + segData := data[offset : offset+size] + cipher.NewCTR(block, iv).XORKeyStream(segData, segData) + processed++ + } + + // Return raw bytes as an ArrayBuffer when requested (zero-copy-ish, no + // base64). Otherwise fall back to an encoded string. + if outputEncoding == "bytes" || outputEncoding == "raw" { + return r.vm.ToValue(map[string]interface{}{ + "success": true, + "data": r.vm.NewArrayBuffer(data), + "segments_processed": processed, + }) + } + + encoded, err := encodeRuntimeBytes(data, outputEncoding) + if err != nil { + return fail(err.Error()) + } + + return r.vm.ToValue(map[string]interface{}{ + "success": true, + "data": encoded, + "segments_processed": processed, + }) +} diff --git a/go_backend/extension_runtime_binary_test.go b/go_backend/extension_runtime_binary_test.go index d69dad5b..821f5767 100644 --- a/go_backend/extension_runtime_binary_test.go +++ b/go_backend/extension_runtime_binary_test.go @@ -183,3 +183,303 @@ func TestExtensionRuntime_BlockCipherCBCSupportsAES(t *testing.T) { t.Fatalf("unexpected decrypted value: %q", result.String()) } } + +func TestExtensionRuntime_BlockCipherCTRSupportsAES(t *testing.T) { + vm := newBinaryTestRuntime(t, false) + + // NIST SP 800-38A, F.5.1 CTR-AES128.Encrypt test vector. + // Key: 2b7e151628aed2a6abf7158809cf4f3c + // Counter: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff + // Plaintext: 6bc1bee22e409f96e93d7e117393172a (block 1) + // Ciphertext: 874d6191b620e3261bef6864990db6ce (block 1) + result, err := vm.RunString(` + (function() { + var options = { + algorithm: "aes", + mode: "ctr", + key: "2b7e151628aed2a6abf7158809cf4f3c", + keyEncoding: "hex", + iv: "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + ivEncoding: "hex", + inputEncoding: "hex", + outputEncoding: "hex" + }; + var enc = utils.encryptBlockCipher("6bc1bee22e409f96e93d7e117393172a", options); + if (!enc.success) throw new Error(enc.error); + // CTR is symmetric: decrypt is the same transform as encrypt. + var dec = utils.decryptBlockCipher(enc.data, options); + if (!dec.success) throw new Error(dec.error); + return JSON.stringify({enc: enc.data, dec: dec.data}); + })() + `) + if err != nil { + t.Fatalf("aes ctr block cipher failed: %v", err) + } + + decoded := decodeJSONResult[struct { + Enc string `json:"enc"` + Dec string `json:"dec"` + }](t, result) + + if decoded.Enc != "874d6191b620e3261bef6864990db6ce" { + t.Fatalf("ctr ciphertext = %q, want NIST vector 874d6191b620e3261bef6864990db6ce", decoded.Enc) + } + if decoded.Dec != "6bc1bee22e409f96e93d7e117393172a" { + t.Fatalf("ctr round-trip dec = %q", decoded.Dec) + } +} + +func TestExtensionRuntime_BlockCipherCTRHandlesNonBlockLength(t *testing.T) { + vm := newBinaryTestRuntime(t, false) + + // CTR is a stream mode, so arbitrary (non-16-byte-aligned) input lengths + // must round-trip without any padding. + result, err := vm.RunString(` + (function() { + var options = { + algorithm: "aes", + mode: "ctr", + key: "000102030405060708090a0b0c0d0e0f", + keyEncoding: "hex", + iv: "0f0e0d0c0b0a09080706050403020100", + ivEncoding: "hex", + inputEncoding: "utf8", + outputEncoding: "base64" + }; + var enc = utils.encryptBlockCipher("stream ctr of odd length", options); + if (!enc.success) throw new Error(enc.error); + var dec = utils.decryptBlockCipher(enc.data, { + algorithm: "aes", + mode: "ctr", + key: options.key, + keyEncoding: options.keyEncoding, + iv: options.iv, + ivEncoding: options.ivEncoding, + inputEncoding: "base64", + outputEncoding: "utf8" + }); + if (!dec.success) throw new Error(dec.error); + return dec.data; + })() + `) + if err != nil { + t.Fatalf("aes ctr stream length failed: %v", err) + } + + if result.String() != "stream ctr of odd length" { + t.Fatalf("unexpected ctr decrypted value: %q", result.String()) + } +} + +func TestExtensionRuntime_BlockCipherCTRRejectsBadIV(t *testing.T) { + vm := newBinaryTestRuntime(t, false) + + result, err := vm.RunString(` + (function() { + var res = utils.encryptBlockCipher("00112233", { + algorithm: "aes", + mode: "ctr", + key: "000102030405060708090a0b0c0d0e0f", + keyEncoding: "hex", + iv: "0001", + ivEncoding: "hex", + inputEncoding: "hex", + outputEncoding: "hex" + }); + return JSON.stringify({success: res.success, error: res.error || ""}); + })() + `) + if err != nil { + t.Fatalf("aes ctr bad iv eval failed: %v", err) + } + + decoded := decodeJSONResult[struct { + Success bool `json:"success"` + Error string `json:"error"` + }](t, result) + + if decoded.Success { + t.Fatal("expected failure for undersized CTR iv") + } + if decoded.Error == "" { + t.Fatal("expected error message for undersized CTR iv") + } +} + +func TestExtensionRuntime_DecryptCTRSegmentsMatchesPerSegment(t *testing.T) { + vm := newBinaryTestRuntime(t, false) + + // Build a buffer of 3 segments encrypted with distinct 8-byte IVs (CENC + // style), then verify the batch primitive decrypts all of them in one call, + // matching what per-segment decryptBlockCipher would produce. + result, err := vm.RunString(` + (function() { + var keyHex = "000102030405060708090a0b0c0d0e0f"; + function b64(bytes){return utils.base64Encode(utils.toHex ? bytes : bytes);} + + // segment plaintexts (hex) and 8-byte IVs (hex) + var segs = [ + { pt: "11111111111111111111", iv: "0000000000000001" }, + { pt: "2222222222", iv: "0000000000000002" }, + { pt: "333333333333333333333333", iv: "00000000000000ff" } + ]; + + // Encrypt each segment individually using single-shot CTR with a + // 16-byte counter (8-byte iv left-aligned), producing ciphertext hex. + function ivToB64(ivHex){ + // pad 8-byte hex iv to 16 bytes then base64 + var full = ivHex + "00000000000000000000000000000000".slice(ivHex.length); + return utils.base64Encode(utils.hexToBytes ? utils.hexToBytes(full) : full); + } + + var cipherHex = ""; + var offsets = []; + var off = 0; + var ivB64s = []; + for (var i=0;i= 0", }) } - file, err := os.Open(fullPath) if err != nil { return r.vm.ToValue(map[string]interface{}{ @@ -716,6 +715,20 @@ func (r *extensionRuntime) fileReadBytes(call goja.FunctionCall) goja.Value { } } + if strings.EqualFold(strings.TrimSpace(encoding), "bytes") || + strings.EqualFold(strings.TrimSpace(encoding), "raw") { + // Return raw bytes as an ArrayBuffer to avoid base64 encode/decode of + // large payloads under the goja interpreter. + return r.vm.ToValue(map[string]interface{}{ + "success": true, + "data": r.vm.NewArrayBuffer(data), + "bytes_read": len(data), + "offset": offset, + "size": size, + "eof": offset+int64(len(data)) >= size, + }) + } + encoded, err := encodeRuntimeBytes(data, encoding) if err != nil { return r.vm.ToValue(map[string]interface{}{ @@ -733,7 +746,6 @@ func (r *extensionRuntime) fileReadBytes(call goja.FunctionCall) goja.Value { "eof": offset+int64(len(data)) >= size, }) } - func (r *extensionRuntime) fileWrite(call goja.FunctionCall) goja.Value { if len(call.Arguments) < 2 { return r.vm.ToValue(map[string]interface{}{ diff --git a/lib/constants/app_info.dart b/lib/constants/app_info.dart index 7f797ba3..f43a82b0 100644 --- a/lib/constants/app_info.dart +++ b/lib/constants/app_info.dart @@ -1,8 +1,8 @@ import 'package:flutter/foundation.dart'; class AppInfo { - static const String version = '4.5.6'; - static const String buildNumber = '133'; + static const String version = '4.5.7'; + static const String buildNumber = '134'; static const String fullVersion = '$version+$buildNumber'; static String get displayVersion => kDebugMode ? 'Internal' : version; diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index a8feb295..fbe74e69 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -380,10 +380,10 @@ abstract class AppLocalizations { /// **'Choose which tab opens first for new search results.'** String get optionsDefaultSearchTabSubtitle; - /// Hint to switch back to built-in providers + /// Hint to switch back from extension search /// /// In en, this message translates to: - /// **'Tap Deezer or Spotify to switch back from extension'** + /// **'Choose the default search provider to switch back from an extension'** String get optionsSwitchBack; /// Auto-retry with other services @@ -398,7 +398,7 @@ abstract class AppLocalizations { /// **'Try other services if download fails'** String get optionsAutoFallbackSubtitle; - /// Enable extension download providers + /// Legacy setting label for extension download providers /// /// In en, this message translates to: /// **'Use Extension Providers'** @@ -407,13 +407,13 @@ abstract class AppLocalizations { /// Status when extension providers enabled /// /// In en, this message translates to: - /// **'Extensions will be tried first'** + /// **'Extension providers are enabled'** String get optionsUseExtensionProvidersOn; - /// Status when extension providers disabled + /// Legacy status when extension providers would be disabled /// /// In en, this message translates to: - /// **'Using built-in providers only'** + /// **'Extension providers are required'** String get optionsUseExtensionProvidersOff; /// Embed lyrics in audio files @@ -797,13 +797,13 @@ abstract class AppLocalizations { /// Credit description for binimum /// /// In en, this message translates to: - /// **'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'** + /// **'The creator of QQDL & HiFi API. This project helped shape lossless download support.'** String get aboutBinimumDesc; /// Credit description for sachinsenal0x64 /// /// In en, this message translates to: - /// **'The original HiFi project creator. The foundation of Tidal integration!'** + /// **'The original HiFi project creator. A foundation for lossless-source integration.'** String get aboutSachinsenalDesc; /// Credit description for sjdonado @@ -1766,10 +1766,10 @@ abstract class AppLocalizations { /// **'Only enabled extensions with download-provider capability are listed here.'** String get providerPriorityFallbackExtensionsHint; - /// Label for built-in providers (Tidal/Qobuz) + /// Legacy label retained for old generated localization compatibility /// /// In en, this message translates to: - /// **'Built-in'** + /// **'Legacy'** String get providerBuiltIn; /// Label for extension-provided providers @@ -2495,13 +2495,13 @@ abstract class AppLocalizations { /// Default search provider option /// /// In en, this message translates to: - /// **'Default (Deezer)'** + /// **'Default Search'** String get extensionDefaultProvider; /// Subtitle for default provider /// /// In en, this message translates to: - /// **'Use built-in search'** + /// **'Use the default metadata search'** String get extensionDefaultProviderSubtitle; /// Extension detail - author @@ -2792,73 +2792,73 @@ abstract class AppLocalizations { /// **'24-bit / up to 192kHz'** String get qualityHiResFlacMaxSubtitle; - /// Quality option label for Tidal lossy 320kbps + /// Quality option label for lossy 320kbps /// /// In en, this message translates to: /// **'Lossy 320kbps'** String get downloadLossy320; - /// Setting title to pick output format for Tidal lossy downloads + /// Setting title to pick output format for lossy downloads /// /// In en, this message translates to: /// **'Lossy Format'** String get downloadLossyFormat; - /// Title of the Tidal lossy format picker bottom sheet + /// Title of the lossy format picker bottom sheet /// /// In en, this message translates to: /// **'Lossy 320kbps Format'** String get downloadLossy320Format; - /// Description in the Tidal lossy format picker + /// Description in the lossy format picker /// /// In en, this message translates to: - /// **'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'** + /// **'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'** String get downloadLossy320FormatDesc; - /// Tidal lossy format option - MP3 320kbps + /// Lossy format option - MP3 320kbps /// /// In en, this message translates to: /// **'MP3 320kbps'** String get downloadLossyMp3; - /// Subtitle for MP3 320kbps Tidal lossy option + /// Subtitle for MP3 320kbps lossy option /// /// In en, this message translates to: /// **'Best compatibility, ~10MB per track'** String get downloadLossyMp3Subtitle; - /// Tidal lossy format option - AAC in M4A container at 320kbps + /// Lossy format option - AAC in M4A container at 320kbps /// /// In en, this message translates to: /// **'AAC/M4A 320kbps'** String get downloadLossyAac; - /// Subtitle for AAC/M4A 320kbps Tidal lossy option + /// Subtitle for AAC/M4A 320kbps lossy option /// /// In en, this message translates to: /// **'Best mobile compatibility, M4A container'** String get downloadLossyAacSubtitle; - /// Tidal lossy format option - Opus 256kbps + /// Lossy format option - Opus 256kbps /// /// In en, this message translates to: /// **'Opus 256kbps'** String get downloadLossyOpus256; - /// Subtitle for Opus 256kbps Tidal lossy option + /// Subtitle for Opus 256kbps lossy option /// /// In en, this message translates to: /// **'Best quality Opus, ~8MB per track'** String get downloadLossyOpus256Subtitle; - /// Tidal lossy format option - Opus 128kbps + /// Lossy format option - Opus 128kbps /// /// In en, this message translates to: /// **'Opus 128kbps'** String get downloadLossyOpus128; - /// Subtitle for Opus 128kbps Tidal lossy option + /// Subtitle for Opus 128kbps lossy option /// /// In en, this message translates to: /// **'Smallest size, ~4MB per track'** @@ -3755,7 +3755,7 @@ abstract class AppLocalizations { /// Tutorial welcome tip 2 /// /// In en, this message translates to: - /// **'Get FLAC quality audio from Tidal, Qobuz, or Deezer'** + /// **'Get FLAC quality audio from installed download extensions'** String get tutorialWelcomeTip2; /// Tutorial welcome tip 3 @@ -4822,7 +4822,7 @@ abstract class AppLocalizations { /// Info tip on lyrics provider priority page /// /// In en, this message translates to: - /// **'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'** + /// **'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'** String get lyricsProvidersInfoText; /// Section header for enabled providers @@ -5142,13 +5142,13 @@ abstract class AppLocalizations { /// Subtitle when quality picker is disabled due to extension service /// /// In en, this message translates to: - /// **'Select Tidal or Qobuz to enable this option'** + /// **'Select a provider with quality options to enable this option'** String get downloadSelectServiceToEnable; - /// Info shown when a non-built-in service is selected + /// Legacy info shown when a provider does not expose quality options /// /// In en, this message translates to: - /// **'Select Tidal or Qobuz to choose audio quality'** + /// **'Select a provider with quality options to choose audio quality'** String get downloadSelectTidalQobuz; /// Subtitle when lyrics embedding is blocked by metadata toggle @@ -5703,7 +5703,7 @@ abstract class AppLocalizations { /// **'Re-analyzing audio...'** String get audioAnalysisRescanning; - /// Extensions page - subtitle for built-in search provider option + /// Extensions page - subtitle for default metadata search provider option /// /// In en, this message translates to: /// **'Search with {providerName}'** diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart index 374cc6a9..021c6684 100644 --- a/lib/l10n/app_localizations_ar.dart +++ b/lib/l10n/app_localizations_ar.dart @@ -142,7 +142,7 @@ class AppLocalizationsAr extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsAr extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsAr extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsAr extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsAr extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsAr extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsAr extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsAr extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsAr extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index d52427cc..284709ae 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -145,7 +145,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get optionsSwitchBack => - 'Tippe auf Deezer oder Spotify, um von der Erweiterung zurückzuwechseln'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Automatischer Fallback'; @@ -159,11 +159,11 @@ class AppLocalizationsDe extends AppLocalizations { @override String get optionsUseExtensionProvidersOn => - 'Erweiterungen werden zuerst versucht'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Nur integrierte Anbieter verwenden'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Liedtexte einbetten'; @@ -379,11 +379,11 @@ class AppLocalizationsDe extends AppLocalizations { @override String get aboutBinimumDesc => - 'Der Schöpfer der QQDL & HiFi API. Ohne diese API gäbe es keine Tidal-Downloads!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Der ursprüngliche Entwickler des HiFi-Projekts. Die Grundlage der Tidal-Integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -952,7 +952,7 @@ class AppLocalizationsDe extends AppLocalizations { 'Hier werden nur aktivierte Erweiterungen mit Download-Provider-Funktion aufgelistet.'; @override - String get providerBuiltIn => 'Integriert'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Erweiterung'; @@ -1352,10 +1352,11 @@ class AppLocalizationsDe extends AppLocalizations { String get storeEmptyNoResults => 'Keine Erweiterungen gefunden'; @override - String get extensionDefaultProvider => 'Standard (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Eingebaute Suche verwenden'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Entwickler'; @@ -1533,7 +1534,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Wähle das Ausgabeformat für Tidal 320kbps verlustbehaftete Downloads. Der ursprüngliche AAC Stream wird in das ausgewählte Format konvertiert.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2108,7 +2109,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Hole dir FLAC Audio von Tidal, Qobuz oder Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2812,7 +2813,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Erweiterungsanbieter werden immer vor eingebauten ausgeführt. Mindestens ein Anbieter muss aktiviert bleiben.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -3014,11 +3015,11 @@ class AppLocalizationsDe extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Wähle Tidal oder Qobuz, um diese Option zu aktivieren'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Wähle Tidal oder Qobuz, um die Audioqualität auszuwählen'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 5c719d05..e7513c36 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -142,7 +142,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsEn extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsEn extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsEn extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsEn extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index a08f978b..322386d7 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -142,7 +142,7 @@ class AppLocalizationsEs extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsEs extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsEs extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsEs extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsEs extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsEs extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsEs extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsEs extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; @@ -4366,7 +4369,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get optionsSwitchBack => - 'Toque Deezer o Spotify para volver desde la extensión'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Alternativa automática'; @@ -4380,11 +4383,11 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get optionsUseExtensionProvidersOn => - 'Las extensiones serán probadas primero'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Utilizando solo proveedores integrados'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Incrustar letras'; @@ -4601,11 +4604,11 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get aboutBinimumDesc => - 'El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -5173,7 +5176,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { 'Solo las extensiones activas con proveedor de descarga se listan aquí.'; @override - String get providerBuiltIn => 'Integrado'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extensión'; @@ -5572,10 +5575,11 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get storeEmptyNoResults => 'No se encontraron extensiones'; @override - String get extensionDefaultProvider => 'Predeterminado (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Usar búsqueda integrada'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Autor/a'; @@ -5752,7 +5756,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get downloadLossy320FormatDesc => - 'Elige el formato de salida para las descargas con pérdida de Tidal a 320 kbps. La transmisión AAC original se convertirá al formato que hayas seleccionado.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 (320 kbps)'; @@ -6331,7 +6335,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get tutorialWelcomeTip2 => - 'Obtener audio de calidad FLAC de Tidal, Qobuz o Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -7038,7 +7042,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -7236,11 +7240,11 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 16105a81..a403c0e2 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -145,7 +145,7 @@ class AppLocalizationsFr extends AppLocalizations { @override String get optionsSwitchBack => - 'Appuyez sur Deezer ou Spotify pour revenir à l\'extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Récupération automatique'; @@ -160,11 +160,11 @@ class AppLocalizationsFr extends AppLocalizations { @override String get optionsUseExtensionProvidersOn => - 'Les extensions seront d\'abord essayées'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Utilisation exclusive des fournisseurs intégrés'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Intégrer les paroles'; @@ -385,11 +385,11 @@ class AppLocalizationsFr extends AppLocalizations { @override String get aboutBinimumDesc => - 'Le créateur de QQDL et de l\'API HiFi. Sans cette API, les téléchargements depuis Tidal n\'existeraient pas !'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Le créateur du projet HiFi original. La base de l\'intégration de Tidal !'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -963,7 +963,7 @@ class AppLocalizationsFr extends AppLocalizations { 'Seules les extensions activées disposant de la fonctionnalité « fournisseur de téléchargement » sont répertoriées ici.'; @override - String get providerBuiltIn => 'Intégré'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1369,11 +1369,11 @@ class AppLocalizationsFr extends AppLocalizations { String get storeEmptyNoResults => 'Aucune extension trouvée'; @override - String get extensionDefaultProvider => 'Par défaut (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override String get extensionDefaultProviderSubtitle => - 'Utiliser la fonction de recherche intégrée'; + 'Use the default metadata search'; @override String get extensionAuthor => 'Auteur'; @@ -1553,7 +1553,7 @@ class AppLocalizationsFr extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choisissez le format de sortie pour les téléchargements Tidal en 320 kbps avec perte. Le flux AAC d\'origine sera converti au format que vous aurez sélectionné.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320 kbps'; @@ -2138,7 +2138,7 @@ class AppLocalizationsFr extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Profitez d\'un son de qualité FLAC sur Tidal, Qobuz ou Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2853,7 +2853,7 @@ class AppLocalizationsFr extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Les fournisseurs de paroles des extensions s\'exécutent toujours avant les fournisseurs intégrés. Au moins un fournisseur doit rester activé.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -3060,11 +3060,11 @@ class AppLocalizationsFr extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Sélectionnez Tidal ou Qobuz pour activer cette option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Sélectionnez Tidal ou Qobuz pour choisir la qualité audio'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => diff --git a/lib/l10n/app_localizations_hi.dart b/lib/l10n/app_localizations_hi.dart index 79dce4dc..501a0e17 100644 --- a/lib/l10n/app_localizations_hi.dart +++ b/lib/l10n/app_localizations_hi.dart @@ -142,7 +142,7 @@ class AppLocalizationsHi extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsHi extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsHi extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsHi extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsHi extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsHi extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsHi extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsHi extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_id.dart b/lib/l10n/app_localizations_id.dart index 0a6b7b6d..20f56f04 100644 --- a/lib/l10n/app_localizations_id.dart +++ b/lib/l10n/app_localizations_id.dart @@ -143,7 +143,7 @@ class AppLocalizationsId extends AppLocalizations { @override String get optionsSwitchBack => - 'Ketuk Deezer atau Spotify untuk beralih dari ekstensi'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Cadangan Otomatis'; @@ -157,11 +157,11 @@ class AppLocalizationsId extends AppLocalizations { @override String get optionsUseExtensionProvidersOn => - 'Ekstensi akan dicoba terlebih dahulu'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Hanya menggunakan provider bawaan'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Sematkan Lirik'; @@ -373,11 +373,11 @@ class AppLocalizationsId extends AppLocalizations { @override String get aboutBinimumDesc => - 'Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -941,7 +941,7 @@ class AppLocalizationsId extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Bawaan'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Ekstensi'; @@ -1337,10 +1337,11 @@ class AppLocalizationsId extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Gunakan pencarian bawaan'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Pembuat'; @@ -1516,7 +1517,7 @@ class AppLocalizationsId extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2087,7 +2088,7 @@ class AppLocalizationsId extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Dapatkan audio berkualitas FLAC dari Tidal, Qobuz, atau Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2785,7 +2786,7 @@ class AppLocalizationsId extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2981,11 +2982,11 @@ class AppLocalizationsId extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_ja.dart b/lib/l10n/app_localizations_ja.dart index dab2cbb4..bb003e3e 100644 --- a/lib/l10n/app_localizations_ja.dart +++ b/lib/l10n/app_localizations_ja.dart @@ -142,7 +142,7 @@ class AppLocalizationsJa extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsJa extends AppLocalizations { String get optionsUseExtensionProviders => '拡張のプロバイダーを使用する'; @override - String get optionsUseExtensionProvidersOn => '最初に拡張で試みます'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => '内蔵のプロバイダーのみを使用する'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => '歌詞を埋め込む'; @@ -367,11 +369,11 @@ class AppLocalizationsJa extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -933,7 +935,7 @@ class AppLocalizationsJa extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => '内蔵'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => '拡張'; @@ -1326,10 +1328,11 @@ class AppLocalizationsJa extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => '内蔵の検索を使用する'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => '作者'; @@ -1499,7 +1502,7 @@ class AppLocalizationsJa extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2066,7 +2069,7 @@ class AppLocalizationsJa extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2764,7 +2767,7 @@ class AppLocalizationsJa extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2960,11 +2963,11 @@ class AppLocalizationsJa extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_ko.dart b/lib/l10n/app_localizations_ko.dart index 4bc9e29d..bc2cf0e6 100644 --- a/lib/l10n/app_localizations_ko.dart +++ b/lib/l10n/app_localizations_ko.dart @@ -140,7 +140,8 @@ class AppLocalizationsKo extends AppLocalizations { 'Choose which tab opens first for new search results.'; @override - String get optionsSwitchBack => 'Deezer 또는 Spotify를 탭하여 확장 기능에서 다시 전환하세요.'; + String get optionsSwitchBack => + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => '자동 재시도'; @@ -152,10 +153,12 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsUseExtensionProviders => '확장 기능 사용'; @override - String get optionsUseExtensionProvidersOn => '확장 기능을 우선적으로 사용합니다'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => '기본으로 제공되는 기능만 사용'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => '가사 삽입'; @@ -362,10 +365,11 @@ class AppLocalizationsKo extends AppLocalizations { @override String get aboutBinimumDesc => - 'QQDL 및 HiFi API 개발자입니다. 이 API가 없었다면 Tidal 다운로드는 불가능했을 것입니다!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override - String get aboutSachinsenalDesc => '최초의 하이파이 프로젝트 창시자. 타이달 연동의 기반을 마련한 사람!'; + String get aboutSachinsenalDesc => + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -923,7 +927,7 @@ class AppLocalizationsKo extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1314,10 +1318,11 @@ class AppLocalizationsKo extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1491,7 +1496,7 @@ class AppLocalizationsKo extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2061,7 +2066,7 @@ class AppLocalizationsKo extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2759,7 +2764,7 @@ class AppLocalizationsKo extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2955,11 +2960,11 @@ class AppLocalizationsKo extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index 75c092f4..ac1c497e 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -142,7 +142,7 @@ class AppLocalizationsNl extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsNl extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsNl extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsNl extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsNl extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsNl extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsNl extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsNl extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 5f081f3d..a0ff96f0 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -142,7 +142,7 @@ class AppLocalizationsPt extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsPt extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsPt extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsPt extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsPt extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsPt extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsPt extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsPt extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; @@ -4366,7 +4369,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get optionsSwitchBack => - 'Toque no Deezer ou Spotify para alternar de volta da extensão'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Fallback Automático'; @@ -4380,11 +4383,11 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get optionsUseExtensionProvidersOn => - 'Extensões serão tentadas primeiro'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Usando apenas provedores integrados'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Incorporar Letras'; @@ -4600,11 +4603,11 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get aboutBinimumDesc => - 'O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'O criador original do projeto HiFi. A base da integração do Tidal!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -5171,7 +5174,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Embutido'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extensão'; @@ -5568,10 +5571,11 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Usar pesquisa integrada'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Autor'; @@ -5748,7 +5752,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -6319,7 +6323,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -7017,7 +7021,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -7213,11 +7217,11 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index d2455663..f3e8d060 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -144,7 +144,7 @@ class AppLocalizationsRu extends AppLocalizations { @override String get optionsSwitchBack => - 'Нажмите Deezer или Spotify для возврата с расширения'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Автоматический переход'; @@ -159,11 +159,11 @@ class AppLocalizationsRu extends AppLocalizations { @override String get optionsUseExtensionProvidersOn => - 'Сначала будут опробованы расширения'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Использование только встроенных провайдеров'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Вписать текст песни'; @@ -376,11 +376,11 @@ class AppLocalizationsRu extends AppLocalizations { @override String get aboutBinimumDesc => - 'Создатель QQDL & HiFi API. Без него API загрузки Tidal не существовали бы!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Оригинальный создатель проекта HiFi. Основатель Tidal интеграции!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -951,7 +951,7 @@ class AppLocalizationsRu extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Встроенные'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Расширение'; @@ -1349,11 +1349,11 @@ class AppLocalizationsRu extends AppLocalizations { String get storeEmptyNoResults => 'Расширения не найдены'; @override - String get extensionDefaultProvider => 'По умолчанию (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override String get extensionDefaultProviderSubtitle => - 'Использовать встроенный поиск'; + 'Use the default metadata search'; @override String get extensionAuthor => 'Автор'; @@ -1530,7 +1530,7 @@ class AppLocalizationsRu extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320 кбит/с'; @@ -2127,7 +2127,7 @@ class AppLocalizationsRu extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Получите аудио в качестве FLAC от Tidal, Qobuz или Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2834,7 +2834,7 @@ class AppLocalizationsRu extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -3030,11 +3030,11 @@ class AppLocalizationsRu extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_tr.dart b/lib/l10n/app_localizations_tr.dart index 5e4abac7..c170a6c0 100644 --- a/lib/l10n/app_localizations_tr.dart +++ b/lib/l10n/app_localizations_tr.dart @@ -145,7 +145,7 @@ class AppLocalizationsTr extends AppLocalizations { @override String get optionsSwitchBack => - 'Dahili kaynaklara dönmek için Deezer veya Spotify\'a tıkla'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Diğerlerini dene'; @@ -158,11 +158,12 @@ class AppLocalizationsTr extends AppLocalizations { String get optionsUseExtensionProviders => 'Eklenti sağlayıcılarını kullan'; @override - String get optionsUseExtensionProvidersOn => 'Eklentiler ilk denenecek'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Sadece dahili sağlayıcıları kullan'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Şarkı Sözlerini Göm'; @@ -378,11 +379,11 @@ class AppLocalizationsTr extends AppLocalizations { @override String get aboutBinimumDesc => - 'QQDL ve HiFi API\'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -946,7 +947,7 @@ class AppLocalizationsTr extends AppLocalizations { 'Burada yalnızca indirme sağlayıcısı yeteneğine sahip olan ve etkinleştirilmiş uzantılar listelenir.'; @override - String get providerBuiltIn => 'Dahili'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Eklenti'; @@ -1346,10 +1347,11 @@ class AppLocalizationsTr extends AppLocalizations { String get storeEmptyNoResults => 'Uzantı bulunamadı'; @override - String get extensionDefaultProvider => 'Varsayılan (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Yerleşik aramayı kullan'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Oluşturan'; @@ -1524,7 +1526,7 @@ class AppLocalizationsTr extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Tidal 320kbps kayıplı indirmeler için çıktı formatını seçin. Orijinal AAC akışı seçtiğiniz formata dönüştürülecektir.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2105,7 +2107,7 @@ class AppLocalizationsTr extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Tidal, Qobuz veya Deezer\'dan FLAC kalitesinde ses alın'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2806,7 +2808,7 @@ class AppLocalizationsTr extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -3005,11 +3007,11 @@ class AppLocalizationsTr extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index 42c0b184..1f8aac62 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -145,7 +145,7 @@ class AppLocalizationsUk extends AppLocalizations { @override String get optionsSwitchBack => - 'Натисніть Deezer або Spotify, щоб повернутися до розширення'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Автоматичний резервний варіант'; @@ -160,11 +160,11 @@ class AppLocalizationsUk extends AppLocalizations { @override String get optionsUseExtensionProvidersOn => - 'Розширення будуть випробувані першими'; + 'Extension providers are enabled'; @override String get optionsUseExtensionProvidersOff => - 'Використати лише вбудованих постачальників'; + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Вбудований текст пісні'; @@ -380,11 +380,11 @@ class AppLocalizationsUk extends AppLocalizations { @override String get aboutBinimumDesc => - 'Творець QQDL та HiFi API. Без цього API завантажень Tidal\'а не існувало б!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'Оригінальний творець HiFi-проектів. Основа інтеграції Tidal!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -951,7 +951,7 @@ class AppLocalizationsUk extends AppLocalizations { 'Тут перелічені лише ввімкнені розширення з можливістю завантаження через постачальника послуг.'; @override - String get providerBuiltIn => 'Вбудований'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Розширення'; @@ -1352,10 +1352,11 @@ class AppLocalizationsUk extends AppLocalizations { String get storeEmptyNoResults => 'Розширень не знайдено'; @override - String get extensionDefaultProvider => 'За замовчуванням (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Використати вбудований пошук'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Автор'; @@ -1531,7 +1532,7 @@ class AppLocalizationsUk extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Виберіть вихідний формат для завантажень Tidal 320 кбіт/с із втратами. Оригінальний потік AAC буде конвертовано у вибраний вами формат.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320 кбіт/с'; @@ -2113,7 +2114,7 @@ class AppLocalizationsUk extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Отримуйте аудіо у якості FLAC з Tidal, Qobuz або Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2820,7 +2821,7 @@ class AppLocalizationsUk extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Постачальники розширених текстів пісень завжди запускаються перед вбудованими постачальниками. Принаймні один постачальник має залишатися ввімкненим.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -3021,11 +3022,11 @@ class AppLocalizationsUk extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index d9cdf77d..9506d4f5 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -142,7 +142,7 @@ class AppLocalizationsZh extends AppLocalizations { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -155,10 +155,12 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -370,11 +372,11 @@ class AppLocalizationsZh extends AppLocalizations { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -938,7 +940,7 @@ class AppLocalizationsZh extends AppLocalizations { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -1331,10 +1333,11 @@ class AppLocalizationsZh extends AppLocalizations { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -1508,7 +1511,7 @@ class AppLocalizationsZh extends AppLocalizations { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -2078,7 +2081,7 @@ class AppLocalizationsZh extends AppLocalizations { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -2776,7 +2779,7 @@ class AppLocalizationsZh extends AppLocalizations { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -2972,11 +2975,11 @@ class AppLocalizationsZh extends AppLocalizations { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; @@ -4360,7 +4363,8 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsDefaultSearchTabSubtitle => '选择新搜索结果首先打开的标签页。'; @override - String get optionsSwitchBack => '点击 Deezer 或 Spotify 即可从扩展程序切换回来'; + String get optionsSwitchBack => + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => '自动回退'; @@ -4372,10 +4376,12 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsUseExtensionProviders => '使用扩展提供商'; @override - String get optionsUseExtensionProvidersOn => '扩展会被最先尝试'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => '仅使用内置提供商'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => '内嵌歌词'; @@ -4579,11 +4585,11 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -5145,7 +5151,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -5538,10 +5544,11 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -5715,7 +5722,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -6285,7 +6292,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -6983,7 +6990,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -7179,11 +7186,11 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; @@ -8577,7 +8584,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Choose the default search provider to switch back from an extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @@ -8590,10 +8597,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsUseExtensionProviders => 'Use Extension Providers'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => + 'Extension providers are enabled'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Extension providers are required'; @override String get optionsEmbedLyrics => 'Embed Lyrics'; @@ -8805,11 +8814,11 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'The creator of QQDL & HiFi API. This project helped shape lossless download support.'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'The original HiFi project creator. A foundation for lossless-source integration.'; @override String get aboutSjdonadoDesc => @@ -9373,7 +9382,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { 'Only enabled extensions with download-provider capability are listed here.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Legacy'; @override String get providerExtension => 'Extension'; @@ -9766,10 +9775,11 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get storeEmptyNoResults => 'No extensions found'; @override - String get extensionDefaultProvider => 'Default (Deezer)'; + String get extensionDefaultProvider => 'Default Search'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => + 'Use the default metadata search'; @override String get extensionAuthor => 'Author'; @@ -9943,7 +9953,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get downloadLossy320FormatDesc => - 'Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.'; + 'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.'; @override String get downloadLossyMp3 => 'MP3 320kbps'; @@ -10513,7 +10523,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get tutorialWelcomeTip2 => - 'Get FLAC quality audio from Tidal, Qobuz, or Deezer'; + 'Get FLAC quality audio from installed download extensions'; @override String get tutorialWelcomeTip3 => @@ -11211,7 +11221,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get lyricsProvidersInfoText => - 'Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.'; + 'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.'; @override String lyricsProvidersEnabledSection(int count) { @@ -11407,11 +11417,11 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get downloadSelectServiceToEnable => - 'Select Tidal or Qobuz to enable this option'; + 'Select a provider with quality options to enable this option'; @override String get downloadSelectTidalQobuz => - 'Select Tidal or Qobuz to choose audio quality'; + 'Select a provider with quality options to choose audio quality'; @override String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first'; diff --git a/lib/l10n/arb/app_ar.arb b/lib/l10n/arb/app_ar.arb index 977bd66e..1deae2bc 100644 --- a/lib/l10n/arb/app_ar.arb +++ b/lib/l10n/arb/app_ar.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabSubtitle": { "description": "Subtitle for the preferred default search tab setting" }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1214,9 +1214,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1738,11 +1738,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1971,51 +1971,51 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2724,7 +2724,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3683,7 +3683,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3921,13 +3921,13 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { - "description": "Info shown when a non-built-in service is selected" + "description": "Legacy info shown when a provider does not expose quality options" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { @@ -4337,7 +4337,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index 773d4cf0..4cc48adc 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Tippe auf Deezer oder Spotify, um von der Erweiterung zurückzuwechseln", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Automatischer Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Erweiterungsanbieter verwenden", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Erweiterungen werden zuerst versucht", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Nur integrierte Anbieter verwenden", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Liedtexte einbetten", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "Der Schöpfer der QQDL & HiFi API. Ohne diese API gäbe es keine Tidal-Downloads!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Der ursprüngliche Entwickler des HiFi-Projekts. Die Grundlage der Tidal-Integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Integriert", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Erweiterung", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Standard (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Eingebaute Suche verwenden", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Verlustbehaftet 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Verlustbehaftetes Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Verlustbehaftetes 320kbps-Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Wähle das Ausgabeformat für Tidal 320kbps verlustbehaftete Downloads. Der ursprüngliche AAC Stream wird in das ausgewählte Format konvertiert.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Beste Kompatibilität, ~10MB pro Titel", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Beste Qualität, ~8MB pro Titel", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Kleinste Größe, ~4MB pro Track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Die eigentliche Qualität hängt von der Verfügbarkeit des Dienstes ab", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Hole dir FLAC Audio von Tidal, Qobuz oder Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Erweiterungsanbieter werden immer vor eingebauten ausgeführt. Mindestens ein Anbieter muss aktiviert bleiben.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Wähle Tidal oder Qobuz, um diese Option zu aktivieren", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Wähle Tidal oder Qobuz, um die Audioqualität auszuwählen", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Mit {providerName} suchen", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Beste mobile Kompatibilität, M4A Container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Lieblingskünstler", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index b3a58f94..1e3fcb39 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabSubtitle": { "description": "Subtitle for the preferred default search tab setting" }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1214,9 +1214,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1738,11 +1738,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1971,51 +1971,51 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "Lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "Lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "Lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "Lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2724,7 +2724,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3683,7 +3683,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3921,13 +3921,13 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { - "description": "Info shown when a non-built-in service is selected" + "description": "Legacy info shown when a provider does not expose quality options" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { @@ -4337,7 +4337,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" diff --git a/lib/l10n/arb/app_es.arb b/lib/l10n/arb/app_es.arb index 1fa94dcf..8baa9617 100644 --- a/lib/l10n/arb/app_es.arb +++ b/lib/l10n/arb/app_es.arb @@ -142,9 +142,9 @@ } } }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -156,15 +156,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -369,11 +369,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -978,9 +978,9 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1373,11 +1373,11 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -2050,43 +2050,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", "@downloadUseAlbumArtistForFolders": { @@ -2676,7 +2676,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,13 +3817,13 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { - "description": "Info shown when a non-built-in service is selected" + "description": "Legacy info shown when a provider does not expose quality options" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" diff --git a/lib/l10n/arb/app_es_ES.arb b/lib/l10n/arb/app_es_ES.arb index cc911de8..48ce81a5 100644 --- a/lib/l10n/arb/app_es_ES.arb +++ b/lib/l10n/arb/app_es_ES.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Toque Deezer o Spotify para volver desde la extensión", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Alternativa automática", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Usar proveedores de extensiones", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Las extensiones serán probadas primero", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Utilizando solo proveedores integrados", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Incrustar letras", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Integrado", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extensión", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Predeterminado (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Usar búsqueda integrada", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Con pérdida, 320 kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Formato con pérdida", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Formato con pérdida a 320 kbps", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Elige el formato de salida para las descargas con pérdida de Tidal a 320 kbps. La transmisión AAC original se convertirá al formato que hayas seleccionado.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 (320 kbps)", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Mejor compatibilidad, ~10 MB por pista", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "OPUS (256 kbps)", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Mejor calidad de OPUS, ~8 MB por pista", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "OPUS (128 kbps)", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Tamaño mínimo: ~4 MB por pista", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Obtener audio de calidad FLAC de Tidal, Qobuz o Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Buscar con {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A (320 kbps)", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "La mejor compatibilidad con dispositivos móviles, formato M4A", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Artistas favoritos", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 912e0b42..0fdaaf6c 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Appuyez sur Deezer ou Spotify pour revenir à l'extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Récupération automatique", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Utiliser des fournisseurs d'extension", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Les extensions seront d'abord essayées", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Utilisation exclusive des fournisseurs intégrés", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Intégrer les paroles", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "Le créateur de QQDL et de l'API HiFi. Sans cette API, les téléchargements depuis Tidal n'existeraient pas !", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Le créateur du projet HiFi original. La base de l'intégration de Tidal !", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Intégré", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Par défaut (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Utiliser la fonction de recherche intégrée", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Compression avec perte à 320 kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Format avec perte", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Format avec perte à 320 kbps", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choisissez le format de sortie pour les téléchargements Tidal en 320 kbps avec perte. Le flux AAC d'origine sera converti au format que vous aurez sélectionné.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320 kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Compatibilité optimale, environ 10 Mo par piste", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256 kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Opus en qualité optimale, environ 8 Mo par piste", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128 kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Taille minimale : environ 4 Mo par piste", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "La qualité réelle dépend de la disponibilité des pistes sur le service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Profitez d'un son de qualité FLAC sur Tidal, Qobuz ou Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Les fournisseurs de paroles des extensions s'exécutent toujours avant les fournisseurs intégrés. Au moins un fournisseur doit rester activé.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Sélectionnez Tidal ou Qobuz pour activer cette option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Sélectionnez Tidal ou Qobuz pour choisir la qualité audio", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Rechercher avec {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320 kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Compatibilité optimale avec les appareils mobiles, format M4A", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Artistes Favoris", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_hi.arb b/lib/l10n/arb/app_hi.arb index 05b508f7..aaadbfce 100644 --- a/lib/l10n/arb/app_hi.arb +++ b/lib/l10n/arb/app_hi.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index debee746..1ddb8ab0 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -166,9 +166,9 @@ "@optionsDefaultSearchTabSubtitle": { "description": "Subtitle for the preferred default search tab setting" }, - "optionsSwitchBack": "Ketuk Deezer atau Spotify untuk beralih dari ekstensi", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Cadangan Otomatis", "@optionsAutoFallback": { @@ -180,15 +180,15 @@ }, "optionsUseExtensionProviders": "Gunakan Provider Ekstensi", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Ekstensi akan dicoba terlebih dahulu", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Hanya menggunakan provider bawaan", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Sematkan Lirik", "@optionsEmbedLyrics": { @@ -425,11 +425,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1118,9 +1118,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Bawaan", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Ekstensi", "@providerExtension": { @@ -1573,11 +1573,11 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Gunakan pencarian bawaan", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -2418,7 +2418,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Dapatkan audio berkualitas FLAC dari Tidal, Qobuz, atau Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3432,43 +3432,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "albumFolderArtistAlbumFlat": "Artist / Album (Singles flat)", "@albumFolderArtistAlbumFlat": { @@ -3607,7 +3607,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3829,11 +3829,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4197,7 +4197,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4709,11 +4709,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index 8bf8f7d9..668b2bac 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -150,9 +150,9 @@ } } }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -164,15 +164,15 @@ }, "optionsUseExtensionProviders": "拡張のプロバイダーを使用する", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "最初に拡張で試みます", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "内蔵のプロバイダーのみを使用する", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "歌詞を埋め込む", "@optionsEmbedLyrics": { @@ -405,11 +405,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1082,9 +1082,9 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "内蔵", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "拡張", "@providerExtension": { @@ -1537,11 +1537,11 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "内蔵の検索を使用する", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -2358,7 +2358,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3347,43 +3347,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "albumFolderArtistAlbumFlat": "Artist / Album (Singles flat)", "@albumFolderArtistAlbumFlat": { @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_ko.arb b/lib/l10n/arb/app_ko.arb index 085f4f21..ec613a16 100644 --- a/lib/l10n/arb/app_ko.arb +++ b/lib/l10n/arb/app_ko.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Deezer 또는 Spotify를 탭하여 확장 기능에서 다시 전환하세요.", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "자동 재시도", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "확장 기능 사용", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "확장 기능을 우선적으로 사용합니다", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "기본으로 제공되는 기능만 사용", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "가사 삽입", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "QQDL 및 HiFi API 개발자입니다. 이 API가 없었다면 Tidal 다운로드는 불가능했을 것입니다!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "최초의 하이파이 프로젝트 창시자. 타이달 연동의 기반을 마련한 사람!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index 48517c62..1b3e1529 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_pt.arb b/lib/l10n/arb/app_pt.arb index 86a433ea..1f434a69 100644 --- a/lib/l10n/arb/app_pt.arb +++ b/lib/l10n/arb/app_pt.arb @@ -142,9 +142,9 @@ } } }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -156,15 +156,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -369,11 +369,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -978,9 +978,9 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1373,11 +1373,11 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -2050,43 +2050,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", "@downloadUseAlbumArtistForFolders": { @@ -2676,7 +2676,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,13 +3817,13 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { - "description": "Info shown when a non-built-in service is selected" + "description": "Legacy info shown when a provider does not expose quality options" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" diff --git a/lib/l10n/arb/app_pt_PT.arb b/lib/l10n/arb/app_pt_PT.arb index ff23f3b7..db8f84ac 100644 --- a/lib/l10n/arb/app_pt_PT.arb +++ b/lib/l10n/arb/app_pt_PT.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Toque no Deezer ou Spotify para alternar de volta da extensão", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Fallback Automático", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Usar Provedores de Extensão", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensões serão tentadas primeiro", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Usando apenas provedores integrados", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Incorporar Letras", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "O criador original do projeto HiFi. A base da integração do Tidal!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Embutido", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extensão", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Usar pesquisa integrada", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "A qualidade real depende da faixa que estiver disponível no serviço", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 6fbab20a..464a34dd 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Нажмите Deezer или Spotify для возврата с расширения", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Автоматический переход", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Использовать провайдера расширений", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Сначала будут опробованы расширения", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Использование только встроенных провайдеров", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Вписать текст песни", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "Создатель QQDL & HiFi API. Без него API загрузки Tidal не существовали бы!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Оригинальный создатель проекта HiFi. Основатель Tidal интеграции!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Встроенные", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Расширение", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "По умолчанию (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Использовать встроенный поиск", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "С потерями 320 кбит/с", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Формат с потерями", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Формат с потерями 320 кбит/с", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320 кбит/с", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Наилучшая совместимость, ~10 Мб на трек", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256 кбит/с", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128 кбит/с", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Минимальный размер, ~4 Мб на трек", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Фактическое качество зависит от доступности треков в сервисе", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Получите аудио в качестве FLAC от Tidal, Qobuz или Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Искать с помощью {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_tr.arb b/lib/l10n/arb/app_tr.arb index fd1a8a09..6a0a1c5e 100644 --- a/lib/l10n/arb/app_tr.arb +++ b/lib/l10n/arb/app_tr.arb @@ -150,9 +150,9 @@ } } }, - "optionsSwitchBack": "Dahili kaynaklara dönmek için Deezer veya Spotify'a tıkla", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Diğerlerini dene", "@optionsAutoFallback": { @@ -164,15 +164,15 @@ }, "optionsUseExtensionProviders": "Eklenti sağlayıcılarını kullan", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Eklentiler ilk denenecek", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Sadece dahili sağlayıcıları kullan", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Şarkı Sözlerini Göm", "@optionsEmbedLyrics": { @@ -405,11 +405,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "QQDL ve HiFi API'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1126,9 +1126,9 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "Dahili", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Eklenti", "@providerExtension": { @@ -1633,11 +1633,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Varsayılan (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Yerleşik aramayı kullan", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1834,43 +1834,43 @@ }, "downloadLossy320": "Kayıplı 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Kayıplı Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Kayıplı 320kbps Formatı", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Tidal 320kbps kayıplı indirmeler için çıktı formatını seçin. Orijinal AAC akışı seçtiğiniz formata dönüştürülecektir.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "En iyi uyumluluk, parça başına ~10 Mb", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "En iyi Opus kalitesi, parça başına ~8 Mb", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "En küçük boyut, parça başına ~4 Mb", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Gerçek kalite, parçanın servisteki uygunluğuna bağlıdır", "@qualityNote": { @@ -2526,7 +2526,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Tidal, Qobuz veya Deezer'dan FLAC kalitesinde ses alın", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3406,7 +3406,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3648,11 +3648,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4189,7 +4189,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4624,11 +4624,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "En iyi mobil uyumluluk, M4A konteyner", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favori Sanatçılar", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_uk.arb b/lib/l10n/arb/app_uk.arb index b7c0481f..56210bf5 100644 --- a/lib/l10n/arb/app_uk.arb +++ b/lib/l10n/arb/app_uk.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Натисніть Deezer або Spotify, щоб повернутися до розширення", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Автоматичний резервний варіант", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Використати постачальників розширень", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Розширення будуть випробувані першими", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Використати лише вбудованих постачальників", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Вбудований текст пісні", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "Творець QQDL та HiFi API. Без цього API завантажень Tidal'а не існувало б!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "Оригінальний творець HiFi-проектів. Основа інтеграції Tidal!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Вбудований", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Розширення", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "За замовчуванням (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Використати вбудований пошук", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy (із втратами) 320 кбіт/с", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Формат із втратами", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Формат із втратами 320 кбіт/с", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Виберіть вихідний формат для завантажень Tidal 320 кбіт/с із втратами. Оригінальний потік AAC буде конвертовано у вибраний вами формат.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320 кбіт/с", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Найкраща сумісність, ~10 МБ на доріжку", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256 кбіт/с", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Opus найкращої якості, ~8 МБ на трек", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128 кбіт/с", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Найменший розмір, ~4 МБ на доріжку", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Фактична якість залежить від наявності треку в сервісі", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Отримуйте аудіо у якості FLAC з Tidal, Qobuz або Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Постачальники розширених текстів пісень завжди запускаються перед вбудованими постачальниками. Принаймні один постачальник має залишатися ввімкненим.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Пошук за допомогою{providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_zh.arb b/lib/l10n/arb/app_zh.arb index b570ed40..6584482f 100644 --- a/lib/l10n/arb/app_zh.arb +++ b/lib/l10n/arb/app_zh.arb @@ -142,9 +142,9 @@ } } }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -156,15 +156,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -369,11 +369,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -978,9 +978,9 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1373,11 +1373,11 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -2050,43 +2050,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", "@downloadUseAlbumArtistForFolders": { @@ -2676,7 +2676,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,13 +3817,13 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { - "description": "Info shown when a non-built-in service is selected" + "description": "Legacy info shown when a provider does not expose quality options" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index f5ddf027..a8a5259a 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "点击 Deezer 或 Spotify 即可从扩展程序切换回来", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "自动回退", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "使用扩展提供商", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "扩展会被最先尝试", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "仅使用内置提供商", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "内嵌歌词", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/l10n/arb/app_zh_TW.arb b/lib/l10n/arb/app_zh_TW.arb index 98e6f4a2..1f71c18c 100644 --- a/lib/l10n/arb/app_zh_TW.arb +++ b/lib/l10n/arb/app_zh_TW.arb @@ -174,9 +174,9 @@ "@optionsDefaultSearchTabTracks": { "description": "Default search tab option - Tracks tab" }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "Choose the default search provider to switch back from an extension", "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" + "description": "Hint to switch back from extension search" }, "optionsAutoFallback": "Auto Fallback", "@optionsAutoFallback": { @@ -188,15 +188,15 @@ }, "optionsUseExtensionProviders": "Use Extension Providers", "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" + "description": "Legacy setting label for extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "Extension providers are enabled", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "Extension providers are required", "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" + "description": "Legacy status when extension providers would be disabled" }, "optionsEmbedLyrics": "Embed Lyrics", "@optionsEmbedLyrics": { @@ -465,11 +465,11 @@ "@aboutVersion": { "description": "Version info label" }, - "aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!", + "aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, - "aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!", + "aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, @@ -1198,9 +1198,9 @@ "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "Legacy", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz)" + "description": "Legacy label retained for old generated localization compatibility" }, "providerExtension": "Extension", "@providerExtension": { @@ -1713,11 +1713,11 @@ "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, - "extensionDefaultProvider": "Default (Deezer)", + "extensionDefaultProvider": "Default Search", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Use the default metadata search", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, @@ -1922,43 +1922,43 @@ }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { - "description": "Quality option label for Tidal lossy 320kbps" + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { - "description": "Setting title to pick output format for Tidal lossy downloads" + "description": "Setting title to pick output format for lossy downloads" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { - "description": "Title of the Tidal lossy format picker bottom sheet" + "description": "Title of the lossy format picker bottom sheet" }, - "downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.", + "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { - "description": "Description in the Tidal lossy format picker" + "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { - "description": "Tidal lossy format option - MP3 320kbps" + "description": "lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps Tidal lossy option" + "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { - "description": "Tidal lossy format option - Opus 256kbps" + "description": "lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps Tidal lossy option" + "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { - "description": "Tidal lossy format option - Opus 128kbps" + "description": "lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps Tidal lossy option" + "description": "Subtitle for Opus 128kbps lossy option" }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { @@ -2667,7 +2667,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -3579,7 +3579,7 @@ "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, - "lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.", + "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, @@ -3817,11 +3817,11 @@ "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is disabled" }, - "downloadSelectServiceToEnable": "Select Tidal or Qobuz to enable this option", + "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { - "description": "Hint shown instead of Ask-quality subtitle when no built-in service selected" + "description": "Hint shown instead of Ask-quality subtitle when selected provider has no quality options" }, - "downloadSelectTidalQobuz": "Select Tidal or Qobuz to choose audio quality", + "downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality", "@downloadSelectTidalQobuz": { "description": "Info hint when non-Tidal/Qobuz service is selected" }, @@ -4185,7 +4185,7 @@ }, "extensionsSearchWith": "Search with {providerName}", "@extensionsSearchWith": { - "description": "Extensions page - subtitle for built-in search provider option", + "description": "Extensions page - subtitle for default metadata search provider option", "placeholders": { "providerName": { "type": "String" @@ -4620,11 +4620,11 @@ }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { - "description": "Tidal lossy format option - AAC in M4A container at 320kbps" + "description": "lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps Tidal lossy option" + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 3f17f53d..866ea7a0 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -46,7 +46,7 @@ class AppSettings { final String locale; final String lyricsMode; final String - tidalHighFormat; // Format for Tidal HIGH quality: 'mp3_320', 'aac_320', 'opus_256', or 'opus_128' + tidalHighFormat; // Legacy key for 320kbps lossy output format: 'mp3_320', 'aac_320', 'opus_256', or 'opus_128' final bool useAllFilesAccess; // Android 13+ only: enable MANAGE_EXTERNAL_STORAGE final bool diff --git a/lib/providers/download_queue_provider.dart b/lib/providers/download_queue_provider.dart index 93825481..e6e0aace 100644 --- a/lib/providers/download_queue_provider.dart +++ b/lib/providers/download_queue_provider.dart @@ -3084,7 +3084,7 @@ class DownloadQueueNotifier extends Notifier { if (extensionPreferred != null) { return extensionPreferred; } - if (_usesBuiltInCompatibleDownloadProvider(service, 'tidal') && + if (_downloadProviderReplacesLegacyProvider(service, 'tidal') && quality == 'HIGH') { return '.m4a'; } @@ -3095,13 +3095,13 @@ class DownloadQueueNotifier extends Notifier { return '.flac'; } - bool _usesBuiltInCompatibleDownloadProvider( + bool _downloadProviderReplacesLegacyProvider( String service, - String builtInProviderId, + String legacyProviderId, ) { return ref .read(extensionProvider.notifier) - .downloadProviderMatchesBuiltIn(service, builtInProviderId); + .downloadProviderReplacesLegacyProvider(service, legacyProviderId); } String _normalizeQueuedService(String service) { @@ -5594,13 +5594,13 @@ class DownloadQueueNotifier extends Notifier { String payloadTidalId = ''; if (trackForPayload.id.startsWith('qobuz:')) { payloadQobuzId = trackForPayload.id.substring(6); - if (_usesBuiltInCompatibleDownloadProvider(item.service, 'qobuz')) { + if (_downloadProviderReplacesLegacyProvider(item.service, 'qobuz')) { payloadSpotifyId = ''; } } if (trackForPayload.id.startsWith('tidal:')) { payloadTidalId = trackForPayload.id.substring(6); - if (_usesBuiltInCompatibleDownloadProvider(item.service, 'tidal')) { + if (_downloadProviderReplacesLegacyProvider(item.service, 'tidal')) { payloadSpotifyId = ''; } } @@ -7302,13 +7302,13 @@ class DownloadQueueNotifier extends Notifier { String payloadTidalId = ''; if (trackToDownload.id.startsWith('qobuz:')) { payloadQobuzId = trackToDownload.id.substring(6); - if (_usesBuiltInCompatibleDownloadProvider(item.service, 'qobuz')) { + if (_downloadProviderReplacesLegacyProvider(item.service, 'qobuz')) { payloadSpotifyId = ''; } } if (trackToDownload.id.startsWith('tidal:')) { payloadTidalId = trackToDownload.id.substring(6); - if (_usesBuiltInCompatibleDownloadProvider(item.service, 'tidal')) { + if (_downloadProviderReplacesLegacyProvider(item.service, 'tidal')) { payloadSpotifyId = ''; } } @@ -7643,28 +7643,28 @@ class DownloadQueueNotifier extends Notifier { (filePath.endsWith('.flac') || resultOutputExt == '.flac' || (mimeType != null && mimeType.contains('flac'))); - final shouldForceTidalSafM4aHandling = + final shouldForceDashSafM4aHandling = !wasExisting && isContentUriPath && effectiveSafMode && - _usesBuiltInCompatibleDownloadProvider(actualService, 'tidal') && + _downloadProviderReplacesLegacyProvider(actualService, 'tidal') && filePath.endsWith('.flac') && (mimeType == null || mimeType.contains('flac')); - if (shouldForceTidalSafM4aHandling) { + if (shouldForceDashSafM4aHandling) { _log.w( - 'Tidal SAF file is labeled FLAC but backend returned DASH/M4A stream; converting it back to FLAC.', + 'SAF file is labeled FLAC but backend returned DASH/M4A stream; converting it back to FLAC.', ); } - if (isM4aFile || shouldForceTidalSafM4aHandling) { + if (isM4aFile || shouldForceDashSafM4aHandling) { final currentFilePath = filePath; if (isContentUriPath && effectiveSafMode) { if (quality == 'HIGH') { final tidalHighFormat = settings.tidalHighFormat; _log.i( - 'Tidal HIGH quality (SAF), converting M4A to $tidalHighFormat...', + 'Lossy 320kbps quality (SAF), converting M4A to $tidalHighFormat...', ); final tempPath = await _copySafToTemp(currentFilePath); @@ -7982,7 +7982,7 @@ class DownloadQueueNotifier extends Notifier { if (quality == 'HIGH') { final tidalHighFormat = settings.tidalHighFormat; _log.i( - 'Tidal HIGH quality download, converting M4A to $tidalHighFormat...', + 'Lossy 320kbps quality download, converting M4A to $tidalHighFormat...', ); try { diff --git a/lib/providers/extension_provider.dart b/lib/providers/extension_provider.dart index ac69c3b0..141536a0 100644 --- a/lib/providers/extension_provider.dart +++ b/lib/providers/extension_provider.dart @@ -1283,20 +1283,20 @@ class ExtensionNotifier extends Notifier { .firstOrNull; } - bool downloadProviderMatchesBuiltIn( + bool downloadProviderReplacesLegacyProvider( String providerId, - String builtInProviderId, + String legacyProviderId, ) { final normalizedProvider = providerId.trim().toLowerCase(); - final normalizedBuiltIn = builtInProviderId.trim().toLowerCase(); - if (normalizedProvider.isEmpty || normalizedBuiltIn.isEmpty) return false; - if (normalizedProvider == normalizedBuiltIn) return true; + final normalizedLegacy = legacyProviderId.trim().toLowerCase(); + if (normalizedProvider.isEmpty || normalizedLegacy.isEmpty) return false; + if (normalizedProvider == normalizedLegacy) return true; final extension = state.extensions .where((ext) => ext.enabled && ext.hasDownloadProvider) .where((ext) => ext.id.toLowerCase() == normalizedProvider) .firstOrNull; - return extension?.replacesBuiltInProviders.contains(normalizedBuiltIn) ?? + return extension?.replacesBuiltInProviders.contains(normalizedLegacy) ?? false; } diff --git a/lib/screens/settings/download_settings_page.dart b/lib/screens/settings/download_settings_page.dart index d7b20623..9359fbfd 100644 --- a/lib/screens/settings/download_settings_page.dart +++ b/lib/screens/settings/download_settings_page.dart @@ -40,10 +40,13 @@ class _DownloadSettingsPageState extends ConsumerState { final qualityOptions = selectedDownloadExtension?.qualityOptions ?? const []; final canSelectQuality = qualityOptions.isNotEmpty; - final isTidalService = selectedDownloadService.isNotEmpty + final usesTidalCompatibilityOptions = selectedDownloadService.isNotEmpty ? ref .read(extensionProvider.notifier) - .downloadProviderMatchesBuiltIn(selectedDownloadService, 'tidal') + .downloadProviderReplacesLegacyProvider( + selectedDownloadService, + 'tidal', + ) : false; final nativeWorkerAvailable = Platform.isAndroid && hasDownloadExtensions; final colorScheme = Theme.of(context).colorScheme; @@ -148,17 +151,19 @@ class _DownloadSettingsPageState extends ConsumerState { .setAudioQuality(quality.id), showDivider: quality != qualityOptions.last || - (isTidalService && settings.audioQuality == 'HIGH'), + (usesTidalCompatibilityOptions && + settings.audioQuality == 'HIGH'), ), - if (isTidalService && settings.audioQuality == 'HIGH') + if (usesTidalCompatibilityOptions && + settings.audioQuality == 'HIGH') SettingsItem( icon: Icons.tune, title: context.l10n.downloadLossyFormat, - subtitle: _getTidalHighFormatLabel( + subtitle: _getLossyCompatibilityFormatLabel( context, settings.tidalHighFormat, ), - onTap: () => _showTidalHighFormatPicker( + onTap: () => _showLossyCompatibilityFormatPicker( context, ref, settings.tidalHighFormat, @@ -363,7 +368,7 @@ class _DownloadSettingsPageState extends ConsumerState { case 'HI_RES_LOSSLESS': return context.l10n.qualityHiResFlacMaxSubtitle; case 'HIGH': - return _getTidalHighFormatLabel( + return _getLossyCompatibilityFormatLabel( context, ref.read(settingsProvider).tidalHighFormat, ); @@ -372,7 +377,10 @@ class _DownloadSettingsPageState extends ConsumerState { } } - String _getTidalHighFormatLabel(BuildContext context, String format) { + String _getLossyCompatibilityFormatLabel( + BuildContext context, + String format, + ) { switch (format) { case 'mp3_320': return context.l10n.downloadLossyMp3; @@ -387,7 +395,7 @@ class _DownloadSettingsPageState extends ConsumerState { } } - void _showTidalHighFormatPicker( + void _showLossyCompatibilityFormatPicker( BuildContext context, WidgetRef ref, String current, diff --git a/lib/services/ffmpeg_service.dart b/lib/services/ffmpeg_service.dart index e2365211..1a15191a 100644 --- a/lib/services/ffmpeg_service.dart +++ b/lib/services/ffmpeg_service.dart @@ -617,7 +617,7 @@ class FFmpegService { } } - static Future prepareTidalDashManifestForNativePlayback({ + static Future prepareDashManifestForNativePlayback({ required String manifestPayload, bool registerAsActive = true, }) async { @@ -630,7 +630,7 @@ class FFmpegService { final manifestPath = await _writeTempManifestFile(payload); if (manifestPath == null) { - _log.e('Failed to prepare Tidal DASH manifest for native playback'); + _log.e('Failed to prepare DASH manifest for native playback'); return null; } @@ -739,7 +739,7 @@ class FFmpegService { } } - static Future startTidalDashLiveStream({ + static Future startDashLiveStream({ required String manifestPayload, String preferredFormat = 'm4a', }) async { @@ -752,7 +752,7 @@ class FFmpegService { final manifestPath = await _writeTempManifestFile(payload); if (manifestPath == null) { - _log.e('Failed to prepare Tidal DASH manifest for live stream'); + _log.e('Failed to prepare DASH manifest for live stream'); return null; } @@ -797,7 +797,7 @@ class FFmpegService { final tempDir = await getTemporaryDirectory(); final manifestPath = - '${tempDir.path}${Platform.pathSeparator}tidal_dash_${DateTime.now().microsecondsSinceEpoch}.mpd'; + '${tempDir.path}${Platform.pathSeparator}dash_${DateTime.now().microsecondsSinceEpoch}.mpd'; await File(manifestPath).writeAsString(manifestText, flush: true); return manifestPath; } @@ -875,7 +875,7 @@ class FFmpegService { ]; _log.d( - 'Starting Tidal DASH tunnel: ${_previewCommandForLog(commandArguments.join(' '))}', + 'Starting DASH tunnel: ${_previewCommandForLog(commandArguments.join(' '))}', ); final session = await FFmpegKit.executeWithArgumentsAsync(commandArguments); @@ -891,9 +891,9 @@ class FFmpegService { final state = await session.getState(); final output = (await session.getOutput() ?? '').trim(); if (output.isNotEmpty) { - _log.w('Tidal DASH tunnel failed ($ext): $output'); + _log.w('DASH tunnel failed ($ext): $output'); } else { - _log.w('Tidal DASH tunnel failed ($ext) with session state: $state'); + _log.w('DASH tunnel failed ($ext) with session state: $state'); } try { diff --git a/pubspec.yaml b/pubspec.yaml index 73c7d4db..a732203f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: spotiflac_android -description: Download Spotify tracks in FLAC from Tidal, Qobuz & Deezer +description: Download Spotify tracks in FLAC using extension providers publish_to: "none" -version: 4.5.6+133 +version: 4.5.7+134 environment: sdk: ^3.10.0