mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-27 13:22:49 +02:00
fix(ui): update tutorial copy and library play button
This commit is contained in:
@@ -961,7 +961,7 @@ abstract class AppLocalizations {
|
||||
/// App tagline in setup
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Download Spotify tracks in FLAC'**
|
||||
/// **'Download music in lossless and Hi-Res quality'**
|
||||
String get setupDownloadInFlac;
|
||||
|
||||
/// Success message for storage permission
|
||||
@@ -3799,25 +3799,25 @@ abstract class AppLocalizations {
|
||||
/// Tutorial welcome page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.'**
|
||||
/// **'Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.'**
|
||||
String get tutorialWelcomeDesc;
|
||||
|
||||
/// Tutorial welcome tip 1
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Search music or paste a link from any source your installed extensions support'**
|
||||
/// **'Search with an installed extension or paste a supported music link'**
|
||||
String get tutorialWelcomeTip1;
|
||||
|
||||
/// Tutorial welcome tip 2
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Get FLAC quality audio from installed download extensions'**
|
||||
/// **'Choose from the audio qualities offered by your download provider'**
|
||||
String get tutorialWelcomeTip2;
|
||||
|
||||
/// Tutorial welcome tip 3
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Automatic metadata, cover art, and lyrics embedding'**
|
||||
/// **'Embed metadata, cover art, lyrics, and release information automatically'**
|
||||
String get tutorialWelcomeTip3;
|
||||
|
||||
/// Tutorial search page title
|
||||
@@ -3829,7 +3829,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial search page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'There are two easy ways to find music you want to download.'**
|
||||
/// **'Search with your selected extension or paste a supported music link.'**
|
||||
String get tutorialSearchDesc;
|
||||
|
||||
/// Tutorial download page title
|
||||
@@ -3841,7 +3841,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial download page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Downloading music is simple and fast. Here\'s how it works.'**
|
||||
/// **'Pick an available quality, start the download, and follow its progress in the queue.'**
|
||||
String get tutorialDownloadDesc;
|
||||
|
||||
/// Tutorial library page title
|
||||
@@ -3853,25 +3853,25 @@ abstract class AppLocalizations {
|
||||
/// Tutorial library page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'All your downloaded music is organized in the Library tab.'**
|
||||
/// **'Downloaded and locally scanned music is organized in your Library.'**
|
||||
String get tutorialLibraryDesc;
|
||||
|
||||
/// Tutorial library tip 1
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View download progress and queue in the Library tab'**
|
||||
/// **'Manage active, pending, and completed downloads from the Library queue'**
|
||||
String get tutorialLibraryTip1;
|
||||
|
||||
/// Tutorial library tip 2
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap any track to play it with your music player'**
|
||||
/// **'Tap a track to play it with the built-in player'**
|
||||
String get tutorialLibraryTip2;
|
||||
|
||||
/// Tutorial library tip 3
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Switch between list and grid view for better browsing'**
|
||||
/// **'Browse tracks, albums, and playlists in list or grid views'**
|
||||
String get tutorialLibraryTip3;
|
||||
|
||||
/// Tutorial extensions page title
|
||||
@@ -3883,7 +3883,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial extensions page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Extend the app\'s capabilities with community extensions.'**
|
||||
/// **'Extensions add search, download, metadata, lyrics, and other integrations.'**
|
||||
String get tutorialExtensionsDesc;
|
||||
|
||||
/// Tutorial extensions tip 1
|
||||
@@ -3895,13 +3895,13 @@ abstract class AppLocalizations {
|
||||
/// Tutorial extensions tip 2
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add new download providers or search sources'**
|
||||
/// **'Choose providers for search, downloads, metadata, and fallbacks'**
|
||||
String get tutorialExtensionsTip2;
|
||||
|
||||
/// Tutorial extensions tip 3
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Get lyrics, enhanced metadata, and more features'**
|
||||
/// **'Connect accounts when required and keep extensions up to date'**
|
||||
String get tutorialExtensionsTip3;
|
||||
|
||||
/// Tutorial settings page title
|
||||
@@ -3913,7 +3913,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial settings page description
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Personalize the app in Settings to match your preferences.'**
|
||||
/// **'Fine-tune downloads, playback, Library behavior, appearance, and storage.'**
|
||||
String get tutorialSettingsDesc;
|
||||
|
||||
/// Tutorial settings tip 1
|
||||
@@ -3925,7 +3925,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial settings tip 2
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Set default audio quality and format preferences'**
|
||||
/// **'Set quality, concurrency, filenames, and conversion preferences'**
|
||||
String get tutorialSettingsTip2;
|
||||
|
||||
/// Tutorial settings tip 3
|
||||
@@ -3937,7 +3937,7 @@ abstract class AppLocalizations {
|
||||
/// Tutorial completion message
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You\'re all set! Start downloading your favorite music now.'**
|
||||
/// **'You\'re ready. Select your extensions, then search or paste a supported link.'**
|
||||
String get tutorialReadyMessage;
|
||||
|
||||
/// Button to force a complete rescan of library
|
||||
|
||||
@@ -479,7 +479,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
'iCloud Drive wird nicht unterstützt. Bitte verwende den \"Dokumente\" Ordner.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Spotify Titel in FLAC herunterladen';
|
||||
String get setupDownloadInFlac =>
|
||||
'Musik in verlustfreier und Hi-Res-Qualität herunterladen';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Speicherberechtigung erlaubt!';
|
||||
@@ -2142,7 +2143,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Willkommen bei SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Willkommen bei SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2150,7 +2151,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Lade Musik von Spotify, Deezer herunter oder jeden unterstützten Link einfügen';
|
||||
'Mit einer installierten Erweiterung suchen oder einen unterstützten Link einfügen';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -472,7 +472,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
'iCloud Drive is not supported. Please use the app Documents folder.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Download Spotify tracks in FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Download music in lossless and Hi-Res quality';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Storage Permission Granted!';
|
||||
@@ -2120,59 +2121,59 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.';
|
||||
'Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Search music or paste a link from any source your installed extensions support';
|
||||
'Search with an installed extension or paste a supported music link';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
'Get FLAC quality audio from installed download extensions';
|
||||
'Choose from the audio qualities offered by your download provider';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip3 =>
|
||||
'Automatic metadata, cover art, and lyrics embedding';
|
||||
'Embed metadata, cover art, lyrics, and release information automatically';
|
||||
|
||||
@override
|
||||
String get tutorialSearchTitle => 'Finding Music';
|
||||
|
||||
@override
|
||||
String get tutorialSearchDesc =>
|
||||
'There are two easy ways to find music you want to download.';
|
||||
'Search with your selected extension or paste a supported music link.';
|
||||
|
||||
@override
|
||||
String get tutorialDownloadTitle => 'Downloading Music';
|
||||
|
||||
@override
|
||||
String get tutorialDownloadDesc =>
|
||||
'Downloading music is simple and fast. Here\'s how it works.';
|
||||
'Pick an available quality, start the download, and follow its progress in the queue.';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTitle => 'Your Library';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryDesc =>
|
||||
'All your downloaded music is organized in the Library tab.';
|
||||
'Downloaded and locally scanned music is organized in your Library.';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip1 =>
|
||||
'View download progress and queue in the Library tab';
|
||||
'Manage active, pending, and completed downloads from the Library queue';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip2 =>
|
||||
'Tap any track to play it with your music player';
|
||||
'Tap a track to play it with the built-in player';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip3 =>
|
||||
'Switch between list and grid view for better browsing';
|
||||
'Browse tracks, albums, and playlists in list or grid views';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTitle => 'Extensions';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsDesc =>
|
||||
'Extend the app\'s capabilities with community extensions.';
|
||||
'Extensions add search, download, metadata, lyrics, and other integrations.';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip1 =>
|
||||
@@ -2180,18 +2181,18 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip2 =>
|
||||
'Add new download providers or search sources';
|
||||
'Choose providers for search, downloads, metadata, and fallbacks';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip3 =>
|
||||
'Get lyrics, enhanced metadata, and more features';
|
||||
'Connect accounts when required and keep extensions up to date';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTitle => 'Customize Your Experience';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsDesc =>
|
||||
'Personalize the app in Settings to match your preferences.';
|
||||
'Fine-tune downloads, playback, Library behavior, appearance, and storage.';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip1 =>
|
||||
@@ -2199,14 +2200,14 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip2 =>
|
||||
'Set default audio quality and format preferences';
|
||||
'Set quality, concurrency, filenames, and conversion preferences';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip3 => 'Customize app theme and appearance';
|
||||
|
||||
@override
|
||||
String get tutorialReadyMessage =>
|
||||
'You\'re all set! Start downloading your favorite music now.';
|
||||
'You\'re ready. Select your extensions, then search or paste a supported link.';
|
||||
|
||||
@override
|
||||
String get libraryForceFullScan => 'Force Full Scan';
|
||||
|
||||
@@ -472,7 +472,8 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
'iCloud Drive is not supported. Please use the app Documents folder.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Download Spotify tracks in FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Descarga música con calidad sin pérdida y Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Storage Permission Granted!';
|
||||
@@ -2116,7 +2117,8 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle =>
|
||||
'¡Te damos la bienvenida a SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2124,7 +2126,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Download music from Spotify, Deezer, or paste any supported URL';
|
||||
'Busca con una extensión instalada o pega un enlace compatible';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
@@ -5418,7 +5420,8 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
'iCloud Drive no es compatible. Utilice la carpeta Documentos de la aplicación.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Descargar pistas de Spotify en FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Descarga música con calidad sin pérdida y Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => '¡Permiso de almacenamiento concedido!';
|
||||
@@ -6997,7 +7000,8 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => '¡Bienvenido a SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle =>
|
||||
'¡Te damos la bienvenida a SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -7005,7 +7009,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Descarga música de Spotify, Deezer, o pega cualquier URL soportada';
|
||||
'Busca con una extensión instalada o pega un enlace compatible';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -487,7 +487,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac =>
|
||||
'Télécharger des morceaux Spotify au format FLAC';
|
||||
'Téléchargez de la musique en qualité sans perte et Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Autorisation de stockage accordée !';
|
||||
@@ -2170,7 +2170,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Bienvenue sur SpotiFLAC !';
|
||||
String get tutorialWelcomeTitle => 'Bienvenue dans SpotiFLAC Mobile !';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2178,7 +2178,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Téléchargez de la musique depuis Spotify ou Deezer, ou collez n\'importe quelle URL prise en charge';
|
||||
'Recherchez avec une extension installée ou collez un lien compatible';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -474,7 +474,8 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
'iCloud Drive tidak didukung. Silakan gunakan folder Dokumen di aplikasi.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Unduh lagu Spotify dalam format FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Unduh musik dalam kualitas lossless dan Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Izin Penyimpanan Diberikan!';
|
||||
@@ -2125,97 +2126,97 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Selamat Datang di SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Selamat Datang di SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
'Mari kita pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.';
|
||||
'Pelajari cara menemukan musik dengan extension, memilih kualitas, dan mengelola unduhan di SpotiFLAC Mobile.';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung';
|
||||
'Cari dengan extension terpasang atau tempel tautan musik yang didukung';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
'Get FLAC quality audio from installed download extensions';
|
||||
'Pilih kualitas audio yang disediakan oleh provider unduhan';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip3 =>
|
||||
'Penyematan metadata, sampul album, dan lirik secara otomatis';
|
||||
'Sematkan metadata, sampul, lirik, dan informasi rilisan secara otomatis';
|
||||
|
||||
@override
|
||||
String get tutorialSearchTitle => 'Menemukan Musik';
|
||||
|
||||
@override
|
||||
String get tutorialSearchDesc =>
|
||||
'Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.';
|
||||
'Cari dengan extension pilihan Anda atau tempel tautan musik yang didukung.';
|
||||
|
||||
@override
|
||||
String get tutorialDownloadTitle => 'Mengunduh Musik';
|
||||
|
||||
@override
|
||||
String get tutorialDownloadDesc =>
|
||||
'Mengunduh musik itu mudah dan cepat. Begini cara kerjanya.';
|
||||
'Pilih kualitas yang tersedia, mulai unduhan, lalu pantau progresnya dalam antrean.';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTitle => 'Perpustakaan Anda';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryDesc =>
|
||||
'Semua musik yang Anda unduh tersusun rapi di tab Perpustakaan.';
|
||||
'Musik yang diunduh dan dipindai dari perangkat tersusun rapi di Perpustakaan.';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip1 =>
|
||||
'View download progress and queue in the Library tab';
|
||||
'Kelola unduhan aktif, tertunda, dan selesai dari antrean Perpustakaan';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip2 =>
|
||||
'Tap any track to play it with your music player';
|
||||
'Ketuk lagu untuk memutarnya dengan pemutar bawaan';
|
||||
|
||||
@override
|
||||
String get tutorialLibraryTip3 =>
|
||||
'Switch between list and grid view for better browsing';
|
||||
'Telusuri lagu, album, dan playlist dalam tampilan daftar atau grid';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTitle => 'Extensions';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsDesc =>
|
||||
'Extend the app\'s capabilities with community extensions.';
|
||||
'Extension menambahkan pencarian, unduhan, metadata, lirik, dan integrasi lainnya.';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip1 =>
|
||||
'Browse the Repo tab to discover useful extensions';
|
||||
'Telusuri tab Repo untuk menemukan extension yang berguna';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip2 =>
|
||||
'Add new download providers or search sources';
|
||||
'Pilih provider untuk pencarian, unduhan, metadata, dan fallback';
|
||||
|
||||
@override
|
||||
String get tutorialExtensionsTip3 =>
|
||||
'Get lyrics, enhanced metadata, and more features';
|
||||
'Hubungkan akun jika diperlukan dan selalu perbarui extension';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTitle => 'Customize Your Experience';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsDesc =>
|
||||
'Personalize the app in Settings to match your preferences.';
|
||||
'Sesuaikan unduhan, pemutaran, perilaku Perpustakaan, tampilan, dan penyimpanan.';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip1 =>
|
||||
'Change download location and folder organization';
|
||||
'Ubah lokasi unduhan dan pengaturan folder';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip2 =>
|
||||
'Set default audio quality and format preferences';
|
||||
'Atur kualitas, unduhan bersamaan, nama berkas, dan konversi';
|
||||
|
||||
@override
|
||||
String get tutorialSettingsTip3 => 'Customize app theme and appearance';
|
||||
String get tutorialSettingsTip3 => 'Sesuaikan tema dan tampilan aplikasi';
|
||||
|
||||
@override
|
||||
String get tutorialReadyMessage =>
|
||||
'You\'re all set! Start downloading your favorite music now.';
|
||||
'Semua siap. Pilih extension, lalu cari musik atau tempel tautan yang didukung.';
|
||||
|
||||
@override
|
||||
String get libraryForceFullScan => 'Force Full Scan';
|
||||
|
||||
@@ -469,7 +469,7 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
'iCloud Drive is not supported. Please use the app Documents folder.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Spotify のトラックを FLAC でダウンロード';
|
||||
String get setupDownloadInFlac => 'ロスレス/ハイレゾ音質で音楽をダウンロード';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'ストレージの権限が許可されました!';
|
||||
@@ -2105,15 +2105,14 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC へようこそ!';
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC Mobile へようこそ!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Download music from Spotify, Deezer, or paste any supported URL';
|
||||
String get tutorialWelcomeTip1 => 'インストール済みの拡張機能で検索するか、対応リンクを貼り付けます';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -458,7 +458,7 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
'iCloud Drive는 지원되지 않습니다. 앱의 문서 폴더를 사용해 주세요';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Spotify 음악을 FLAC 형식으로 다운로드하세요';
|
||||
String get setupDownloadInFlac => '무손실 및 Hi-Res 음질로 음악을 다운로드하세요';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => '저장소 접근 권한이 부여되었습니다!';
|
||||
@@ -2074,15 +2074,14 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC에 오신 것을 환영합니다!';
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC Mobile에 오신 것을 환영합니다!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
'좋아하는 음악을 무손실 음질로 다운로드하는 방법을 알아보겠습니다. 이 간단한 튜토리얼은 기본 사항을 보여줍니다';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Spotify, Deezer 또는 지원되는 URL에서 음악을 다운로드할 수 있습니다';
|
||||
String get tutorialWelcomeTip1 => '설치된 확장 프로그램으로 검색하거나 지원되는 링크를 붙여넣으세요';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -472,7 +472,8 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
'iCloud Drive is not supported. Please use the app Documents folder.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Download Spotify tracks in FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Baixe músicas com qualidade sem perdas e Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Storage Permission Granted!';
|
||||
@@ -2116,7 +2117,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Boas-vindas ao SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2124,7 +2125,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Download music from Spotify, Deezer, or paste any supported URL';
|
||||
'Pesquise com uma extensão instalada ou cole um link compatível';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
@@ -5418,7 +5419,8 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
'O iCloud Drive não é compatível. Use a pasta Documentos do aplicativo.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Baixar faixas do Spotify em FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Baixe músicas com qualidade sem perdas e Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Permissão de Armazenamento Concedida!';
|
||||
@@ -6986,7 +6988,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Boas-vindas ao SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -6994,7 +6996,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Download music from Spotify, Deezer, or paste any supported URL';
|
||||
'Pesquise com uma extensão instalada ou cole um link compatível';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -475,7 +475,8 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
'iCloud Drive не поддерживается. Пожалуйста, используйте папку Документы.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Скачать Spotify треки во FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Скачивайте музыку в качестве Lossless и Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Доступ к хранилищу предоставлен!';
|
||||
@@ -2144,7 +2145,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Добро пожаловать в SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Добро пожаловать в SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2152,7 +2153,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Скачивайте музыку из Spotify, Deezer, или вставьте любой поддерживаемый URL';
|
||||
'Ищите через установленное расширение или вставьте поддерживаемую ссылку';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -478,7 +478,8 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
'iCloud Drive desteklenmiyor. Lütfen uygulama Belgeler klasörünü kullanın.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Spotify şarkılarını FLAC olarak indirin';
|
||||
String get setupDownloadInFlac =>
|
||||
'Müziği kayıpsız ve Hi-Res kalitesinde indirin';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Depolama İzni Verildi!';
|
||||
@@ -2140,7 +2141,7 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC\'e hoş geldiniz!';
|
||||
String get tutorialWelcomeTitle => 'SpotiFLAC Mobile\'a hoş geldiniz!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2148,7 +2149,7 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Spotify, Deezer\'dan müzik indirin veya desteklenen herhangi bir URL\'yi yapıştırın';
|
||||
'Yüklü bir uzantıyla arama yapın veya desteklenen bir bağlantı yapıştırın';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -479,7 +479,8 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
'iCloud Drive не підтримується. Будь ласка, скористайтеся папкою «Документи» програми.';
|
||||
|
||||
@override
|
||||
String get setupDownloadInFlac => 'Завантажити треки Spotify у форматі FLAC';
|
||||
String get setupDownloadInFlac =>
|
||||
'Завантажуйте музику в якості Lossless та Hi-Res';
|
||||
|
||||
@override
|
||||
String get setupStorageGranted => 'Дозвіл на зберігання надано!';
|
||||
@@ -2147,7 +2148,7 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTitle => 'Ласкаво просимо до SpotiFLAC!';
|
||||
String get tutorialWelcomeTitle => 'Ласкаво просимо до SpotiFLAC Mobile!';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeDesc =>
|
||||
@@ -2155,7 +2156,7 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip1 =>
|
||||
'Завантажуйте музику зі Spotify, Deezer або вставляйте будь-яку підтримувану URL-адресу';
|
||||
'Шукайте за допомогою встановленого розширення або вставте підтримуване посилання';
|
||||
|
||||
@override
|
||||
String get tutorialWelcomeTip2 =>
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Spotify Titel in FLAC herunterladen",
|
||||
"setupDownloadInFlac": "Musik in verlustfreier und Hi-Res-Qualität herunterladen",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Willkommen bei SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Willkommen bei SpotiFLAC Mobile!",
|
||||
"a11ySelectAlbum": "Wähle Album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Lade Musik von Spotify, Deezer herunter oder jeden unterstützten Link einfügen",
|
||||
"tutorialWelcomeTip1": "Mit einer installierten Erweiterung suchen oder einen unterstützten Link einfügen",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
+17
-17
@@ -606,7 +606,7 @@
|
||||
"@setupIcloudNotSupported": {
|
||||
"description": "Error when user selects iCloud Drive on iOS"
|
||||
},
|
||||
"setupDownloadInFlac": "Download Spotify tracks in FLAC",
|
||||
"setupDownloadInFlac": "Download music in lossless and Hi-Res quality",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -2799,19 +2799,19 @@
|
||||
"@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": "Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.",
|
||||
"@tutorialWelcomeDesc": {
|
||||
"description": "Tutorial welcome page description"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||
"tutorialWelcomeTip1": "Search with an installed extension or paste a supported music link",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
"tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions",
|
||||
"tutorialWelcomeTip2": "Choose from the audio qualities offered by your download provider",
|
||||
"@tutorialWelcomeTip2": {
|
||||
"description": "Tutorial welcome tip 2"
|
||||
},
|
||||
"tutorialWelcomeTip3": "Automatic metadata, cover art, and lyrics embedding",
|
||||
"tutorialWelcomeTip3": "Embed metadata, cover art, lyrics, and release information automatically",
|
||||
"@tutorialWelcomeTip3": {
|
||||
"description": "Tutorial welcome tip 3"
|
||||
},
|
||||
@@ -2819,7 +2819,7 @@
|
||||
"@tutorialSearchTitle": {
|
||||
"description": "Tutorial search page title"
|
||||
},
|
||||
"tutorialSearchDesc": "There are two easy ways to find music you want to download.",
|
||||
"tutorialSearchDesc": "Search with your selected extension or paste a supported music link.",
|
||||
"@tutorialSearchDesc": {
|
||||
"description": "Tutorial search page description"
|
||||
},
|
||||
@@ -2827,7 +2827,7 @@
|
||||
"@tutorialDownloadTitle": {
|
||||
"description": "Tutorial download page title"
|
||||
},
|
||||
"tutorialDownloadDesc": "Downloading music is simple and fast. Here's how it works.",
|
||||
"tutorialDownloadDesc": "Pick an available quality, start the download, and follow its progress in the queue.",
|
||||
"@tutorialDownloadDesc": {
|
||||
"description": "Tutorial download page description"
|
||||
},
|
||||
@@ -2835,19 +2835,19 @@
|
||||
"@tutorialLibraryTitle": {
|
||||
"description": "Tutorial library page title"
|
||||
},
|
||||
"tutorialLibraryDesc": "All your downloaded music is organized in the Library tab.",
|
||||
"tutorialLibraryDesc": "Downloaded and locally scanned music is organized in your Library.",
|
||||
"@tutorialLibraryDesc": {
|
||||
"description": "Tutorial library page description"
|
||||
},
|
||||
"tutorialLibraryTip1": "View download progress and queue in the Library tab",
|
||||
"tutorialLibraryTip1": "Manage active, pending, and completed downloads from the Library queue",
|
||||
"@tutorialLibraryTip1": {
|
||||
"description": "Tutorial library tip 1"
|
||||
},
|
||||
"tutorialLibraryTip2": "Tap any track to play it with your music player",
|
||||
"tutorialLibraryTip2": "Tap a track to play it with the built-in player",
|
||||
"@tutorialLibraryTip2": {
|
||||
"description": "Tutorial library tip 2"
|
||||
},
|
||||
"tutorialLibraryTip3": "Switch between list and grid view for better browsing",
|
||||
"tutorialLibraryTip3": "Browse tracks, albums, and playlists in list or grid views",
|
||||
"@tutorialLibraryTip3": {
|
||||
"description": "Tutorial library tip 3"
|
||||
},
|
||||
@@ -2855,7 +2855,7 @@
|
||||
"@tutorialExtensionsTitle": {
|
||||
"description": "Tutorial extensions page title"
|
||||
},
|
||||
"tutorialExtensionsDesc": "Extend the app's capabilities with community extensions.",
|
||||
"tutorialExtensionsDesc": "Extensions add search, download, metadata, lyrics, and other integrations.",
|
||||
"@tutorialExtensionsDesc": {
|
||||
"description": "Tutorial extensions page description"
|
||||
},
|
||||
@@ -2863,11 +2863,11 @@
|
||||
"@tutorialExtensionsTip1": {
|
||||
"description": "Tutorial extensions tip 1"
|
||||
},
|
||||
"tutorialExtensionsTip2": "Add new download providers or search sources",
|
||||
"tutorialExtensionsTip2": "Choose providers for search, downloads, metadata, and fallbacks",
|
||||
"@tutorialExtensionsTip2": {
|
||||
"description": "Tutorial extensions tip 2"
|
||||
},
|
||||
"tutorialExtensionsTip3": "Get lyrics, enhanced metadata, and more features",
|
||||
"tutorialExtensionsTip3": "Connect accounts when required and keep extensions up to date",
|
||||
"@tutorialExtensionsTip3": {
|
||||
"description": "Tutorial extensions tip 3"
|
||||
},
|
||||
@@ -2875,7 +2875,7 @@
|
||||
"@tutorialSettingsTitle": {
|
||||
"description": "Tutorial settings page title"
|
||||
},
|
||||
"tutorialSettingsDesc": "Personalize the app in Settings to match your preferences.",
|
||||
"tutorialSettingsDesc": "Fine-tune downloads, playback, Library behavior, appearance, and storage.",
|
||||
"@tutorialSettingsDesc": {
|
||||
"description": "Tutorial settings page description"
|
||||
},
|
||||
@@ -2883,7 +2883,7 @@
|
||||
"@tutorialSettingsTip1": {
|
||||
"description": "Tutorial settings tip 1"
|
||||
},
|
||||
"tutorialSettingsTip2": "Set default audio quality and format preferences",
|
||||
"tutorialSettingsTip2": "Set quality, concurrency, filenames, and conversion preferences",
|
||||
"@tutorialSettingsTip2": {
|
||||
"description": "Tutorial settings tip 2"
|
||||
},
|
||||
@@ -2891,7 +2891,7 @@
|
||||
"@tutorialSettingsTip3": {
|
||||
"description": "Tutorial settings tip 3"
|
||||
},
|
||||
"tutorialReadyMessage": "You're all set! Start downloading your favorite music now.",
|
||||
"tutorialReadyMessage": "You're ready. Select your extensions, then search or paste a supported link.",
|
||||
"@tutorialReadyMessage": {
|
||||
"description": "Tutorial completion message"
|
||||
},
|
||||
|
||||
@@ -438,7 +438,7 @@
|
||||
"@setupIosEmptyFolderWarning": {
|
||||
"description": "iOS folder selection warning"
|
||||
},
|
||||
"setupDownloadInFlac": "Download Spotify tracks in FLAC",
|
||||
"setupDownloadInFlac": "Descarga música con calidad sin pérdida y Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -2514,7 +2514,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tutorialWelcomeTitle": "Welcome to SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "¡Te damos la bienvenida a SpotiFLAC Mobile!",
|
||||
"@tutorialWelcomeTitle": {
|
||||
"description": "Tutorial welcome page title"
|
||||
},
|
||||
@@ -2522,7 +2522,7 @@
|
||||
"@tutorialWelcomeDesc": {
|
||||
"description": "Tutorial welcome page description"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
||||
"tutorialWelcomeTip1": "Busca con una extensión instalada o pega un enlace compatible",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -606,7 +606,7 @@
|
||||
"@setupIcloudNotSupported": {
|
||||
"description": "Error when user selects iCloud Drive on iOS"
|
||||
},
|
||||
"setupDownloadInFlac": "Descargar pistas de Spotify en FLAC",
|
||||
"setupDownloadInFlac": "Descarga música con calidad sin pérdida y Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -2636,7 +2636,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tutorialWelcomeTitle": "¡Bienvenido a SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "¡Te damos la bienvenida a SpotiFLAC Mobile!",
|
||||
"@tutorialWelcomeTitle": {
|
||||
"description": "Tutorial welcome page title"
|
||||
},
|
||||
@@ -2644,7 +2644,7 @@
|
||||
"@tutorialWelcomeDesc": {
|
||||
"description": "Tutorial welcome page description"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Descarga música de Spotify, Deezer, o pega cualquier URL soportada",
|
||||
"tutorialWelcomeTip1": "Busca con una extensión instalada o pega un enlace compatible",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Télécharger des morceaux Spotify au format FLAC",
|
||||
"setupDownloadInFlac": "Téléchargez de la musique en qualité sans perte et Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Bienvenue sur SpotiFLAC !",
|
||||
"tutorialWelcomeTitle": "Bienvenue dans SpotiFLAC Mobile !",
|
||||
"a11ySelectAlbum": "Sélectionnez l'album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Téléchargez de la musique depuis Spotify ou Deezer, ou collez n'importe quelle URL prise en charge",
|
||||
"tutorialWelcomeTip1": "Recherchez avec une extension installée ou collez un lien compatible",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
+21
-21
@@ -382,7 +382,7 @@
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
},
|
||||
"tutorialExtensionsTip3": "Get lyrics, enhanced metadata, and more features",
|
||||
"tutorialExtensionsTip3": "Hubungkan akun jika diperlukan dan selalu perbarui extension",
|
||||
"@tutorialExtensionsTip3": {
|
||||
"description": "Tutorial extensions tip 3"
|
||||
},
|
||||
@@ -1456,7 +1456,7 @@
|
||||
"@replayGainBatchConfirmTitle": {
|
||||
"description": "Title of the batch ReplayGain confirmation dialog"
|
||||
},
|
||||
"tutorialExtensionsTip1": "Browse the Repo tab to discover useful extensions",
|
||||
"tutorialExtensionsTip1": "Telusuri tab Repo untuk menemukan extension yang berguna",
|
||||
"@tutorialExtensionsTip1": {
|
||||
"description": "Tutorial extensions tip 1"
|
||||
},
|
||||
@@ -1554,7 +1554,7 @@
|
||||
"@searchSortTitleZA": {
|
||||
"description": "Sort option - title descending"
|
||||
},
|
||||
"tutorialLibraryTip2": "Tap any track to play it with your music player",
|
||||
"tutorialLibraryTip2": "Ketuk lagu untuk memutarnya dengan pemutar bawaan",
|
||||
"@tutorialLibraryTip2": {
|
||||
"description": "Tutorial library tip 2"
|
||||
},
|
||||
@@ -1933,7 +1933,7 @@
|
||||
"@dialogClearHistoryTitle": {
|
||||
"description": "Dialog title - clear download history"
|
||||
},
|
||||
"tutorialSettingsTip1": "Change download location and folder organization",
|
||||
"tutorialSettingsTip1": "Ubah lokasi unduhan dan pengaturan folder",
|
||||
"@tutorialSettingsTip1": {
|
||||
"description": "Tutorial settings tip 1"
|
||||
},
|
||||
@@ -2294,7 +2294,7 @@
|
||||
"@nowPlayingNothingPlaying": {
|
||||
"description": "Empty state when no track is currently playing"
|
||||
},
|
||||
"tutorialDownloadDesc": "Mengunduh musik itu mudah dan cepat. Begini cara kerjanya.",
|
||||
"tutorialDownloadDesc": "Pilih kualitas yang tersedia, mulai unduhan, lalu pantau progresnya dalam antrean.",
|
||||
"@tutorialDownloadDesc": {
|
||||
"description": "Tutorial download page description"
|
||||
},
|
||||
@@ -2934,7 +2934,7 @@
|
||||
}
|
||||
},
|
||||
"dialogDisableHistoryTitle": "Turn off download history?",
|
||||
"tutorialWelcomeTip3": "Penyematan metadata, sampul album, dan lirik secara otomatis",
|
||||
"tutorialWelcomeTip3": "Sematkan metadata, sampul, lirik, dan informasi rilisan secara otomatis",
|
||||
"@tutorialWelcomeTip3": {
|
||||
"description": "Tutorial welcome tip 3"
|
||||
},
|
||||
@@ -3459,7 +3459,7 @@
|
||||
"@dialogDelete": {
|
||||
"description": "Dialog button - delete item"
|
||||
},
|
||||
"tutorialLibraryDesc": "Semua musik yang Anda unduh tersusun rapi di tab Perpustakaan.",
|
||||
"tutorialLibraryDesc": "Musik yang diunduh dan dipindai dari perangkat tersusun rapi di Perpustakaan.",
|
||||
"@tutorialLibraryDesc": {
|
||||
"description": "Tutorial library page description"
|
||||
},
|
||||
@@ -3573,7 +3573,7 @@
|
||||
},
|
||||
"libraryFilterMetadataMissingAlbumArtist": "Missing album artist",
|
||||
"audioAnalysisNoClipping": "No clipping",
|
||||
"tutorialSettingsDesc": "Personalize the app in Settings to match your preferences.",
|
||||
"tutorialSettingsDesc": "Sesuaikan unduhan, pemutaran, perilaku Perpustakaan, tampilan, dan penyimpanan.",
|
||||
"@tutorialSettingsDesc": {
|
||||
"description": "Tutorial settings page description"
|
||||
},
|
||||
@@ -3629,7 +3629,7 @@
|
||||
"@dialogClearAll": {
|
||||
"description": "Dialog title - clear all items"
|
||||
},
|
||||
"tutorialExtensionsDesc": "Extend the app's capabilities with community extensions.",
|
||||
"tutorialExtensionsDesc": "Extension menambahkan pencarian, unduhan, metadata, lirik, dan integrasi lainnya.",
|
||||
"@tutorialExtensionsDesc": {
|
||||
"description": "Tutorial extensions page description"
|
||||
},
|
||||
@@ -3773,7 +3773,7 @@
|
||||
"@editMetadataAutoFillFetch": {
|
||||
"description": "Button label to fetch online metadata and fill selected fields"
|
||||
},
|
||||
"tutorialSearchDesc": "Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.",
|
||||
"tutorialSearchDesc": "Cari dengan extension pilihan Anda atau tempel tautan musik yang didukung.",
|
||||
"@sectionService": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
@@ -4012,7 +4012,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Unduh lagu Spotify dalam format FLAC",
|
||||
"setupDownloadInFlac": "Unduh musik dalam kualitas lossless dan Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -4881,7 +4881,7 @@
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
},
|
||||
"tutorialSettingsTip3": "Customize app theme and appearance",
|
||||
"tutorialSettingsTip3": "Sesuaikan tema dan tampilan aplikasi",
|
||||
"setupAppDocumentsFolderSubtitle": "Direkomendasikan - dapat diakses via aplikasi Files",
|
||||
"a11yPlayTrackByArtist": "Play {trackName} by {artistName}",
|
||||
"@a11yPlayTrackByArtist": {
|
||||
@@ -5023,8 +5023,8 @@
|
||||
}
|
||||
},
|
||||
"setupStorageDescription": "SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.",
|
||||
"tutorialReadyMessage": "You're all set! Start downloading your favorite music now.",
|
||||
"tutorialLibraryTip3": "Switch between list and grid view for better browsing",
|
||||
"tutorialReadyMessage": "Semua siap. Pilih extension, lalu cari musik atau tempel tautan yang didukung.",
|
||||
"tutorialLibraryTip3": "Telusuri lagu, album, dan playlist dalam tampilan daftar atau grid",
|
||||
"selectionDeletePlaylistsCount": "Delete {count} {count, plural, =1{playlist} other{playlists}}",
|
||||
"appearanceThemeLight": "Terang",
|
||||
"queueEmptyHistorySubtitle": "Downloaded tracks will appear here",
|
||||
@@ -5184,11 +5184,11 @@
|
||||
"description": "Chip label for date field in auto-fill selector"
|
||||
},
|
||||
"downloadUsePrimaryArtistOnly": "Hanya artis utama untuk folder",
|
||||
"tutorialExtensionsTip2": "Add new download providers or search sources",
|
||||
"tutorialExtensionsTip2": "Pilih provider untuk pencarian, unduhan, metadata, dan fallback",
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Selamat Datang di SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Selamat Datang di SpotiFLAC Mobile!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5443,7 +5443,7 @@
|
||||
"actionSelectAll": "Pilih Semua",
|
||||
"settingsDownloadNetworkSubtitle": "Pilih jaringan mana yang akan digunakan untuk mengunduh. Jika diatur ke Hanya WiFi, unduhan akan berhenti sementara dan menggunakan data seluler.",
|
||||
"downloadFolderOrganization": "Organisasi Folder",
|
||||
"tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions",
|
||||
"tutorialWelcomeTip2": "Pilih kualitas audio yang disediakan oleh provider unduhan",
|
||||
"@tutorialWelcomeTip2": {
|
||||
"description": "Tutorial welcome tip 2"
|
||||
},
|
||||
@@ -5499,7 +5499,7 @@
|
||||
"description": "Subtitle when all files access is enabled"
|
||||
},
|
||||
"extensionsSearchProvider": "Provider Pencarian",
|
||||
"tutorialWelcomeDesc": "Mari kita pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.",
|
||||
"tutorialWelcomeDesc": "Pelajari cara menemukan musik dengan extension, memilih kualitas, dan mengelola unduhan di SpotiFLAC Mobile.",
|
||||
"selectionBatchConvertConfirmTitle": "Batch Convert",
|
||||
"extensionMetadataProvider": "Provider Metadata",
|
||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||
@@ -5507,7 +5507,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung",
|
||||
"tutorialWelcomeTip1": "Cari dengan extension terpasang atau tempel tautan musik yang didukung",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
@@ -5639,7 +5639,7 @@
|
||||
"description": "Snackbar - lyrics saved to file"
|
||||
},
|
||||
"editMetadataFieldDiscTotal": "Disc Total",
|
||||
"tutorialLibraryTip1": "View download progress and queue in the Library tab",
|
||||
"tutorialLibraryTip1": "Kelola unduhan aktif, tertunda, dan selesai dari antrean Perpustakaan",
|
||||
"playlistsCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||
"downloadCreatePlaylistSourceFolderDisabled": "All tracks saved directly to download folder",
|
||||
"@downloadFallbackExtensionsSubtitle": {
|
||||
@@ -5911,7 +5911,7 @@
|
||||
"extensionServiceStatus": "Service Status",
|
||||
"dateWeeksAgo": "{count} minggu lalu",
|
||||
"historyFilterSingles": "Single",
|
||||
"tutorialSettingsTip2": "Set default audio quality and format preferences",
|
||||
"tutorialSettingsTip2": "Atur kualitas, unduhan bersamaan, nama berkas, dan konversi",
|
||||
"trackLyricsSaved": "Lyrics saved to {fileName}",
|
||||
"cacheClearAllConfirmTitle": "Clear all cache?",
|
||||
"noTracksFoundForAlbum": "No tracks found for this album",
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Spotify のトラックを FLAC でダウンロード",
|
||||
"setupDownloadInFlac": "ロスレス/ハイレゾ音質で音楽をダウンロード",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "SpotiFLAC へようこそ!",
|
||||
"tutorialWelcomeTitle": "SpotiFLAC Mobile へようこそ!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
||||
"tutorialWelcomeTip1": "インストール済みの拡張機能で検索するか、対応リンクを貼り付けます",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -606,7 +606,7 @@
|
||||
"@setupIcloudNotSupported": {
|
||||
"description": "Error when user selects iCloud Drive on iOS"
|
||||
},
|
||||
"setupDownloadInFlac": "Spotify 음악을 FLAC 형식으로 다운로드하세요",
|
||||
"setupDownloadInFlac": "무손실 및 Hi-Res 음질로 음악을 다운로드하세요",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -2678,7 +2678,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tutorialWelcomeTitle": "SpotiFLAC에 오신 것을 환영합니다!",
|
||||
"tutorialWelcomeTitle": "SpotiFLAC Mobile에 오신 것을 환영합니다!",
|
||||
"@tutorialWelcomeTitle": {
|
||||
"description": "Tutorial welcome page title"
|
||||
},
|
||||
@@ -2686,7 +2686,7 @@
|
||||
"@tutorialWelcomeDesc": {
|
||||
"description": "Tutorial welcome page description"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Spotify, Deezer 또는 지원되는 URL에서 음악을 다운로드할 수 있습니다",
|
||||
"tutorialWelcomeTip1": "설치된 확장 프로그램으로 검색하거나 지원되는 링크를 붙여넣으세요",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -438,7 +438,7 @@
|
||||
"@setupIosEmptyFolderWarning": {
|
||||
"description": "iOS folder selection warning"
|
||||
},
|
||||
"setupDownloadInFlac": "Download Spotify tracks in FLAC",
|
||||
"setupDownloadInFlac": "Baixe músicas com qualidade sem perdas e Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -2514,7 +2514,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tutorialWelcomeTitle": "Welcome to SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Boas-vindas ao SpotiFLAC Mobile!",
|
||||
"@tutorialWelcomeTitle": {
|
||||
"description": "Tutorial welcome page title"
|
||||
},
|
||||
@@ -2522,7 +2522,7 @@
|
||||
"@tutorialWelcomeDesc": {
|
||||
"description": "Tutorial welcome page description"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
||||
"tutorialWelcomeTip1": "Pesquise com uma extensão instalada ou cole um link compatível",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Baixar faixas do Spotify em FLAC",
|
||||
"setupDownloadInFlac": "Baixe músicas com qualidade sem perdas e Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Welcome to SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Boas-vindas ao SpotiFLAC Mobile!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
||||
"tutorialWelcomeTip1": "Pesquise com uma extensão instalada ou cole um link compatível",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Скачать Spotify треки во FLAC",
|
||||
"setupDownloadInFlac": "Скачивайте музыку в качестве Lossless и Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Добро пожаловать в SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Добро пожаловать в SpotiFLAC Mobile!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Скачивайте музыку из Spotify, Deezer, или вставьте любой поддерживаемый URL",
|
||||
"tutorialWelcomeTip1": "Ищите через установленное расширение или вставьте поддерживаемую ссылку",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Spotify şarkılarını FLAC olarak indirin",
|
||||
"setupDownloadInFlac": "Müziği kayıpsız ve Hi-Res kalitesinde indirin",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "SpotiFLAC'e hoş geldiniz!",
|
||||
"tutorialWelcomeTitle": "SpotiFLAC Mobile'a hoş geldiniz!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Spotify, Deezer'dan müzik indirin veya desteklenen herhangi bir URL'yi yapıştırın",
|
||||
"tutorialWelcomeTip1": "Yüklü bir uzantıyla arama yapın veya desteklenen bir bağlantı yapıştırın",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"@errorRateLimited": {
|
||||
"description": "Error title - too many requests"
|
||||
},
|
||||
"setupDownloadInFlac": "Завантажити треки Spotify у форматі FLAC",
|
||||
"setupDownloadInFlac": "Завантажуйте музику в якості Lossless та Hi-Res",
|
||||
"@setupDownloadInFlac": {
|
||||
"description": "App tagline in setup"
|
||||
},
|
||||
@@ -5082,7 +5082,7 @@
|
||||
"@setupStorageGranted": {
|
||||
"description": "Success message for storage permission"
|
||||
},
|
||||
"tutorialWelcomeTitle": "Ласкаво просимо до SpotiFLAC!",
|
||||
"tutorialWelcomeTitle": "Ласкаво просимо до SpotiFLAC Mobile!",
|
||||
"a11ySelectAlbum": "Select album {albumName}",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
@@ -5396,7 +5396,7 @@
|
||||
"@downloadAppleQqMultiPerson": {
|
||||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||||
},
|
||||
"tutorialWelcomeTip1": "Завантажуйте музику зі Spotify, Deezer або вставляйте будь-яку підтримувану URL-адресу",
|
||||
"tutorialWelcomeTip1": "Шукайте за допомогою встановленого розширення або вставте підтримуване посилання",
|
||||
"@tutorialWelcomeTip1": {
|
||||
"description": "Tutorial welcome tip 1"
|
||||
},
|
||||
|
||||
@@ -1063,18 +1063,12 @@ extension _QueueTabItemWidgets on _QueueTabState {
|
||||
valueListenable: fileExistsListenable,
|
||||
builder: (context, fileExists, child) {
|
||||
if (fileExists) {
|
||||
return IconButton.filled(
|
||||
return TrackGridPlayButton(
|
||||
tooltip: context.l10n.a11yPlayTrackByArtist(
|
||||
item.trackName,
|
||||
item.artistName,
|
||||
),
|
||||
onPressed: () => _playLibraryItem(item, libraryItems),
|
||||
iconSize: 18,
|
||||
icon: const Icon(Icons.play_arrow),
|
||||
style: IconButton.styleFrom(
|
||||
minimumSize: Size.square(context.tokens.minTouchTarget),
|
||||
padding: EdgeInsets.zero,
|
||||
),
|
||||
);
|
||||
}
|
||||
return Tooltip(
|
||||
|
||||
@@ -146,9 +146,9 @@ class _TutorialScreenState extends ConsumerState<TutorialScreen> {
|
||||
title: l10n.tutorialWelcomeTitle,
|
||||
description: l10n.tutorialWelcomeDesc,
|
||||
content: _buildFeatureList(context, [
|
||||
(Icons.music_note_rounded, l10n.tutorialWelcomeTip1),
|
||||
(Icons.travel_explore_rounded, l10n.tutorialWelcomeTip1),
|
||||
(Icons.high_quality_rounded, l10n.tutorialWelcomeTip2),
|
||||
(Icons.download_rounded, l10n.tutorialWelcomeTip3),
|
||||
(Icons.auto_awesome_rounded, l10n.tutorialWelcomeTip3),
|
||||
]),
|
||||
),
|
||||
_TutorialPage(
|
||||
@@ -174,7 +174,7 @@ class _TutorialScreenState extends ConsumerState<TutorialScreen> {
|
||||
title: l10n.tutorialLibraryTitle,
|
||||
description: l10n.tutorialLibraryDesc,
|
||||
content: _buildFeatureList(context, [
|
||||
(Icons.offline_pin_rounded, l10n.tutorialLibraryTip1),
|
||||
(Icons.downloading_rounded, l10n.tutorialLibraryTip1),
|
||||
(Icons.play_circle_fill, l10n.tutorialLibraryTip2),
|
||||
(Icons.grid_view_rounded, l10n.tutorialLibraryTip3),
|
||||
]),
|
||||
@@ -191,7 +191,7 @@ class _TutorialScreenState extends ConsumerState<TutorialScreen> {
|
||||
Icons.add_circle_outline_rounded,
|
||||
l10n.tutorialExtensionsTip2,
|
||||
),
|
||||
(Icons.lyrics_rounded, l10n.tutorialExtensionsTip3),
|
||||
(Icons.sync_rounded, l10n.tutorialExtensionsTip3),
|
||||
]),
|
||||
),
|
||||
_TutorialPage(
|
||||
|
||||
@@ -269,6 +269,50 @@ class TrackGridCard extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// Compact play affordance for a track cover with a full-size touch target.
|
||||
///
|
||||
/// The visible circle intentionally stays smaller than its hit box so it does
|
||||
/// not obscure the artwork while remaining accessible to touch users.
|
||||
class TrackGridPlayButton extends StatelessWidget {
|
||||
const TrackGridPlayButton({
|
||||
super.key,
|
||||
required this.tooltip,
|
||||
required this.onPressed,
|
||||
});
|
||||
|
||||
static const double visualDiameter = 36;
|
||||
|
||||
final String tooltip;
|
||||
final VoidCallback onPressed;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final tokens = context.tokens;
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
|
||||
return IconButton(
|
||||
tooltip: tooltip,
|
||||
onPressed: onPressed,
|
||||
padding: EdgeInsets.zero,
|
||||
alignment: Alignment.bottomRight,
|
||||
style: IconButton.styleFrom(
|
||||
minimumSize: Size.square(tokens.minTouchTarget),
|
||||
padding: EdgeInsets.zero,
|
||||
),
|
||||
icon: Container(
|
||||
width: visualDiameter,
|
||||
height: visualDiameter,
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: colorScheme.primary,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: Icon(Icons.play_arrow, size: 18, color: colorScheme.onPrimary),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Square artwork placeholder shared by every track row and grid cell.
|
||||
///
|
||||
/// The `Container` + `surfaceContainerHighest` + `music_note` combination was
|
||||
|
||||
@@ -581,6 +581,42 @@ void main() {
|
||||
await tester.tap(find.byType(InkWell));
|
||||
expect(taps, 1);
|
||||
});
|
||||
|
||||
testWidgets('grid play action keeps a compact visual and 48dp hit box', (
|
||||
tester,
|
||||
) async {
|
||||
var taps = 0;
|
||||
await tester.pumpWidget(
|
||||
host(
|
||||
Align(
|
||||
child: TrackGridPlayButton(
|
||||
tooltip: 'Play Song by Artist',
|
||||
onPressed: () => taps++,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
final action = find.byType(TrackGridPlayButton);
|
||||
final button = find.descendant(
|
||||
of: action,
|
||||
matching: find.byType(IconButton),
|
||||
);
|
||||
final visual = find.descendant(
|
||||
of: action,
|
||||
matching: find.byType(Container),
|
||||
);
|
||||
|
||||
expect(tester.getSize(button), const Size.square(48));
|
||||
expect(
|
||||
tester.getSize(visual),
|
||||
const Size.square(TrackGridPlayButton.visualDiameter),
|
||||
);
|
||||
expect(tester.getBottomRight(visual), tester.getBottomRight(button));
|
||||
|
||||
await tester.tap(button);
|
||||
expect(taps, 1);
|
||||
});
|
||||
});
|
||||
|
||||
group('selection bar', () {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
|
||||
void main() {
|
||||
group('setup and tutorial copy', () {
|
||||
test('uses the current app name and extension-based workflow', () {
|
||||
for (final locale in AppLocalizations.supportedLocales) {
|
||||
final strings = lookupAppLocalizations(locale);
|
||||
final setupTagline = strings.setupDownloadInFlac.toLowerCase();
|
||||
final firstTip = strings.tutorialWelcomeTip1.toLowerCase();
|
||||
|
||||
expect(
|
||||
strings.tutorialWelcomeTitle,
|
||||
contains('SpotiFLAC Mobile'),
|
||||
reason: 'Unexpected app name for $locale',
|
||||
);
|
||||
expect(
|
||||
setupTagline,
|
||||
isNot(contains('spotify')),
|
||||
reason: 'Provider-specific setup tagline for $locale',
|
||||
);
|
||||
expect(
|
||||
firstTip,
|
||||
isNot(anyOf(contains('spotify'), contains('deezer'))),
|
||||
reason: 'Provider-specific tutorial tip for $locale',
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('English and Indonesian describe the current feature set', () {
|
||||
final english = lookupAppLocalizations(const Locale('en'));
|
||||
final indonesian = lookupAppLocalizations(const Locale('id'));
|
||||
|
||||
expect(english.tutorialWelcomeDesc, contains('extensions'));
|
||||
expect(english.tutorialLibraryTip2, contains('built-in player'));
|
||||
expect(indonesian.tutorialWelcomeDesc, contains('extension'));
|
||||
expect(indonesian.tutorialLibraryTip2, contains('pemutar bawaan'));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user