refactor: generalize Tidal-specific naming to legacy/DASH terminology

- Rename downloadProviderMatchesBuiltIn -> downloadProviderReplacesLegacyProvider

- Rename Tidal DASH ffmpeg helpers and lossy format pickers to generic names

- Add utils.decryptCTRSegments crypto API + raw/bytes file read path in extension runtime

- Update l10n strings/descriptions to drop hardcoded service names

- Bump version to 4.5.7+134
This commit is contained in:
zarzet
2026-06-11 01:08:20 +07:00
parent 688a5f2add
commit 7d300a39c9
48 changed files with 1479 additions and 942 deletions
+1
View File
@@ -66,6 +66,7 @@ extension/
AGENTS.md
# Temp/misc
.tmp/
nul
NUL
network_requests.txt
+3 -6
View File
@@ -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
<summary><b>Why is my download failing with "Song not found"?</b></summary>
<br>
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.
</details>
@@ -88,10 +88,7 @@ The track may not be available on the streaming services. Try enabling more prov
<summary><b>Why are some tracks downloading in lower quality?</b></summary>
<br>
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.
</details>
+1
View File
@@ -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)
+205 -30
View File
@@ -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: "<hex>", keyEncoding: "hex",
// segments: [ { offset: <int>, size: <int>, iv: "<base64>" }, ... ],
// 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,
})
}
+300
View File
@@ -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<segs.length;i++){
var ivFullHex = (segs[i].iv + "00000000000000000000000000000000").slice(0,32);
var enc = utils.encryptBlockCipher(segs[i].pt, {
algorithm:"aes", mode:"ctr", key:keyHex, keyEncoding:"hex",
iv: ivFullHex, ivEncoding:"hex",
inputEncoding:"hex", outputEncoding:"hex"
});
if(!enc.success) throw new Error("enc seg "+i+": "+enc.error);
cipherHex += enc.data;
var sz = segs[i].pt.length/2;
offsets.push({offset: off, size: sz, ivHex: ivFullHex});
off += sz;
}
// Now decrypt the whole concatenated buffer in ONE batch call.
var segments = offsets.map(function(o){
return { offset:o.offset, size:o.size, iv:o.ivHex };
});
var batch = utils.decryptCTRSegments(cipherHex, {
algorithm:"aes", key:keyHex, keyEncoding:"hex",
segments: segments, ivEncoding:"hex",
inputEncoding:"hex", outputEncoding:"hex"
});
if(!batch.success) throw new Error("batch: "+batch.error);
var expected = "";
for (var j=0;j<segs.length;j++) expected += segs[j].pt;
return JSON.stringify({
out: batch.data,
expected: expected,
processed: batch.segments_processed
});
})()
`)
if err != nil {
t.Fatalf("batch CTR eval failed: %v", err)
}
decoded := decodeJSONResult[struct {
Out string `json:"out"`
Expected string `json:"expected"`
Processed int `json:"processed"`
}](t, result)
if decoded.Out != decoded.Expected {
t.Fatalf("batch decrypt mismatch:\n got=%s\nwant=%s", decoded.Out, decoded.Expected)
}
if decoded.Processed != 3 {
t.Fatalf("segments_processed = %d, want 3", decoded.Processed)
}
}
func TestExtensionRuntime_DecryptCTRSegmentsRejectsOutOfBounds(t *testing.T) {
vm := newBinaryTestRuntime(t, false)
result, err := vm.RunString(`
(function() {
var res = utils.decryptCTRSegments("00112233", {
algorithm:"aes", key:"000102030405060708090a0b0c0d0e0f", keyEncoding:"hex",
inputEncoding:"hex", outputEncoding:"hex",
ivEncoding:"hex",
segments: [ { offset: 0, size: 99, iv: "00000000000000000000000000000000" } ]
});
return JSON.stringify({ success: res.success, error: res.error || "" });
})()
`)
if err != nil {
t.Fatalf("oob eval failed: %v", err)
}
decoded := decodeJSONResult[struct {
Success bool `json:"success"`
Error string `json:"error"`
}](t, result)
if decoded.Success {
t.Fatal("expected out-of-bounds segment to fail")
}
if decoded.Error == "" {
t.Fatal("expected error message for out-of-bounds segment")
}
}
func TestExtensionRuntime_DecryptCTRSegmentsRawBytes(t *testing.T) {
vm := newBinaryTestRuntime(t, false)
// Verify the zero-base64 path: pass an ArrayBuffer in, request bytes out,
// and confirm round-trip correctness against single-shot CTR.
result, err := vm.RunString(`
(function() {
var keyHex = "000102030405060708090a0b0c0d0e0f";
var ivFullHex = "0000000000000001" + "00000000000000000000000000000000".slice(16);
// Plaintext as a Uint8Array of 20 bytes.
var pt = new Uint8Array(20);
for (var i = 0; i < pt.length; i++) pt[i] = (i * 7 + 3) & 0xff;
// Encrypt single-shot to get ciphertext (hex output for clarity).
var ptHex = "";
for (var j = 0; j < pt.length; j++) { var h = pt[j].toString(16); ptHex += (h.length === 1 ? "0" : "") + h; }
var enc = utils.encryptBlockCipher(ptHex, {
algorithm:"aes", mode:"ctr", key:keyHex, keyEncoding:"hex",
iv: ivFullHex, ivEncoding:"hex", inputEncoding:"hex", outputEncoding:"base64"
});
if (!enc.success) throw new Error("enc: " + enc.error);
// Decode ciphertext base64 into a Uint8Array to feed the raw path.
var cipherBytes = utils.base64Decode ? null : null;
// Build ArrayBuffer from base64 via Uint8Array manually:
var b64 = enc.data;
var bin = (typeof atob === "function") ? null : null;
// Simpler: ask the host to give us bytes by decrypting nothing is hard,
// so just pass the base64 ciphertext through decryptCTRSegments using
// base64 input but bytes output, then re-run with bytes input.
var step1 = utils.decryptCTRSegments(b64, {
algorithm:"aes", key:keyHex, keyEncoding:"hex",
segments: [ { offset:0, size:20, iv: ivFullHex } ],
ivEncoding:"hex", inputEncoding:"base64", outputEncoding:"bytes"
});
if (!step1.success) throw new Error("step1: " + step1.error);
if (typeof step1.data === "string") throw new Error("expected ArrayBuffer output, got string");
var outArr = new Uint8Array(step1.data);
var outHex = "";
for (var k = 0; k < outArr.length; k++) { var hh = outArr[k].toString(16); outHex += (hh.length === 1 ? "0" : "") + hh; }
return JSON.stringify({ out: outHex, expected: ptHex, len: outArr.length });
})()
`)
if err != nil {
t.Fatalf("raw-bytes eval failed: %v", err)
}
decoded := decodeJSONResult[struct {
Out string `json:"out"`
Expected string `json:"expected"`
Len int `json:"len"`
}](t, result)
if decoded.Out != decoded.Expected {
t.Fatalf("raw-bytes decrypt mismatch:\n got=%s\nwant=%s", decoded.Out, decoded.Expected)
}
if decoded.Len != 20 {
t.Fatalf("output length = %d, want 20", decoded.Len)
}
}
+14 -2
View File
@@ -663,7 +663,6 @@ func (r *extensionRuntime) fileReadBytes(call goja.FunctionCall) goja.Value {
"error": "offset must be >= 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{}{
+2 -2
View File
@@ -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;
+31 -31
View File
@@ -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}'**
+16 -13
View File
@@ -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';
+14 -13
View File
@@ -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 =>
+16 -13
View File
@@ -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';
+30 -26
View File
@@ -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';
+13 -13
View File
@@ -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 =>
+16 -13
View File
@@ -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';
+14 -13
View File
@@ -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';
+16 -13
View File
@@ -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';
+18 -13
View File
@@ -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';
+16 -13
View File
@@ -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';
+30 -26
View File
@@ -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';
+13 -13
View File
@@ -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';
+15 -13
View File
@@ -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';
+14 -13
View File
@@ -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';
+49 -39
View File
@@ -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';
+31 -31
View File
@@ -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"
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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"
+29 -29
View File
@@ -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"
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+29 -29
View File
@@ -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"
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+29 -29
View File
@@ -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"
+31 -31
View File
@@ -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": {
+31 -31
View File
@@ -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": {
+1 -1
View File
@@ -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
+15 -15
View File
@@ -3084,7 +3084,7 @@ class DownloadQueueNotifier extends Notifier<DownloadQueueState> {
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<DownloadQueueState> {
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<DownloadQueueState> {
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<DownloadQueueState> {
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<DownloadQueueState> {
(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<DownloadQueueState> {
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 {
+6 -6
View File
@@ -1283,20 +1283,20 @@ class ExtensionNotifier extends Notifier<ExtensionState> {
.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;
}
@@ -40,10 +40,13 @@ class _DownloadSettingsPageState extends ConsumerState<DownloadSettingsPage> {
final qualityOptions =
selectedDownloadExtension?.qualityOptions ?? const <QualityOption>[];
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<DownloadSettingsPage> {
.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<DownloadSettingsPage> {
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<DownloadSettingsPage> {
}
}
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<DownloadSettingsPage> {
}
}
void _showTidalHighFormatPicker(
void _showLossyCompatibilityFormatPicker(
BuildContext context,
WidgetRef ref,
String current,
+8 -8
View File
@@ -617,7 +617,7 @@ class FFmpegService {
}
}
static Future<String?> prepareTidalDashManifestForNativePlayback({
static Future<String?> 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<LiveDecryptedStreamResult?> startTidalDashLiveStream({
static Future<LiveDecryptedStreamResult?> 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 {
+2 -2
View File
@@ -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