From 960d60f0bc88240750cd2bf9cdd541f5c2832c3e Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:19 +0700 Subject: [PATCH 01/46] New translations app_en.arb (French) --- lib/l10n/arb/app_fr.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 3ddb731a..0ba8cada 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 2f3270c7ffc335bbc94cac8ca71cfe043e794041 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:21 +0700 Subject: [PATCH 02/46] New translations app_en.arb (Spanish) --- lib/l10n/arb/app_es-ES.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_es-ES.arb b/lib/l10n/arb/app_es-ES.arb index c48b16f4..d40658c9 100644 --- a/lib/l10n/arb/app_es-ES.arb +++ b/lib/l10n/arb/app_es-ES.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Integrado", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extensión", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From c8247bf7a044f06117c3f78e8f98fc822e2acb98 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:22 +0700 Subject: [PATCH 03/46] New translations app_en.arb (German) --- lib/l10n/arb/app_de.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index 139b620e..3dfa75c6 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Lade Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Integriert", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Erweiterung", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Hole dir FLAC Audio von Tidal, Qobuz oder Amazon Musik", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 8ec63ee61015654d290771a027ba1e726363439c Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:24 +0700 Subject: [PATCH 04/46] New translations app_en.arb (Japanese) --- lib/l10n/arb/app_ja.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index 268d8950..483e10e8 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "内蔵", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "拡張", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 5af88ead33c23cea91952809475b1f43f6eaacd5 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:25 +0700 Subject: [PATCH 05/46] New translations app_en.arb (Korean) --- lib/l10n/arb/app_ko.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_ko.arb b/lib/l10n/arb/app_ko.arb index f31eb1b9..0e812f70 100644 --- a/lib/l10n/arb/app_ko.arb +++ b/lib/l10n/arb/app_ko.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Tidal, Qobuz, Amazon Music에서 Spotify 트랙을 무손실 음질로 다운로드하세요.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 0cfa6f56bee091921e1af12d51ff4f1f5e291bf5 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:27 +0700 Subject: [PATCH 06/46] New translations app_en.arb (Dutch) --- lib/l10n/arb/app_nl.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index f2b8bb02..7d495082 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From eb5ed8601999a653c56afe9c3054fd95d5667a10 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:28 +0700 Subject: [PATCH 07/46] New translations app_en.arb (Portuguese) --- lib/l10n/arb/app_pt-PT.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_pt-PT.arb b/lib/l10n/arb/app_pt-PT.arb index 7d06cfa8..aefdb884 100644 --- a/lib/l10n/arb/app_pt-PT.arb +++ b/lib/l10n/arb/app_pt-PT.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Embutido", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extensão", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 35afdf4be499afae87f80d50f3253368f5eddb25 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:30 +0700 Subject: [PATCH 08/46] New translations app_en.arb (Russian) --- lib/l10n/arb/app_ru.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 877c925e..3b292156 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Встроенные", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Расширение", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Скачайте FLAC с Tidal, Qobuz или Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From d85c16ce0ffd41b1e319f547d1e8008de91f5619 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:31 +0700 Subject: [PATCH 09/46] New translations app_en.arb (Chinese Simplified) --- lib/l10n/arb/app_zh_CN.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index 5b4dd487..b40ea7d8 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From f95a96dd1f22904286ed346e615898e5a6c7ba6c Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:32 +0700 Subject: [PATCH 10/46] New translations app_en.arb (Chinese Traditional) --- lib/l10n/arb/app_zh_TW.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_zh_TW.arb b/lib/l10n/arb/app_zh_TW.arb index d33658af..7bd8ea06 100644 --- a/lib/l10n/arb/app_zh_TW.arb +++ b/lib/l10n/arb/app_zh_TW.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 706528f04bc34a9f481c949bef825dcf36379a6d Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:33 +0700 Subject: [PATCH 11/46] New translations app_en.arb (Indonesian) --- lib/l10n/arb/app_id.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index dcd14626..cc2645aa 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Bawaan", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Ekstensi", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 221d7e482957944c2f2d5ec1c0c153b1a044967b Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:35 +0700 Subject: [PATCH 12/46] New translations app_en.arb (Hindi) --- lib/l10n/arb/app_hi.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_hi.arb b/lib/l10n/arb/app_hi.arb index 33040826..78371694 100644 --- a/lib/l10n/arb/app_hi.arb +++ b/lib/l10n/arb/app_hi.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Built-in", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Extension", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 581f43f4c1922fa67ab8c7fa13fa681de1d68bec Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:45:36 +0700 Subject: [PATCH 13/46] New translations app_en.arb (Turkish) --- lib/l10n/arb/app_tr-TR.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/arb/app_tr-TR.arb b/lib/l10n/arb/app_tr-TR.arb index 3e87884e..c6552f0e 100644 --- a/lib/l10n/arb/app_tr-TR.arb +++ b/lib/l10n/arb/app_tr-TR.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Spotify şarkılarını Tidal, Qobuz ve Amazon Music'den yüksek kalitede indir.", + "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -1097,7 +1097,7 @@ }, "providerBuiltIn": "Dahili", "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + "description": "Label for built-in providers (Tidal/Qobuz)" }, "providerExtension": "Eklenti", "@providerExtension": { @@ -2383,7 +2383,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, From 3c9ae39145aad15a7c87b2fe85d9aff027d0d92b Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:13 +0700 Subject: [PATCH 14/46] New translations app_en.arb (French) --- lib/l10n/arb/app_fr.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 0ba8cada..7b9bbe00 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From defc84c21673d28530126de2f82c7047ce1e0572 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:15 +0700 Subject: [PATCH 15/46] New translations app_en.arb (Spanish) --- lib/l10n/arb/app_es-ES.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_es-ES.arb b/lib/l10n/arb/app_es-ES.arb index d40658c9..38cf7761 100644 --- a/lib/l10n/arb/app_es-ES.arb +++ b/lib/l10n/arb/app_es-ES.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "No se puede cargar {item}: falta una fuente de extensión", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 9abf4923625d6410448b921e820e0dca26f4f5e8 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:16 +0700 Subject: [PATCH 16/46] New translations app_en.arb (German) --- lib/l10n/arb/app_de.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index 3dfa75c6..07961f39 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Kann {item} nicht lade wegen fehlender Erweiterungsquelle", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 94195c636f90ee327d18444019c940d922a3c377 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:17 +0700 Subject: [PATCH 17/46] New translations app_en.arb (Japanese) --- lib/l10n/arb/app_ja.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index 483e10e8..c9aa409a 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "{item} を読み込めません: 拡張ソースがありません", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From d3c1c440cca6205179986221f328223b269b0cb5 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:19 +0700 Subject: [PATCH 18/46] New translations app_en.arb (Korean) --- lib/l10n/arb/app_ko.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_ko.arb b/lib/l10n/arb/app_ko.arb index 0e812f70..a18431f4 100644 --- a/lib/l10n/arb/app_ko.arb +++ b/lib/l10n/arb/app_ko.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "확장 소스가 누락되어, {item}(을)를 로드할 수 없습니다", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 73c2d0efacc03e9820ee38dc12975cb7de914f2b Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:20 +0700 Subject: [PATCH 19/46] New translations app_en.arb (Dutch) --- lib/l10n/arb/app_nl.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index 7d495082..879ab4c4 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From de5d26403fe08549b0419274e0b8005c840941d9 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:22 +0700 Subject: [PATCH 20/46] New translations app_en.arb (Portuguese) --- lib/l10n/arb/app_pt-PT.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_pt-PT.arb b/lib/l10n/arb/app_pt-PT.arb index aefdb884..54b9a1a6 100644 --- a/lib/l10n/arb/app_pt-PT.arb +++ b/lib/l10n/arb/app_pt-PT.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Não é possível carregar {item}: faltando a fonte da extensão", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 07c609cc3a5032b891e1b1706a4b70f9d2ed1e14 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:23 +0700 Subject: [PATCH 21/46] New translations app_en.arb (Russian) --- lib/l10n/arb/app_ru.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 3b292156..3672c57f 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Невозможно загрузить {item}: отсутствует источник расширения", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 0456a97b352880e19ed294727b3f889dad26c184 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:24 +0700 Subject: [PATCH 22/46] New translations app_en.arb (Chinese Simplified) --- lib/l10n/arb/app_zh_CN.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index b40ea7d8..a07d4b4c 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 42e0ec266334dfee8f737eb8c37b25a5115a315c Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:26 +0700 Subject: [PATCH 23/46] New translations app_en.arb (Chinese Traditional) --- lib/l10n/arb/app_zh_TW.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_zh_TW.arb b/lib/l10n/arb/app_zh_TW.arb index 7bd8ea06..83618a39 100644 --- a/lib/l10n/arb/app_zh_TW.arb +++ b/lib/l10n/arb/app_zh_TW.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From f54ee865918303ac63d4001b074ecc7cdb193e45 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:27 +0700 Subject: [PATCH 24/46] New translations app_en.arb (Indonesian) --- lib/l10n/arb/app_id.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index cc2645aa..b9dc4f95 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Tidak dapat memuat {item}: sumber ekstensi tidak ada", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 8f6b99c55097b4bdda3a11cd6fc420ddbb684917 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:29 +0700 Subject: [PATCH 25/46] New translations app_en.arb (Hindi) --- lib/l10n/arb/app_hi.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_hi.arb b/lib/l10n/arb/app_hi.arb index 78371694..ed062641 100644 --- a/lib/l10n/arb/app_hi.arb +++ b/lib/l10n/arb/app_hi.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From dd05061829c8566d7aa7c01a61a87150c99437aa Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:26:30 +0700 Subject: [PATCH 26/46] New translations app_en.arb (Turkish) --- lib/l10n/arb/app_tr-TR.arb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/l10n/arb/app_tr-TR.arb b/lib/l10n/arb/app_tr-TR.arb index c6552f0e..86f06484 100644 --- a/lib/l10n/arb/app_tr-TR.arb +++ b/lib/l10n/arb/app_tr-TR.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "{item} yüklenemedi: Eksik eklenti kaynağı", "@errorMissingExtensionSource": { "description": "Error - extension source not available", From 91bd6d1572f07d96278d05c1a17e17c42694fd3d Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:42 +0700 Subject: [PATCH 27/46] Update source file app_en.arb --- lib/l10n/arb/app_en.arb | 104 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 7eee4649..03313d7b 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -897,6 +897,18 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, + "errorUrlNotRecognized": "Link not recognized", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" + }, + "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, "errorMissingExtensionSource": "Cannot load {item}: missing extension source", "@errorMissingExtensionSource": { "description": "Error - extension source not available", @@ -1003,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2808,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 0f6cfa75bb87e89d93da7a3f93942da68a071e10 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:44 +0700 Subject: [PATCH 28/46] New translations app_en.arb (French) --- lib/l10n/arb/app_fr.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 7b9bbe00..2fdf0477 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 5c97d202b95ead43be643533dbfeebeeee9b8aea Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:46 +0700 Subject: [PATCH 29/46] New translations app_en.arb (Spanish) --- lib/l10n/arb/app_es-ES.arb | 92 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_es-ES.arb b/lib/l10n/arb/app_es-ES.arb index 38cf7761..8d049334 100644 --- a/lib/l10n/arb/app_es-ES.arb +++ b/lib/l10n/arb/app_es-ES.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "Por Artista", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From d6e837fd6144a0ec37de93f05490dedcb21463f6 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:47 +0700 Subject: [PATCH 30/46] New translations app_en.arb (German) --- lib/l10n/arb/app_de.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index 07961f39..fea26e45 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "Nach Künstler", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Erstellen", "@actionCreate": { "description": "Generic action button - create" From e30b69397b2d91c231efcea1363cd5dad2debbe3 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:49 +0700 Subject: [PATCH 31/46] New translations app_en.arb (Japanese) --- lib/l10n/arb/app_ja.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index c9aa409a..7adfc376 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "アーティスト別", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 8cb0c037c2afed1a09596d25fe27ba7fe538a333 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:50 +0700 Subject: [PATCH 32/46] New translations app_en.arb (Korean) --- lib/l10n/arb/app_ko.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_ko.arb b/lib/l10n/arb/app_ko.arb index a18431f4..b872ef5c 100644 --- a/lib/l10n/arb/app_ko.arb +++ b/lib/l10n/arb/app_ko.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From c8ad93ee9b51b4672008388da4e9186b72e3da41 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:52 +0700 Subject: [PATCH 33/46] New translations app_en.arb (Dutch) --- lib/l10n/arb/app_nl.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index 879ab4c4..0af40b3e 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 59737d6f2b93efcaa0516558e0b3335d92b869eb Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:53 +0700 Subject: [PATCH 34/46] New translations app_en.arb (Portuguese) --- lib/l10n/arb/app_pt-PT.arb | 92 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_pt-PT.arb b/lib/l10n/arb/app_pt-PT.arb index 54b9a1a6..e461d1ae 100644 --- a/lib/l10n/arb/app_pt-PT.arb +++ b/lib/l10n/arb/app_pt-PT.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "Por Artista", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 941ffb2bb7ace7c6d23d5fcffec0d2b1d1934c99 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:54 +0700 Subject: [PATCH 35/46] New translations app_en.arb (Russian) --- lib/l10n/arb/app_ru.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 3672c57f..4c592c75 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "По исполнителю", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Создать", "@actionCreate": { "description": "Generic action button - create" From 24aa804bf2b760020f898449b53964a5d4afd2b6 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:56 +0700 Subject: [PATCH 36/46] New translations app_en.arb (Chinese Simplified) --- lib/l10n/arb/app_zh_CN.arb | 92 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index a07d4b4c..4bde94a0 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From b3808645fbb08573a05e7a765257eb78ea7e1b3e Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:57 +0700 Subject: [PATCH 37/46] New translations app_en.arb (Chinese Traditional) --- lib/l10n/arb/app_zh_TW.arb | 92 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_zh_TW.arb b/lib/l10n/arb/app_zh_TW.arb index 83618a39..940c7e28 100644 --- a/lib/l10n/arb/app_zh_TW.arb +++ b/lib/l10n/arb/app_zh_TW.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 37a4dc096bc826b24b7892a0cf4c6794ddec9fa0 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:42:58 +0700 Subject: [PATCH 38/46] New translations app_en.arb (Indonesian) --- lib/l10n/arb/app_id.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index b9dc4f95..fe7591a2 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "Berdasarkan Artis", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 5b8c953ae667abb572503fc0fc564dda45a038ad Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:43:00 +0700 Subject: [PATCH 39/46] New translations app_en.arb (Hindi) --- lib/l10n/arb/app_hi.arb | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_hi.arb b/lib/l10n/arb/app_hi.arb index ed062641..0eeebf16 100644 --- a/lib/l10n/arb/app_hi.arb +++ b/lib/l10n/arb/app_hi.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From cbfa147a1203f78b8cfd9367eee6a9f1d5972592 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:43:01 +0700 Subject: [PATCH 40/46] New translations app_en.arb (Turkish) --- lib/l10n/arb/app_tr-TR.arb | 92 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/lib/l10n/arb/app_tr-TR.arb b/lib/l10n/arb/app_tr-TR.arb index 86f06484..84ba01c5 100644 --- a/lib/l10n/arb/app_tr-TR.arb +++ b/lib/l10n/arb/app_tr-TR.arb @@ -1015,6 +1015,14 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, + "folderOrganizationByPlaylist": "By Playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, "folderOrganizationByArtist": "Sanatçıya Göre", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" @@ -2820,6 +2828,90 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, + "cueSplitTitle": "Split CUE Sheet", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "@cueSplitSubtitle": { + "description": "Subtitle for CUE split menu item" + }, + "cueSplitAlbum": "Album: {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artist: {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} tracks", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Split CUE Album", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Split into {count} tracks successfully", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "CUE split failed", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Split into Tracks", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, "actionCreate": "Create", "@actionCreate": { "description": "Generic action button - create" From 68bbc8a2596a7d05f001dad147ae7d7f9e850c41 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:47 +0700 Subject: [PATCH 41/46] New translations app_en.arb (German) --- lib/l10n/arb/app_de.arb | 108 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index fea26e45..bdc91aa3 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", + "aboutAppDescription": "Lade Spotify-Titel in verlustfreier Qualität von Tidal und Qobuz herunter.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -555,7 +555,7 @@ "@setupDownloadLocationTitle": { "description": "Download location dialog title" }, - "setupDownloadLocationIosMessage": "Auf iOS werden Downloads im Dokumentenverzeichnis der App gespeichert. Du kannst sie über die Datei-App aufrufen.", + "setupDownloadLocationIosMessage": "Auf iOS werden Downloads im Dokumentenordner der App gespeichert. Du kannst sie über die Datei-App aufrufen.", "@setupDownloadLocationIosMessage": { "description": "iOS-specific folder info" }, @@ -897,15 +897,15 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorUrlNotRecognized": "Link not recognized", + "errorUrlNotRecognized": "Link wurde nicht erkannt", "@errorUrlNotRecognized": { "description": "Error title - URL not handled by any extension or service" }, - "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "errorUrlNotRecognizedMessage": "Dieser Link ist inkompatibel. Prüfe die URL und stelle sicher, dass eine kompatible Erweiterung installiert ist.", "@errorUrlNotRecognizedMessage": { "description": "Error message - URL not recognized explanation" }, - "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "errorUrlFetchFailed": "Laden fehlgeschlagen. Bitte erneut versuchen.", "@errorUrlFetchFailed": { "description": "Error message - generic URL fetch failure" }, @@ -959,7 +959,7 @@ "@selectionAllSelected": { "description": "Status - all items selected" }, - "selectionSelectToDelete": "Titel zum Löschen auswählen", + "selectionSelectToDelete": "Titel zum Löschen wählen", "@selectionSelectToDelete": { "description": "Placeholder when nothing selected" }, @@ -987,7 +987,7 @@ "@searchArtists": { "description": "Search result category - artists" }, - "searchAlbums": "Albums", + "searchAlbums": "Alben", "@searchAlbums": { "description": "Search result category - albums" }, @@ -1015,11 +1015,11 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, - "folderOrganizationByPlaylist": "By Playlist", + "folderOrganizationByPlaylist": "Nach Playlist", "@folderOrganizationByPlaylist": { "description": "Folder option - playlist folders" }, - "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "folderOrganizationByPlaylistSubtitle": "Ordner für jede Playlist trennen", "@folderOrganizationByPlaylistSubtitle": { "description": "Subtitle for playlist folder option" }, @@ -1039,7 +1039,7 @@ "@folderOrganizationDescription": { "description": "Folder organization sheet description" }, - "folderOrganizationNoneSubtitle": "Alle Dateien im Download-Verzeichnis", + "folderOrganizationNoneSubtitle": "Alle Dateien im Download-Ordner", "@folderOrganizationNoneSubtitle": { "description": "Subtitle for no organization option" }, @@ -1789,7 +1789,7 @@ "@downloadAskBeforeDownload": { "description": "Setting - show quality picker" }, - "downloadDirectory": "Downloadverzeichnis", + "downloadDirectory": "Download-Ordner", "@downloadDirectory": { "description": "Setting - download folder" }, @@ -1797,15 +1797,15 @@ "@downloadSeparateSinglesFolder": { "description": "Setting - separate folder for singles" }, - "downloadAlbumFolderStructure": "Album Folder Structure", + "downloadAlbumFolderStructure": "Album-Ordnerstruktur", "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, - "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", + "downloadUseAlbumArtistForFolders": "Album-Künstler für Ordner verwenden", "@downloadUseAlbumArtistForFolders": { "description": "Setting - choose whether artist folders use Album Artist or Track Artist" }, - "downloadUsePrimaryArtistOnly": "Primary artist only for folders", + "downloadUsePrimaryArtistOnly": "Primärer Künstler nur für Ordner", "@downloadUsePrimaryArtistOnly": { "description": "Setting - strip featured artists from folder name" }, @@ -1813,7 +1813,7 @@ "@downloadUsePrimaryArtistOnlyEnabled": { "description": "Subtitle when primary artist only is enabled" }, - "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", + "downloadUsePrimaryArtistOnlyDisabled": "Vollständiger Künstler für Ordnername", "@downloadUsePrimaryArtistOnlyDisabled": { "description": "Subtitle when primary artist only is disabled" }, @@ -1841,7 +1841,7 @@ "@queueClearAllMessage": { "description": "Clear queue confirmation" }, - "settingsAutoExportFailed": "Auto-export failed downloads", + "settingsAutoExportFailed": "Auto-Export fehlgeschlagener Downloads", "@settingsAutoExportFailed": { "description": "Setting toggle for auto-export" }, @@ -1869,15 +1869,15 @@ "@albumFolderArtistAlbum": { "description": "Album folder option" }, - "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", + "albumFolderArtistAlbumSubtitle": "Alben/Künster Name/Album Name/", "@albumFolderArtistAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderArtistYearAlbum": "Artist / [Year] Album", + "albumFolderArtistYearAlbum": "Künstler / [Year] Album", "@albumFolderArtistYearAlbum": { "description": "Album folder option with year" }, - "albumFolderArtistYearAlbumSubtitle": "Albums/Künster Name/[2005] Album Name/", + "albumFolderArtistYearAlbumSubtitle": "Alben/Künster Name/[2005] Album Name/", "@albumFolderArtistYearAlbumSubtitle": { "description": "Folder structure example" }, @@ -1893,15 +1893,15 @@ "@albumFolderYearAlbum": { "description": "Album folder option with year" }, - "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", + "albumFolderYearAlbumSubtitle": "Alben/[2005] Album Name/", "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "albumFolderArtistAlbumSingles": "Künstler / Album + Singles", "@albumFolderArtistAlbumSingles": { "description": "Album folder option with singles inside artist" }, - "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "albumFolderArtistAlbumSinglesSubtitle": "Künstler/Album/ und Künstler/Singles/", "@albumFolderArtistAlbumSinglesSubtitle": { "description": "Folder structure example" }, @@ -1944,7 +1944,7 @@ } } }, - "downloadedAlbumSelectToDelete": "Select tracks to delete", + "downloadedAlbumSelectToDelete": "Titel zum Löschen wählen", "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, @@ -2016,7 +2016,7 @@ "@discographyAlbumsOnly": { "description": "Option - download only albums" }, - "discographyAlbumsOnlySubtitle": "{count} Titel von {albumCount} Albums", + "discographyAlbumsOnlySubtitle": "{count} Titel aus {albumCount} Alben", "@discographyAlbumsOnlySubtitle": { "description": "Subtitle showing album tracks count", "placeholders": { @@ -2048,7 +2048,7 @@ "@discographySelectAlbums": { "description": "Option - manually select albums to download" }, - "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "discographySelectAlbumsSubtitle": "Wähle bestimmte Alben oder Singles", "@discographySelectAlbumsSubtitle": { "description": "Subtitle for select albums option" }, @@ -2056,7 +2056,7 @@ "@discographyFetchingTracks": { "description": "Progress - fetching album tracks" }, - "discographyFetchingAlbum": "Fetching {current} of {total}...", + "discographyFetchingAlbum": "Lade {current} von {total}...", "@discographyFetchingAlbum": { "description": "Progress - fetching specific album", "placeholders": { @@ -2081,7 +2081,7 @@ "@discographyDownloadSelected": { "description": "Button - download selected albums" }, - "discographyAddedToQueue": "Added {count} tracks to queue", + "discographyAddedToQueue": "{count} Titel zur Warteschlange hinzugefügt", "@discographyAddedToQueue": { "description": "Snackbar - tracks added from discography", "placeholders": { @@ -2106,7 +2106,7 @@ "@discographyNoAlbums": { "description": "Error - no albums found for artist" }, - "discographyFailedToFetch": "Failed to fetch some albums", + "discographyFailedToFetch": "Fehler beim Abrufen einiger Alben", "@discographyFailedToFetch": { "description": "Error - some albums failed to load" }, @@ -2118,15 +2118,15 @@ "@allFilesAccess": { "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" }, - "allFilesAccessEnabledSubtitle": "Can write to any folder", + "allFilesAccessEnabledSubtitle": "Darf in jeden Ordner schreiben", "@allFilesAccessEnabledSubtitle": { "description": "Subtitle when all files access is enabled" }, - "allFilesAccessDisabledSubtitle": "Limited to media folders only", + "allFilesAccessDisabledSubtitle": "Nur auf Medienordner begrenzt", "@allFilesAccessDisabledSubtitle": { "description": "Subtitle when all files access is disabled" }, - "allFilesAccessDescription": "Aktiviere die Option, wenn beim Speichern in benutzerdefinierten Ordnern Schreibfehler auftreten. Weil Android 13+ standardmäßig den Zugriff auf bestimmte Verzeichnisse einschränkt.", + "allFilesAccessDescription": "Option bei Schreibfehlern bitte aktivieren (erforderlich ab Android 13).", "@allFilesAccessDescription": { "description": "Description explaining when to enable all files access" }, @@ -2142,7 +2142,7 @@ "@settingsLocalLibrary": { "description": "Settings menu item - local library" }, - "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", + "settingsLocalLibrarySubtitle": "Musik scannen & Duplikate erkennen", "@settingsLocalLibrarySubtitle": { "description": "Subtitle for local library settings" }, @@ -2150,7 +2150,7 @@ "@settingsCache": { "description": "Settings menu item - cache management" }, - "settingsCacheSubtitle": "View size and clear cached data", + "settingsCacheSubtitle": "Größe anzeigen und Daten im Cache leeren", "@settingsCacheSubtitle": { "description": "Subtitle for cache management menu" }, @@ -2166,7 +2166,7 @@ "@libraryEnableLocalLibrary": { "description": "Toggle to enable library scanning" }, - "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", + "libraryEnableLocalLibrarySubtitle": "Scan und verfolge deine bestehende Musik", "@libraryEnableLocalLibrarySubtitle": { "description": "Subtitle for enable toggle" }, @@ -2178,7 +2178,7 @@ "@libraryFolderHint": { "description": "Placeholder when no folder selected" }, - "libraryShowDuplicateIndicator": "Show Duplicate Indicator", + "libraryShowDuplicateIndicator": "Duplikat Indikator anzeigen", "@libraryShowDuplicateIndicator": { "description": "Toggle for duplicate indicator in search" }, @@ -2403,7 +2403,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Hole dir FLAC Audio von Tidal, Qobuz oder Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -2475,7 +2475,7 @@ "@tutorialSettingsDesc": { "description": "Tutorial settings page description" }, - "tutorialSettingsTip1": "Downloadverzeichnis und Ordnerorganisation ändern", + "tutorialSettingsTip1": "Download-Ordner und Ordner-Organisation ändern", "@tutorialSettingsTip1": { "description": "Tutorial settings tip 1" }, @@ -2549,7 +2549,7 @@ "@cacheSectionMaintenance": { "description": "Section header for cleanup actions" }, - "cacheAppDirectory": "App-Cache Verzeichnis", + "cacheAppDirectory": "App-Cache Ordner", "@cacheAppDirectory": { "description": "Cache item title for app cache directory" }, @@ -2557,7 +2557,7 @@ "@cacheAppDirectoryDesc": { "description": "Description of what app cache directory contains" }, - "cacheTempDirectory": "Temporäres Verzeichnis", + "cacheTempDirectory": "Temporärer Ordner", "@cacheTempDirectory": { "description": "Cache item title for temporary files directory" }, @@ -2725,7 +2725,7 @@ "@trackEditMetadata": { "description": "Menu action - edit embedded metadata" }, - "trackCoverSaved": "Cover art saved to {fileName}", + "trackCoverSaved": "Cover in {fileName} gespeichert", "@trackCoverSaved": { "description": "Snackbar after cover art saved", "placeholders": { @@ -2734,7 +2734,7 @@ } } }, - "trackCoverNoSource": "No cover art source available", + "trackCoverNoSource": "Keine Cover Quelle vorhanden", "@trackCoverNoSource": { "description": "Snackbar when no cover art URL or embedded cover" }, @@ -2828,11 +2828,11 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, - "cueSplitTitle": "Split CUE Sheet", + "cueSplitTitle": "CUE-Sheet aufteilen", "@cueSplitTitle": { "description": "Title for CUE split bottom sheet" }, - "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "cueSplitSubtitle": "CUE+FLAC in einzelne Titel aufteilen", "@cueSplitSubtitle": { "description": "Subtitle for CUE split menu item" }, @@ -2845,7 +2845,7 @@ } } }, - "cueSplitArtist": "Artist: {artist}", + "cueSplitArtist": "Künstler: {artist}", "@cueSplitArtist": { "description": "Artist name in CUE split sheet", "placeholders": { @@ -2854,7 +2854,7 @@ } } }, - "cueSplitTrackCount": "{count} tracks", + "cueSplitTrackCount": "{count} Titel", "@cueSplitTrackCount": { "description": "Number of tracks in CUE sheet", "placeholders": { @@ -2863,11 +2863,11 @@ } } }, - "cueSplitConfirmTitle": "Split CUE Album", + "cueSplitConfirmTitle": "CUE-Album aufteilen", "@cueSplitConfirmTitle": { "description": "CUE split confirmation dialog title" }, - "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "cueSplitConfirmMessage": "Soll „{album}“ in {count} einzelne FLAC-Dateien aufgeteilt werden?\n\nDie Dateien werden im selben Ordner gespeichert.", "@cueSplitConfirmMessage": { "description": "CUE split confirmation dialog message", "placeholders": { @@ -2879,7 +2879,7 @@ } } }, - "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "cueSplitSplitting": "CUE-Sheet wird geteilt... ({current}/{total})", "@cueSplitSplitting": { "description": "Snackbar while splitting CUE", "placeholders": { @@ -2891,7 +2891,7 @@ } } }, - "cueSplitSuccess": "Split into {count} tracks successfully", + "cueSplitSuccess": "{count} Titel erfolgreich aufgeteilt", "@cueSplitSuccess": { "description": "Snackbar after successful CUE split", "placeholders": { @@ -2900,15 +2900,15 @@ } } }, - "cueSplitFailed": "CUE split failed", + "cueSplitFailed": "CUE-Aufteilung fehlgeschlagen", "@cueSplitFailed": { "description": "Snackbar when CUE split fails" }, - "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "cueSplitNoAudioFile": "Audiodatei für dieses CUE-Sheet nicht gefunden", "@cueSplitNoAudioFile": { "description": "Error when CUE audio file is missing" }, - "cueSplitButton": "Split into Tracks", + "cueSplitButton": "In Titel aufteilen", "@cueSplitButton": { "description": "Button text to start CUE splitting" }, @@ -3198,11 +3198,11 @@ } } }, - "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Künstlerordner verwenden den Album-Interpreten, wenn verfügbar", + "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Interpret-Ordner verwenden Album-Interpret, sofern vorhanden", "@downloadUseAlbumArtistForFoldersAlbumSubtitle": { "description": "Subtitle when Album Artist is used for folder naming" }, - "downloadUseAlbumArtistForFoldersTrackSubtitle": "Artist folders use Track Artist only", + "downloadUseAlbumArtistForFoldersTrackSubtitle": "Künstler-Ordner nur für Titel-Künstler", "@downloadUseAlbumArtistForFoldersTrackSubtitle": { "description": "Subtitle when Track Artist is used for folder naming" } From 7021e5493f7bb8701f8faa5d61ee97e23c490fe0 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:49 +0700 Subject: [PATCH 42/46] New translations app_en.arb (Japanese) --- lib/l10n/arb/app_ja.arb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index 7adfc376..44674a04 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -1003,7 +1003,7 @@ "@filenameFormat": { "description": "Setting title - filename pattern" }, - "filenameShowAdvancedTags": "Show advanced tags", + "filenameShowAdvancedTags": "高度なタグを表示", "@filenameShowAdvancedTags": { "description": "Toggle label for showing advanced filename tags" }, @@ -1491,7 +1491,7 @@ "@trackLyricsEmbedded": { "description": "Snackbar - lyrics saved to file" }, - "trackInstrumental": "Instrumental track", + "trackInstrumental": "インストゥルメンタルのトラック", "@trackInstrumental": { "description": "Message when track is instrumental (no lyrics)" }, @@ -2828,7 +2828,7 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, - "cueSplitTitle": "Split CUE Sheet", + "cueSplitTitle": "分割 CUE シート", "@cueSplitTitle": { "description": "Title for CUE split bottom sheet" }, @@ -3044,7 +3044,7 @@ "@collectionRemoveFromPlaylist": { "description": "Tooltip for removing track from playlist" }, - "collectionRemoveFromFolder": "Remove from folder", + "collectionRemoveFromFolder": "フォルダから削除", "@collectionRemoveFromFolder": { "description": "Tooltip for removing track from wishlist/loved folder" }, @@ -3101,23 +3101,23 @@ "@trackOptionRemoveFromLoved": { "description": "Bottom sheet action label - remove track from loved folder" }, - "trackOptionAddToWishlist": "Add to Wishlist", + "trackOptionAddToWishlist": "ウィッシュリストに追加", "@trackOptionAddToWishlist": { "description": "Bottom sheet action label - add track to wishlist" }, - "trackOptionRemoveFromWishlist": "Remove from Wishlist", + "trackOptionRemoveFromWishlist": "ウィッシュから削除", "@trackOptionRemoveFromWishlist": { "description": "Bottom sheet action label - remove track from wishlist" }, - "collectionPlaylistChangeCover": "Change cover image", + "collectionPlaylistChangeCover": "カバー画像を変更", "@collectionPlaylistChangeCover": { "description": "Bottom sheet action to pick a custom cover image for a playlist" }, - "collectionPlaylistRemoveCover": "Remove cover image", + "collectionPlaylistRemoveCover": "カバー画像を削除", "@collectionPlaylistRemoveCover": { "description": "Bottom sheet action to remove custom cover image from a playlist" }, - "selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}", + "selectionShareCount": "{count} {count, plural, =1{個のトラック} other{個のトラック}}を共有", "@selectionShareCount": { "description": "Share button text with count in selection mode", "placeholders": { @@ -3143,7 +3143,7 @@ "@selectionConvertNoConvertible": { "description": "Snackbar when no selected tracks support conversion" }, - "selectionBatchConvertConfirmTitle": "Batch Convert", + "selectionBatchConvertConfirmTitle": "一括変換", "@selectionBatchConvertConfirmTitle": { "description": "Confirmation dialog title for batch conversion" }, From 40b224e5a167f6bb26fcf2202cbd0c533fb32d19 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:51 +0700 Subject: [PATCH 43/46] New translations app_en.arb (Dutch) --- lib/l10n/arb/app_nl.arb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index 0af40b3e..438519c3 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -194,11 +194,11 @@ "@optionsConcurrentDownloads": { "description": "Number of parallel downloads" }, - "optionsConcurrentSequential": "Sequential (1 at a time)", + "optionsConcurrentSequential": "Sequentiële (1 per keer)", "@optionsConcurrentSequential": { "description": "Download one at a time" }, - "optionsConcurrentParallel": "{count} parallel downloads", + "optionsConcurrentParallel": "", "@optionsConcurrentParallel": { "description": "Multiple parallel downloads", "placeholders": { @@ -207,7 +207,7 @@ } } }, - "optionsConcurrentWarning": "Parallel downloads may trigger rate limiting", + "optionsConcurrentWarning": "Parallel downloaden kan leiden tot rate-limiting", "@optionsConcurrentWarning": { "description": "Warning about rate limits" }, @@ -346,7 +346,7 @@ "@aboutContributors": { "description": "Section for contributors" }, - "aboutMobileDeveloper": "Mobile version developer", + "aboutMobileDeveloper": "", "@aboutMobileDeveloper": { "description": "Role description for mobile dev" }, From d299144c47ef0c8ee9997dc9ddb4d8b552e8b610 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:53 +0700 Subject: [PATCH 44/46] New translations app_en.arb (Russian) --- lib/l10n/arb/app_ru.arb | 52 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 4c592c75..665fb473 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", + "aboutAppDescription": "Скачивайте треки Spotify в lossless качестве с Tidal и Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -897,15 +897,15 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorUrlNotRecognized": "Link not recognized", + "errorUrlNotRecognized": "Ссылка не распознана", "@errorUrlNotRecognized": { "description": "Error title - URL not handled by any extension or service" }, - "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "errorUrlNotRecognizedMessage": "Эта ссылка не поддерживается. Убедитесь, что URL-адрес указан правильно и установлено совместимое расширение.", "@errorUrlNotRecognizedMessage": { "description": "Error message - URL not recognized explanation" }, - "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "errorUrlFetchFailed": "Не удалось загрузить контент по этой ссылке. Пожалуйста, попробуйте еще раз.", "@errorUrlFetchFailed": { "description": "Error message - generic URL fetch failure" }, @@ -1015,11 +1015,11 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, - "folderOrganizationByPlaylist": "By Playlist", + "folderOrganizationByPlaylist": "По плейлисту", "@folderOrganizationByPlaylist": { "description": "Folder option - playlist folders" }, - "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "folderOrganizationByPlaylistSubtitle": "Отдельная папка для каждого плейлиста", "@folderOrganizationByPlaylistSubtitle": { "description": "Subtitle for playlist folder option" }, @@ -1809,7 +1809,7 @@ "@downloadUsePrimaryArtistOnly": { "description": "Setting - strip featured artists from folder name" }, - "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", + "downloadUsePrimaryArtistOnlyEnabled": "Список исполнителей, чьи работы были удалены из названия папки (например, Джастин Бибер, Quavo → Джастин Бибер)", "@downloadUsePrimaryArtistOnlyEnabled": { "description": "Subtitle when primary artist only is enabled" }, @@ -2403,7 +2403,7 @@ "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Получите аудио в качестве FLAC от Tidal, Qobuz или Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, @@ -2507,7 +2507,7 @@ "@cleanupOrphanedDownloadsSubtitle": { "description": "Subtitle for orphaned cleanup button" }, - "cleanupOrphanedDownloadsResult": "Removed {count} orphaned entries from history", + "cleanupOrphanedDownloadsResult": "Удалено {count} утерянных записей из истории", "@cleanupOrphanedDownloadsResult": { "description": "Snackbar after orphan cleanup", "placeholders": { @@ -2545,7 +2545,7 @@ "@cacheSectionStorage": { "description": "Section header for cache entries" }, - "cacheSectionMaintenance": "Maintenance", + "cacheSectionMaintenance": "Обслуживание", "@cacheSectionMaintenance": { "description": "Section header for cleanup actions" }, @@ -2597,7 +2597,7 @@ "@cacheTrackLookupDesc": { "description": "Description of what track lookup cache contains" }, - "cacheCleanupUnusedDesc": "Remove orphaned download history and library entries for missing files.", + "cacheCleanupUnusedDesc": "Удалить записи из истории загрузок и библиотеки, которые остались без файлов.", "@cacheCleanupUnusedDesc": { "description": "Description of what cleanup unused data does" }, @@ -2673,7 +2673,7 @@ "@cacheCleanupUnused": { "description": "Action title for cleaning unused entries" }, - "cacheCleanupUnusedSubtitle": "Remove orphaned download history and missing library entries", + "cacheCleanupUnusedSubtitle": "Удалить историю загрузок, оставшихся без просмотра, и отсутствующие записи в библиотеке", "@cacheCleanupUnusedSubtitle": { "description": "Subtitle for cleanup unused data action" }, @@ -2828,15 +2828,15 @@ "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, - "cueSplitTitle": "Split CUE Sheet", + "cueSplitTitle": "Разделить CUE Sheet", "@cueSplitTitle": { "description": "Title for CUE split bottom sheet" }, - "cueSplitSubtitle": "Split CUE+FLAC into individual tracks", + "cueSplitSubtitle": "Разделить файл CUE+FLAC на отдельные треки", "@cueSplitSubtitle": { "description": "Subtitle for CUE split menu item" }, - "cueSplitAlbum": "Album: {album}", + "cueSplitAlbum": "Альбом: {album}", "@cueSplitAlbum": { "description": "Album name in CUE split sheet", "placeholders": { @@ -2845,7 +2845,7 @@ } } }, - "cueSplitArtist": "Artist: {artist}", + "cueSplitArtist": "Артист: {artist}", "@cueSplitArtist": { "description": "Artist name in CUE split sheet", "placeholders": { @@ -2854,7 +2854,7 @@ } } }, - "cueSplitTrackCount": "{count} tracks", + "cueSplitTrackCount": "{count} треков", "@cueSplitTrackCount": { "description": "Number of tracks in CUE sheet", "placeholders": { @@ -2863,11 +2863,11 @@ } } }, - "cueSplitConfirmTitle": "Split CUE Album", + "cueSplitConfirmTitle": "Разделенный CUE-альбом", "@cueSplitConfirmTitle": { "description": "CUE split confirmation dialog title" }, - "cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.", + "cueSplitConfirmMessage": "Разбить \"{album}\" на {count} отдельных FLAC-файлов?", "@cueSplitConfirmMessage": { "description": "CUE split confirmation dialog message", "placeholders": { @@ -2879,7 +2879,7 @@ } } }, - "cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})", + "cueSplitSplitting": "Разделение CUE sheet... ({current}/{total})", "@cueSplitSplitting": { "description": "Snackbar while splitting CUE", "placeholders": { @@ -2891,7 +2891,7 @@ } } }, - "cueSplitSuccess": "Split into {count} tracks successfully", + "cueSplitSuccess": "Успешно разделено на {count} треков", "@cueSplitSuccess": { "description": "Snackbar after successful CUE split", "placeholders": { @@ -2900,15 +2900,15 @@ } } }, - "cueSplitFailed": "CUE split failed", + "cueSplitFailed": "Разделение CUE не удалось", "@cueSplitFailed": { "description": "Snackbar when CUE split fails" }, - "cueSplitNoAudioFile": "Audio file not found for this CUE sheet", + "cueSplitNoAudioFile": "Аудиофайл для этого CUE sheet не найден", "@cueSplitNoAudioFile": { "description": "Error when CUE audio file is missing" }, - "cueSplitButton": "Split into Tracks", + "cueSplitButton": "Разделить на Треки", "@cueSplitButton": { "description": "Button text to start CUE splitting" }, @@ -3126,7 +3126,7 @@ } } }, - "selectionShareNoFiles": "No shareable files found", + "selectionShareNoFiles": "Файлы, доступные для совместного доступа, не найдены", "@selectionShareNoFiles": { "description": "Snackbar when no selected files exist on disk" }, @@ -3147,7 +3147,7 @@ "@selectionBatchConvertConfirmTitle": { "description": "Confirmation dialog title for batch conversion" }, - "selectionBatchConvertConfirmMessage": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} at {bitrate}?\n\nOriginal files will be deleted after conversion.", + "selectionBatchConvertConfirmMessage": "Преобразовать {count} {count, plural, =1{track} other{tracks}} в {format} с {bitrate}?", "@selectionBatchConvertConfirmMessage": { "description": "Confirmation dialog message for batch conversion", "placeholders": { From 58b620368128835d1e49e0b7419f57569e50f1f3 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:54 +0700 Subject: [PATCH 45/46] New translations app_en.arb (Chinese Simplified) --- lib/l10n/arb/app_zh_CN.arb | 192 ++++++++++++++++++------------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index 4bde94a0..db36f07c 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -5,143 +5,143 @@ "@appName": { "description": "App name - DO NOT TRANSLATE" }, - "navHome": "Home", + "navHome": "主页", "@navHome": { "description": "Bottom navigation - Home tab" }, - "navLibrary": "Library", + "navLibrary": "乐库", "@navLibrary": { "description": "Bottom navigation - Library tab" }, - "navSettings": "Settings", + "navSettings": "设置", "@navSettings": { "description": "Bottom navigation - Settings tab" }, - "navStore": "Store", + "navStore": "商店", "@navStore": { "description": "Bottom navigation - Extension store tab" }, - "homeTitle": "Home", + "homeTitle": "主页", "@homeTitle": { "description": "Home screen title" }, - "homeSubtitle": "Paste a Spotify link or search by name", + "homeSubtitle": "粘贴 Spotify 链接或按名称搜索", "@homeSubtitle": { "description": "Subtitle shown below search box" }, - "homeSupports": "Supports: Track, Album, Playlist, Artist URLs", + "homeSupports": "支持:歌曲、专辑、播放列表、艺人网址", "@homeSupports": { "description": "Info text about supported URL types" }, - "homeRecent": "Recent", + "homeRecent": "最近", "@homeRecent": { "description": "Section header for recent searches" }, - "historyFilterAll": "All", + "historyFilterAll": "全部", "@historyFilterAll": { "description": "Filter chip - show all items" }, - "historyFilterAlbums": "Albums", + "historyFilterAlbums": "专辑", "@historyFilterAlbums": { "description": "Filter chip - show albums only" }, - "historyFilterSingles": "Singles", + "historyFilterSingles": "单曲", "@historyFilterSingles": { "description": "Filter chip - show singles only" }, - "historySearchHint": "Search history...", + "historySearchHint": "搜索历史……", "@historySearchHint": { "description": "Search bar placeholder in history" }, - "settingsTitle": "Settings", + "settingsTitle": "设置", "@settingsTitle": { "description": "Settings screen title" }, - "settingsDownload": "Download", + "settingsDownload": "下载", "@settingsDownload": { "description": "Settings section - download options" }, - "settingsAppearance": "Appearance", + "settingsAppearance": "外观", "@settingsAppearance": { "description": "Settings section - visual customization" }, - "settingsOptions": "Options", + "settingsOptions": "选项", "@settingsOptions": { "description": "Settings section - app options" }, - "settingsExtensions": "Extensions", + "settingsExtensions": "扩展", "@settingsExtensions": { "description": "Settings section - extension management" }, - "settingsAbout": "About", + "settingsAbout": "关于", "@settingsAbout": { "description": "Settings section - app info" }, - "downloadTitle": "Download", + "downloadTitle": "下载", "@downloadTitle": { "description": "Download settings page title" }, - "downloadAskQualitySubtitle": "Show quality picker for each download", + "downloadAskQualitySubtitle": "为每次下载显示质量选择器", "@downloadAskQualitySubtitle": { "description": "Subtitle for ask quality toggle" }, - "downloadFilenameFormat": "Filename Format", + "downloadFilenameFormat": "文件名格式", "@downloadFilenameFormat": { "description": "Setting for output filename pattern" }, - "downloadFolderOrganization": "Folder Organization", + "downloadFolderOrganization": "文件夹结构", "@downloadFolderOrganization": { "description": "Setting for folder structure" }, - "appearanceTitle": "Appearance", + "appearanceTitle": "外观", "@appearanceTitle": { "description": "Appearance settings page title" }, - "appearanceThemeSystem": "System", + "appearanceThemeSystem": "系统", "@appearanceThemeSystem": { "description": "Follow system theme" }, - "appearanceThemeLight": "Light", + "appearanceThemeLight": "浅色", "@appearanceThemeLight": { "description": "Light theme" }, - "appearanceThemeDark": "Dark", + "appearanceThemeDark": "深色", "@appearanceThemeDark": { "description": "Dark theme" }, - "appearanceDynamicColor": "Dynamic Color", + "appearanceDynamicColor": "动态色彩", "@appearanceDynamicColor": { "description": "Material You dynamic colors" }, - "appearanceDynamicColorSubtitle": "Use colors from your wallpaper", + "appearanceDynamicColorSubtitle": "使用壁纸的颜色", "@appearanceDynamicColorSubtitle": { "description": "Subtitle for dynamic color" }, - "appearanceHistoryView": "History View", + "appearanceHistoryView": "历史记录", "@appearanceHistoryView": { "description": "Layout style for history" }, - "appearanceHistoryViewList": "List", + "appearanceHistoryViewList": "列表", "@appearanceHistoryViewList": { "description": "List layout option" }, - "appearanceHistoryViewGrid": "Grid", + "appearanceHistoryViewGrid": "网格", "@appearanceHistoryViewGrid": { "description": "Grid layout option" }, - "optionsTitle": "Options", + "optionsTitle": "选项", "@optionsTitle": { "description": "Options settings page title" }, - "optionsPrimaryProvider": "Primary Provider", + "optionsPrimaryProvider": "主要提供者", "@optionsPrimaryProvider": { "description": "Main search provider setting" }, - "optionsPrimaryProviderSubtitle": "Service used when searching by track name.", + "optionsPrimaryProviderSubtitle": "按歌曲名称搜索时使用的服务。", "@optionsPrimaryProviderSubtitle": { "description": "Subtitle for primary provider" }, - "optionsUsingExtension": "Using extension: {extensionName}", + "optionsUsingExtension": "使用扩展:{extensionName}", "@optionsUsingExtension": { "description": "Shows active extension name", "placeholders": { @@ -150,55 +150,55 @@ } } }, - "optionsSwitchBack": "Tap Deezer or Spotify to switch back from extension", + "optionsSwitchBack": "点击 Deezer 或 Spotify 即可从扩展程序切换回来", "@optionsSwitchBack": { "description": "Hint to switch back to built-in providers" }, - "optionsAutoFallback": "Auto Fallback", + "optionsAutoFallback": "自动回退", "@optionsAutoFallback": { "description": "Auto-retry with other services" }, - "optionsAutoFallbackSubtitle": "Try other services if download fails", + "optionsAutoFallbackSubtitle": "如果下载失败,请尝试其他服务", "@optionsAutoFallbackSubtitle": { "description": "Subtitle for auto fallback" }, - "optionsUseExtensionProviders": "Use Extension Providers", + "optionsUseExtensionProviders": "使用扩展提供商", "@optionsUseExtensionProviders": { "description": "Enable extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "扩展会被最先尝试", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, - "optionsUseExtensionProvidersOff": "Using built-in providers only", + "optionsUseExtensionProvidersOff": "仅使用内置提供商", "@optionsUseExtensionProvidersOff": { "description": "Status when extension providers disabled" }, - "optionsEmbedLyrics": "Embed Lyrics", + "optionsEmbedLyrics": "内嵌歌词", "@optionsEmbedLyrics": { "description": "Embed lyrics in audio files" }, - "optionsEmbedLyricsSubtitle": "Embed synced lyrics into FLAC files", + "optionsEmbedLyricsSubtitle": "嵌入已同步歌词到 FLAC 文件", "@optionsEmbedLyricsSubtitle": { "description": "Subtitle for embed lyrics" }, - "optionsMaxQualityCover": "Max Quality Cover", + "optionsMaxQualityCover": "最高质量封面", "@optionsMaxQualityCover": { "description": "Download highest quality album art" }, - "optionsMaxQualityCoverSubtitle": "Download highest resolution cover art", + "optionsMaxQualityCoverSubtitle": "下载最高分辨率封面", "@optionsMaxQualityCoverSubtitle": { "description": "Subtitle for max quality cover" }, - "optionsConcurrentDownloads": "Concurrent Downloads", + "optionsConcurrentDownloads": "并行下载数", "@optionsConcurrentDownloads": { "description": "Number of parallel downloads" }, - "optionsConcurrentSequential": "Sequential (1 at a time)", + "optionsConcurrentSequential": "按顺序下载(一次一首)", "@optionsConcurrentSequential": { "description": "Download one at a time" }, - "optionsConcurrentParallel": "{count} parallel downloads", + "optionsConcurrentParallel": "同时下载 {count} 首", "@optionsConcurrentParallel": { "description": "Multiple parallel downloads", "placeholders": { @@ -207,67 +207,67 @@ } } }, - "optionsConcurrentWarning": "Parallel downloads may trigger rate limiting", + "optionsConcurrentWarning": "并行下载可能会触发速率限制", "@optionsConcurrentWarning": { "description": "Warning about rate limits" }, - "optionsExtensionStore": "Extension Store", + "optionsExtensionStore": "扩展商店", "@optionsExtensionStore": { "description": "Show/hide store tab" }, - "optionsExtensionStoreSubtitle": "Show Store tab in navigation", + "optionsExtensionStoreSubtitle": "在导航中显示商店标签", "@optionsExtensionStoreSubtitle": { "description": "Subtitle for extension store toggle" }, - "optionsCheckUpdates": "Check for Updates", + "optionsCheckUpdates": "检查更新", "@optionsCheckUpdates": { "description": "Auto update check toggle" }, - "optionsCheckUpdatesSubtitle": "Notify when new version is available", + "optionsCheckUpdatesSubtitle": "当有新版本可用时通知", "@optionsCheckUpdatesSubtitle": { "description": "Subtitle for update check" }, - "optionsUpdateChannel": "Update Channel", + "optionsUpdateChannel": "更新频道", "@optionsUpdateChannel": { "description": "Stable vs preview releases" }, - "optionsUpdateChannelStable": "Stable releases only", + "optionsUpdateChannelStable": "仅稳定版本", "@optionsUpdateChannelStable": { "description": "Only stable updates" }, - "optionsUpdateChannelPreview": "Get preview releases", + "optionsUpdateChannelPreview": "获取预览版本", "@optionsUpdateChannelPreview": { "description": "Include beta/preview updates" }, - "optionsUpdateChannelWarning": "Preview may contain bugs or incomplete features", + "optionsUpdateChannelWarning": "预览版本可能包含错误或者尚未完善的功能", "@optionsUpdateChannelWarning": { "description": "Warning about preview channel" }, - "optionsClearHistory": "Clear Download History", + "optionsClearHistory": "清除下载历史记录", "@optionsClearHistory": { "description": "Delete all download history" }, - "optionsClearHistorySubtitle": "Remove all downloaded tracks from history", + "optionsClearHistorySubtitle": "从历史记录中清除所有已下载的曲目", "@optionsClearHistorySubtitle": { "description": "Subtitle for clear history" }, - "optionsDetailedLogging": "Detailed Logging", + "optionsDetailedLogging": "详细日志", "@optionsDetailedLogging": { "description": "Enable verbose logs for debugging" }, - "optionsDetailedLoggingOn": "Detailed logs are being recorded", + "optionsDetailedLoggingOn": "正在记录详细日志", "@optionsDetailedLoggingOn": { "description": "Status when logging enabled" }, - "optionsDetailedLoggingOff": "Enable for bug reports", + "optionsDetailedLoggingOff": "为错误报告启用", "@optionsDetailedLoggingOff": { "description": "Status when logging disabled" }, - "optionsSpotifyCredentials": "Spotify Credentials", + "optionsSpotifyCredentials": "Spotify 凭据", "@optionsSpotifyCredentials": { "description": "Spotify API credentials setting" }, - "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", + "optionsSpotifyCredentialsConfigured": "客户端 ID:{clientId}……", "@optionsSpotifyCredentialsConfigured": { "description": "Shows configured client ID preview", "placeholders": { @@ -276,27 +276,27 @@ } } }, - "optionsSpotifyCredentialsRequired": "Required - tap to configure", + "optionsSpotifyCredentialsRequired": "必填 - 点击配置", "@optionsSpotifyCredentialsRequired": { "description": "Prompt to set up credentials" }, - "optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com", + "optionsSpotifyWarning": "Spotify 需要您自己的 API 凭据。在 developer.spotify.com 免费获取", "@optionsSpotifyWarning": { "description": "Info about Spotify API requirement" }, - "optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", + "optionsSpotifyDeprecationWarning": "Spotify 搜索将在 2026 年 3 月 3 日因 Spotify API 更改而被废弃。请切换到 Deezer。", "@optionsSpotifyDeprecationWarning": { "description": "Warning about Spotify API deprecation" }, - "extensionsTitle": "Extensions", + "extensionsTitle": "扩展", "@extensionsTitle": { "description": "Extensions page title" }, - "extensionsDisabled": "Disabled", + "extensionsDisabled": "禁用", "@extensionsDisabled": { "description": "Extension status - inactive" }, - "extensionsVersion": "Version {version}", + "extensionsVersion": "版本 {version}", "@extensionsVersion": { "description": "Extension version display", "placeholders": { @@ -305,7 +305,7 @@ } } }, - "extensionsAuthor": "by {author}", + "extensionsAuthor": "来自 {author}", "@extensionsAuthor": { "description": "Extension author credit", "placeholders": { @@ -314,75 +314,75 @@ } } }, - "extensionsUninstall": "Uninstall", + "extensionsUninstall": "卸载", "@extensionsUninstall": { "description": "Uninstall extension button" }, - "storeTitle": "Extension Store", + "storeTitle": "扩展商店", "@storeTitle": { "description": "Store screen title" }, - "storeSearch": "Search extensions...", + "storeSearch": "搜索扩展……", "@storeSearch": { "description": "Store search placeholder" }, - "storeInstall": "Install", + "storeInstall": "安装", "@storeInstall": { "description": "Install extension button" }, - "storeInstalled": "Installed", + "storeInstalled": "已安装", "@storeInstalled": { "description": "Already installed badge" }, - "storeUpdate": "Update", + "storeUpdate": "更新", "@storeUpdate": { "description": "Update available button" }, - "aboutTitle": "About", + "aboutTitle": "关于", "@aboutTitle": { "description": "About page title" }, - "aboutContributors": "Contributors", + "aboutContributors": "贡献者", "@aboutContributors": { "description": "Section for contributors" }, - "aboutMobileDeveloper": "Mobile version developer", + "aboutMobileDeveloper": "移动版本开发者", "@aboutMobileDeveloper": { "description": "Role description for mobile dev" }, - "aboutOriginalCreator": "Creator of the original SpotiFLAC", + "aboutOriginalCreator": "原 SpotiLDAC 创建者", "@aboutOriginalCreator": { "description": "Role description for original creator" }, - "aboutLogoArtist": "The talented artist who created our beautiful app logo!", + "aboutLogoArtist": "有才华的艺术家创建了我们美丽的应用图标!", "@aboutLogoArtist": { "description": "Role description for logo artist" }, - "aboutTranslators": "Translators", + "aboutTranslators": "译者", "@aboutTranslators": { "description": "Section for translators" }, - "aboutSpecialThanks": "Special Thanks", + "aboutSpecialThanks": "特别鸣谢", "@aboutSpecialThanks": { "description": "Section for special thanks" }, - "aboutLinks": "Links", + "aboutLinks": "相关链接", "@aboutLinks": { "description": "Section for external links" }, - "aboutMobileSource": "Mobile source code", + "aboutMobileSource": "移动版本源代码", "@aboutMobileSource": { "description": "Link to mobile GitHub repo" }, - "aboutPCSource": "PC source code", + "aboutPCSource": "桌面版本源代码", "@aboutPCSource": { "description": "Link to PC GitHub repo" }, - "aboutReportIssue": "Report an issue", + "aboutReportIssue": "报告一个问题", "@aboutReportIssue": { "description": "Link to report bugs" }, - "aboutReportIssueSubtitle": "Report any problems you encounter", + "aboutReportIssueSubtitle": "报告您遇到的任何问题", "@aboutReportIssueSubtitle": { "description": "Subtitle for report issue" }, @@ -603,23 +603,23 @@ "@setupNotificationGranted": { "description": "Success message for notification permission" }, - "setupNotificationEnable": "Enable Notifications", + "setupNotificationEnable": "启用通知", "@setupNotificationEnable": { "description": "Button to enable notifications" }, - "setupFolderChoose": "Choose Download Folder", + "setupFolderChoose": "选择下载文件夹", "@setupFolderChoose": { "description": "Button to choose folder" }, - "setupFolderDescription": "Select a folder where your downloaded music will be saved.", + "setupFolderDescription": "选择保存您下载的音乐的文件夹。", "@setupFolderDescription": { "description": "Explanation for folder selection" }, - "setupSelectFolder": "Select Folder", + "setupSelectFolder": "选择文件夹", "@setupSelectFolder": { "description": "Button to select folder" }, - "setupEnableNotifications": "Enable Notifications", + "setupEnableNotifications": "启用通知", "@setupEnableNotifications": { "description": "Button to enable notifications" }, @@ -889,11 +889,11 @@ "@errorRateLimited": { "description": "Error title - too many requests" }, - "errorRateLimitedMessage": "Too many requests. Please wait a moment before searching again.", + "errorRateLimitedMessage": "请求过多。请等一会再搜索。", "@errorRateLimitedMessage": { "description": "Error message - rate limit explanation" }, - "errorNoTracksFound": "No tracks found", + "errorNoTracksFound": "未找到曲目", "@errorNoTracksFound": { "description": "Error - search returned no results" }, From d00a84f1b934abc32d3ce56fa8b9367abda02897 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:02:56 +0700 Subject: [PATCH 46/46] New translations app_en.arb (Indonesian) --- lib/l10n/arb/app_id.arb | 116 ++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index fe7591a2..970b6d82 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -450,7 +450,7 @@ "@aboutSpotiSaverDesc": { "description": "Credit for SpotiSaver API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.", + "aboutAppDescription": "Unduh lagu-lagu Spotify dalam kualitas lossless dari Tidal dan Qobuz.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -897,15 +897,15 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorUrlNotRecognized": "Link not recognized", + "errorUrlNotRecognized": "Tautan tidak dikenali", "@errorUrlNotRecognized": { "description": "Error title - URL not handled by any extension or service" }, - "errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.", + "errorUrlNotRecognizedMessage": "Tautan ini tidak didukung. Pastikan URL sudah benar dan ekstensi yang kompatibel telah terpasang.", "@errorUrlNotRecognizedMessage": { "description": "Error message - URL not recognized explanation" }, - "errorUrlFetchFailed": "Failed to load content from this link. Please try again.", + "errorUrlFetchFailed": "Konten dari tautan ini gagal dimuat. Silakan coba lagi.", "@errorUrlFetchFailed": { "description": "Error message - generic URL fetch failure" }, @@ -1003,11 +1003,11 @@ "@filenameFormat": { "description": "Setting title - filename pattern" }, - "filenameShowAdvancedTags": "Show advanced tags", + "filenameShowAdvancedTags": "Tampilkan tag lanjutan", "@filenameShowAdvancedTags": { "description": "Toggle label for showing advanced filename tags" }, - "filenameShowAdvancedTagsDescription": "Enable formatted tags for track padding and date patterns", + "filenameShowAdvancedTagsDescription": "Aktifkan tag yang diformat untuk padding trek dan pola tanggal", "@filenameShowAdvancedTagsDescription": { "description": "Description for advanced filename tag toggle" }, @@ -1015,11 +1015,11 @@ "@folderOrganizationNone": { "description": "Folder option - flat structure" }, - "folderOrganizationByPlaylist": "By Playlist", + "folderOrganizationByPlaylist": "Berdasarkan Daftar Putar", "@folderOrganizationByPlaylist": { "description": "Folder option - playlist folders" }, - "folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist", + "folderOrganizationByPlaylistSubtitle": "Setiap daftar putar memerlukan folder terpisah", "@folderOrganizationByPlaylistSubtitle": { "description": "Subtitle for playlist folder option" }, @@ -1217,7 +1217,7 @@ "@credentialsDescription": { "description": "Credentials dialog explanation" }, - "credentialsClientId": "Client ID", + "credentialsClientId": "ID Klien", "@credentialsClientId": { "description": "Client ID field label - DO NOT TRANSLATE" }, @@ -1225,7 +1225,7 @@ "@credentialsClientIdHint": { "description": "Client ID placeholder" }, - "credentialsClientSecret": "Client Secret", + "credentialsClientSecret": "Rahasia Klien", "@credentialsClientSecret": { "description": "Client Secret field label - DO NOT TRANSLATE" }, @@ -1237,7 +1237,7 @@ "@channelStable": { "description": "Update channel - stable releases" }, - "channelPreview": "Preview", + "channelPreview": "Pratinjau", "@channelPreview": { "description": "Update channel - beta/preview releases" }, @@ -1277,39 +1277,39 @@ "@sectionFileSettings": { "description": "Settings section header" }, - "sectionLyrics": "Lyrics", + "sectionLyrics": "Lirik", "@sectionLyrics": { "description": "Settings section header" }, - "lyricsMode": "Lyrics Mode", + "lyricsMode": "Mode Lirik", "@lyricsMode": { "description": "Setting - how to save lyrics" }, - "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "lyricsModeDescription": "Pilih cara lirik disimpan bersama unduhan Anda", "@lyricsModeDescription": { "description": "Lyrics mode picker description" }, - "lyricsModeEmbed": "Embed in file", + "lyricsModeEmbed": "Sematkan dalam file", "@lyricsModeEmbed": { "description": "Lyrics mode option - embed in audio file" }, - "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "lyricsModeEmbedSubtitle": "Lirik tersimpan di dalam metadata FLAC", "@lyricsModeEmbedSubtitle": { "description": "Subtitle for embed option" }, - "lyricsModeExternal": "External .lrc file", + "lyricsModeExternal": "File .lrc eksternal", "@lyricsModeExternal": { "description": "Lyrics mode option - separate LRC file" }, - "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "lyricsModeExternalSubtitle": "File .lrc terpisah untuk pemutar musik seperti Samsung Music", "@lyricsModeExternalSubtitle": { "description": "Subtitle for external option" }, - "lyricsModeBoth": "Both", + "lyricsModeBoth": "Keduanya", "@lyricsModeBoth": { "description": "Lyrics mode option - embed and external" }, - "lyricsModeBothSubtitle": "Embed and save .lrc file", + "lyricsModeBothSubtitle": "Sematkan dan simpan file .lrc", "@lyricsModeBothSubtitle": { "description": "Subtitle for both option" }, @@ -1455,11 +1455,11 @@ "@trackGenre": { "description": "Metadata label - music genre" }, - "trackLabel": "Label", + "trackLabel": "Lebel", "@trackLabel": { "description": "Metadata label - record label" }, - "trackCopyright": "Copyright", + "trackCopyright": "Hak cipta", "@trackCopyright": { "description": "Metadata label - copyright information" }, @@ -1483,15 +1483,15 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, - "trackEmbedLyrics": "Embed Lyrics", + "trackEmbedLyrics": "Sematkan Lirik", "@trackEmbedLyrics": { "description": "Action - embed lyrics into audio file" }, - "trackLyricsEmbedded": "Lyrics embedded successfully", + "trackLyricsEmbedded": "Lirik berhasil disematkan", "@trackLyricsEmbedded": { "description": "Snackbar - lyrics saved to file" }, - "trackInstrumental": "Instrumental track", + "trackInstrumental": "Lagu instrumental", "@trackInstrumental": { "description": "Message when track is instrumental (no lyrics)" }, @@ -1570,7 +1570,7 @@ "@storeClearFilters": { "description": "Button to clear all filters" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "Bawaan (Deezer/Spotify)", "@extensionDefaultProvider": { "description": "Default search provider option" }, @@ -1586,7 +1586,7 @@ "@extensionId": { "description": "Extension detail - unique ID" }, - "extensionError": "Error", + "extensionError": "Terjadi kesalahan", "@extensionError": { "description": "Extension detail - error message" }, @@ -1773,15 +1773,15 @@ "@qualityNote": { "description": "Note about quality availability" }, - "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", + "youtubeQualityNote": "YouTube hanya menyediakan audio terkompresi (lossy). Bukan bagian dari fallback lossless.", "@youtubeQualityNote": { "description": "Note for YouTube service explaining lossy-only quality" }, - "youtubeOpusBitrateTitle": "YouTube Opus Bitrate", + "youtubeOpusBitrateTitle": "Bitrate YouTube Opus", "@youtubeOpusBitrateTitle": { "description": "Title for YouTube Opus bitrate setting" }, - "youtubeMp3BitrateTitle": "YouTube MP3 Bitrate", + "youtubeMp3BitrateTitle": "Kecepatan Bit MP3 YouTube", "@youtubeMp3BitrateTitle": { "description": "Title for YouTube MP3 bitrate setting" }, @@ -1801,19 +1801,19 @@ "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, - "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", + "downloadUseAlbumArtistForFolders": "Gunakan Artis Album untuk folder", "@downloadUseAlbumArtistForFolders": { "description": "Setting - choose whether artist folders use Album Artist or Track Artist" }, - "downloadUsePrimaryArtistOnly": "Primary artist only for folders", + "downloadUsePrimaryArtistOnly": "Hanya artis utama untuk folder", "@downloadUsePrimaryArtistOnly": { "description": "Setting - strip featured artists from folder name" }, - "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", + "downloadUsePrimaryArtistOnlyEnabled": "Artis unggulan dihapus dari nama folder (misalnya Justin Bieber, Quavo → Justin Bieber)", "@downloadUsePrimaryArtistOnlyEnabled": { "description": "Subtitle when primary artist only is enabled" }, - "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", + "downloadUsePrimaryArtistOnlyDisabled": "Nama lengkap artis digunakan untuk nama folder", "@downloadUsePrimaryArtistOnlyDisabled": { "description": "Subtitle when primary artist only is disabled" }, @@ -1841,27 +1841,27 @@ "@queueClearAllMessage": { "description": "Clear queue confirmation" }, - "settingsAutoExportFailed": "Auto-export failed downloads", + "settingsAutoExportFailed": "Unduhan yang gagal diekspor otomatis", "@settingsAutoExportFailed": { "description": "Setting toggle for auto-export" }, - "settingsAutoExportFailedSubtitle": "Save failed downloads to TXT file automatically", + "settingsAutoExportFailedSubtitle": "Simpan unduhan yang gagal ke file TXT secara otomatis", "@settingsAutoExportFailedSubtitle": { "description": "Subtitle for auto-export setting" }, - "settingsDownloadNetwork": "Download Network", + "settingsDownloadNetwork": "Jaringan Unduhan", "@settingsDownloadNetwork": { "description": "Setting for network type preference" }, - "settingsDownloadNetworkAny": "WiFi + Mobile Data", + "settingsDownloadNetworkAny": "WiFi + Data Seluler", "@settingsDownloadNetworkAny": { "description": "Network option - use any connection" }, - "settingsDownloadNetworkWifiOnly": "WiFi Only", + "settingsDownloadNetworkWifiOnly": "Hanya WiFi", "@settingsDownloadNetworkWifiOnly": { "description": "Network option - only use WiFi" }, - "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", + "settingsDownloadNetworkSubtitle": "Pilih jaringan mana yang akan digunakan untuk mengunduh. Jika diatur ke Hanya WiFi, unduhan akan berhenti sementara dan menggunakan data seluler.", "@settingsDownloadNetworkSubtitle": { "description": "Subtitle explaining network preference" }, @@ -1897,11 +1897,11 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "albumFolderArtistAlbumSingles": "Artis / Album + Singel", "@albumFolderArtistAlbumSingles": { "description": "Album folder option with singles inside artist" }, - "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "albumFolderArtistAlbumSinglesSubtitle": "Artis/Album/ dan Artis/Single/", "@albumFolderArtistAlbumSinglesSubtitle": { "description": "Folder structure example" }, @@ -1970,19 +1970,19 @@ "@recentTypeSong": { "description": "Recent access item type - song/track" }, - "recentTypePlaylist": "Playlist", + "recentTypePlaylist": "Daftar putar", "@recentTypePlaylist": { "description": "Recent access item type - playlist" }, - "recentEmpty": "No recent items yet", + "recentEmpty": "Belum ada item terbaru", "@recentEmpty": { "description": "Empty state text for recent access list" }, - "recentShowAllDownloads": "Show All Downloads", + "recentShowAllDownloads": "Tampilkan Semua Unduhan", "@recentShowAllDownloads": { "description": "Button label to unhide hidden downloads in recent access" }, - "recentPlaylistInfo": "Playlist: {name}", + "recentPlaylistInfo": "Daftar Putar: {name}", "@recentPlaylistInfo": { "description": "Snackbar message when tapping playlist in recent access", "placeholders": { @@ -1992,7 +1992,7 @@ } } }, - "discographyDownload": "Download Discography", + "discographyDownload": "Unduh Diskografi", "@discographyDownload": { "description": "Button - download artist discography" }, @@ -2391,47 +2391,47 @@ } } }, - "tutorialWelcomeTitle": "Welcome to SpotiFLAC!", + "tutorialWelcomeTitle": "Selamat Datang di SpotiFLAC!", "@tutorialWelcomeTitle": { "description": "Tutorial welcome page title" }, - "tutorialWelcomeDesc": "Let's learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.", + "tutorialWelcomeDesc": "Mari kita pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.", "@tutorialWelcomeDesc": { "description": "Tutorial welcome page description" }, - "tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL", + "tutorialWelcomeTip1": "Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung", "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, - "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer", + "tutorialWelcomeTip2": "Dapatkan audio berkualitas FLAC dari Tidal, Qobuz, atau Deezer", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, - "tutorialWelcomeTip3": "Automatic metadata, cover art, and lyrics embedding", + "tutorialWelcomeTip3": "Penyematan metadata, sampul album, dan lirik secara otomatis", "@tutorialWelcomeTip3": { "description": "Tutorial welcome tip 3" }, - "tutorialSearchTitle": "Finding Music", + "tutorialSearchTitle": "Menemukan Musik", "@tutorialSearchTitle": { "description": "Tutorial search page title" }, - "tutorialSearchDesc": "There are two easy ways to find music you want to download.", + "tutorialSearchDesc": "Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.", "@tutorialSearchDesc": { "description": "Tutorial search page description" }, - "tutorialDownloadTitle": "Downloading Music", + "tutorialDownloadTitle": "Mengunduh Musik", "@tutorialDownloadTitle": { "description": "Tutorial download page title" }, - "tutorialDownloadDesc": "Downloading music is simple and fast. Here's how it works.", + "tutorialDownloadDesc": "Mengunduh musik itu mudah dan cepat. Begini cara kerjanya.", "@tutorialDownloadDesc": { "description": "Tutorial download page description" }, - "tutorialLibraryTitle": "Your Library", + "tutorialLibraryTitle": "Perpustakaan Anda", "@tutorialLibraryTitle": { "description": "Tutorial library page title" }, - "tutorialLibraryDesc": "All your downloaded music is organized in the Library tab.", + "tutorialLibraryDesc": "Semua musik yang Anda unduh tersusun rapi di tab Perpustakaan.", "@tutorialLibraryDesc": { "description": "Tutorial library page description" },