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