diff --git a/lib/l10n/app_localizations_id.dart b/lib/l10n/app_localizations_id.dart index a848324c..70f81274 100644 --- a/lib/l10n/app_localizations_id.dart +++ b/lib/l10n/app_localizations_id.dart @@ -1,2658 +1,2680 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'app_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Indonesian (`id`). -class AppLocalizationsId extends AppLocalizations { - AppLocalizationsId([String locale = 'id']) : super(locale); - - @override - String get appName => 'SpotiFLAC'; - - @override - String get appDescription => - 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; - - @override - String get navHome => 'Beranda'; - - @override - String get navLibrary => 'Library'; - - @override - String get navHistory => 'Riwayat'; - - @override - String get navSettings => 'Pengaturan'; - - @override - String get navStore => 'Toko'; - - @override - String get homeTitle => 'Beranda'; - - @override - String get homeSearchHint => 'Tempel URL Spotify atau cari...'; - - @override - String homeSearchHintExtension(String extensionName) { - return 'Cari dengan $extensionName...'; - } - - @override - String get homeSubtitle => 'Tempel link Spotify atau cari berdasarkan nama'; - - @override - String get homeSupports => 'Mendukung: URL Track, Album, Playlist, Artis'; - - @override - String get homeRecent => 'Terbaru'; - - @override - String get historyTitle => 'Riwayat'; - - @override - String historyDownloading(int count) { - return 'Mengunduh ($count)'; - } - - @override - String get historyDownloaded => 'Terunduh'; - - @override - String get historyFilterAll => 'Semua'; - - @override - String get historyFilterAlbums => 'Album'; - - @override - String get historyFilterSingles => 'Single'; - - @override - String historyTracksCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count lagu', - one: '1 lagu', - ); - return '$_temp0'; - } - - @override - String historyAlbumsCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count album', - one: '1 album', - ); - return '$_temp0'; - } - - @override - String get historyNoDownloads => 'Tidak ada riwayat unduhan'; - - @override - String get historyNoDownloadsSubtitle => - 'Lagu yang diunduh akan muncul di sini'; - - @override - String get historyNoAlbums => 'Tidak ada unduhan album'; - - @override - String get historyNoAlbumsSubtitle => - 'Unduh beberapa lagu dari album untuk melihatnya di sini'; - - @override - String get historyNoSingles => 'Tidak ada unduhan single'; - - @override - String get historyNoSinglesSubtitle => - 'Unduhan lagu satuan akan muncul di sini'; - - @override - String get historySearchHint => 'Search history...'; - - @override - String get settingsTitle => 'Pengaturan'; - - @override - String get settingsDownload => 'Unduhan'; - - @override - String get settingsAppearance => 'Tampilan'; - - @override - String get settingsOptions => 'Opsi'; - - @override - String get settingsExtensions => 'Ekstensi'; - - @override - String get settingsAbout => 'Tentang'; - - @override - String get downloadTitle => 'Unduhan'; - - @override - String get downloadLocation => 'Lokasi Unduhan'; - - @override - String get downloadLocationSubtitle => 'Pilih tempat menyimpan file'; - - @override - String get downloadLocationDefault => 'Lokasi default'; - - @override - String get downloadDefaultService => 'Layanan Default'; - - @override - String get downloadDefaultServiceSubtitle => - 'Layanan yang digunakan untuk unduhan'; - - @override - String get downloadDefaultQuality => 'Kualitas Default'; - - @override - String get downloadAskQuality => 'Tanya Kualitas Sebelum Unduh'; - - @override - String get downloadAskQualitySubtitle => - 'Tampilkan pemilih kualitas untuk setiap unduhan'; - - @override - String get downloadFilenameFormat => 'Format Nama File'; - - @override - String get downloadFolderOrganization => 'Organisasi Folder'; - - @override - String get downloadSeparateSingles => 'Pisahkan Single'; - - @override - String get downloadSeparateSinglesSubtitle => - 'Letakkan lagu satuan di folder terpisah'; - - @override - String get qualityBest => 'Terbaik'; - - @override - String get qualityFlac => 'FLAC'; - - @override - String get quality320 => '320 kbps'; - - @override - String get quality128 => '128 kbps'; - - @override - String get appearanceTitle => 'Tampilan'; - - @override - String get appearanceTheme => 'Tema'; - - @override - String get appearanceThemeSystem => 'Sistem'; - - @override - String get appearanceThemeLight => 'Terang'; - - @override - String get appearanceThemeDark => 'Gelap'; - - @override - String get appearanceDynamicColor => 'Warna Dinamis'; - - @override - String get appearanceDynamicColorSubtitle => - 'Gunakan warna dari wallpaper Anda'; - - @override - String get appearanceAccentColor => 'Warna Aksen'; - - @override - String get appearanceHistoryView => 'Tampilan Riwayat'; - - @override - String get appearanceHistoryViewList => 'Daftar'; - - @override - String get appearanceHistoryViewGrid => 'Grid'; - - @override - String get optionsTitle => 'Opsi'; - - @override - String get optionsSearchSource => 'Sumber Pencarian'; - - @override - String get optionsPrimaryProvider => 'Provider Utama'; - - @override - String get optionsPrimaryProviderSubtitle => - 'Layanan yang digunakan saat mencari berdasarkan nama lagu.'; - - @override - String optionsUsingExtension(String extensionName) { - return 'Menggunakan ekstensi: $extensionName'; - } - - @override - String get optionsSwitchBack => - 'Ketuk Deezer atau Spotify untuk beralih dari ekstensi'; - - @override - String get optionsAutoFallback => 'Auto Fallback'; - - @override - String get optionsAutoFallbackSubtitle => - 'Coba layanan lain jika unduhan gagal'; - - @override - String get optionsUseExtensionProviders => 'Gunakan Provider Ekstensi'; - - @override - String get optionsUseExtensionProvidersOn => - 'Ekstensi akan dicoba terlebih dahulu'; - - @override - String get optionsUseExtensionProvidersOff => - 'Hanya menggunakan provider bawaan'; - - @override - String get optionsEmbedLyrics => 'Sematkan Lirik'; - - @override - String get optionsEmbedLyricsSubtitle => - 'Sematkan lirik sinkron ke file FLAC'; - - @override - String get optionsMaxQualityCover => 'Cover Kualitas Maksimal'; - - @override - String get optionsMaxQualityCoverSubtitle => - 'Unduh cover art resolusi tertinggi'; - - @override - String get optionsConcurrentDownloads => 'Unduhan Bersamaan'; - - @override - String get optionsConcurrentSequential => 'Berurutan (1 per waktu)'; - - @override - String optionsConcurrentParallel(int count) { - return '$count unduhan paralel'; - } - - @override - String get optionsConcurrentWarning => - 'Unduhan paralel dapat memicu pembatasan rate'; - - @override - String get optionsExtensionStore => 'Toko Ekstensi'; - - @override - String get optionsExtensionStoreSubtitle => 'Tampilkan tab Toko di navigasi'; - - @override - String get optionsCheckUpdates => 'Periksa Pembaruan'; - - @override - String get optionsCheckUpdatesSubtitle => 'Beritahu saat versi baru tersedia'; - - @override - String get optionsUpdateChannel => 'Saluran Pembaruan'; - - @override - String get optionsUpdateChannelStable => 'Hanya rilis stabil'; - - @override - String get optionsUpdateChannelPreview => 'Dapatkan rilis preview'; - - @override - String get optionsUpdateChannelWarning => - 'Preview mungkin mengandung bug atau fitur belum lengkap'; - - @override - String get optionsClearHistory => 'Hapus Riwayat Unduhan'; - - @override - String get optionsClearHistorySubtitle => 'Hapus semua lagu dari riwayat'; - - @override - String get optionsDetailedLogging => 'Log Detail'; - - @override - String get optionsDetailedLoggingOn => 'Log detail sedang direkam'; - - @override - String get optionsDetailedLoggingOff => 'Aktifkan untuk laporan bug'; - - @override - String get optionsSpotifyCredentials => 'Kredensial Spotify'; - - @override - String optionsSpotifyCredentialsConfigured(String clientId) { - return 'Client ID: $clientId...'; - } - - @override - String get optionsSpotifyCredentialsRequired => - 'Diperlukan - ketuk untuk mengatur'; - - @override - String get optionsSpotifyWarning => - 'Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com'; - - @override - String get extensionsTitle => 'Ekstensi'; - - @override - String get extensionsInstalled => 'Ekstensi Terpasang'; - - @override - String get extensionsNone => 'Tidak ada ekstensi terpasang'; - - @override - String get extensionsNoneSubtitle => 'Pasang ekstensi dari tab Toko'; - - @override - String get extensionsEnabled => 'Aktif'; - - @override - String get extensionsDisabled => 'Nonaktif'; - - @override - String extensionsVersion(String version) { - return 'Versi $version'; - } - - @override - String extensionsAuthor(String author) { - return 'oleh $author'; - } - - @override - String get extensionsUninstall => 'Copot'; - - @override - String get extensionsSetAsSearch => 'Jadikan Provider Pencarian'; - - @override - String get storeTitle => 'Toko Ekstensi'; - - @override - String get storeSearch => 'Cari ekstensi...'; - - @override - String get storeInstall => 'Pasang'; - - @override - String get storeInstalled => 'Terpasang'; - - @override - String get storeUpdate => 'Perbarui'; - - @override - String get aboutTitle => 'Tentang'; - - @override - String get aboutContributors => 'Kontributor'; - - @override - String get aboutMobileDeveloper => 'Pengembang versi mobile'; - - @override - String get aboutOriginalCreator => 'Pembuat SpotiFLAC asli'; - - @override - String get aboutLogoArtist => - 'Seniman berbakat yang membuat logo aplikasi kita yang indah!'; - - @override - String get aboutTranslators => 'Translators'; - - @override - String get aboutSpecialThanks => 'Terima Kasih Khusus'; - - @override - String get aboutLinks => 'Tautan'; - - @override - String get aboutMobileSource => 'Kode sumber mobile'; - - @override - String get aboutPCSource => 'Kode sumber PC'; - - @override - String get aboutReportIssue => 'Laporkan masalah'; - - @override - String get aboutReportIssueSubtitle => 'Laporkan masalah yang Anda temui'; - - @override - String get aboutFeatureRequest => 'Permintaan fitur'; - - @override - String get aboutFeatureRequestSubtitle => - 'Sarankan fitur baru untuk aplikasi'; - - @override - String get aboutTelegramChannel => 'Telegram Channel'; - - @override - String get aboutTelegramChannelSubtitle => 'Announcements and updates'; - - @override - String get aboutTelegramChat => 'Telegram Community'; - - @override - String get aboutTelegramChatSubtitle => 'Chat with other users'; - - @override - String get aboutSocial => 'Social'; - - @override - String get aboutSupport => 'Dukungan'; - - @override - String get aboutBuyMeCoffee => 'Belikan saya kopi'; - - @override - String get aboutBuyMeCoffeeSubtitle => 'Dukung pengembangan di Ko-fi'; - - @override - String get aboutApp => 'Aplikasi'; - - @override - String get aboutVersion => 'Versi'; - - @override - String get aboutBinimumDesc => - 'Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!'; - - @override - String get aboutSachinsenalDesc => - 'Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!'; - - @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; - - @override - String get aboutDoubleDouble => 'DoubleDouble'; - - @override - String get aboutDoubleDoubleDesc => - 'API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!'; - - @override - String get aboutDabMusic => 'DAB Music'; - - @override - String get aboutDabMusicDesc => - 'API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!'; - - @override - String get aboutAppDescription => - 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; - - @override - String get albumTitle => 'Album'; - - @override - String albumTracks(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count lagu', - one: '1 lagu', - ); - return '$_temp0'; - } - - @override - String get albumDownloadAll => 'Unduh Semua'; - - @override - String get albumDownloadRemaining => 'Unduh Sisanya'; - - @override - String get playlistTitle => 'Playlist'; - - @override - String get artistTitle => 'Artis'; - - @override - String get artistAlbums => 'Album'; - - @override - String get artistSingles => 'Single & EP'; - - @override - String get artistCompilations => 'Kompilasi'; - - @override - String artistReleases(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count rilis', - one: '1 rilis', - ); - return '$_temp0'; - } - - @override - String get artistPopular => 'Populer'; - - @override - String artistMonthlyListeners(String count) { - return '$count pendengar bulanan'; - } - - @override - String get trackMetadataTitle => 'Info Lagu'; - - @override - String get trackMetadataArtist => 'Artis'; - - @override - String get trackMetadataAlbum => 'Album'; - - @override - String get trackMetadataDuration => 'Durasi'; - - @override - String get trackMetadataQuality => 'Kualitas'; - - @override - String get trackMetadataPath => 'Lokasi File'; - - @override - String get trackMetadataDownloadedAt => 'Diunduh'; - - @override - String get trackMetadataService => 'Layanan'; - - @override - String get trackMetadataPlay => 'Putar'; - - @override - String get trackMetadataShare => 'Bagikan'; - - @override - String get trackMetadataDelete => 'Hapus'; - - @override - String get trackMetadataRedownload => 'Unduh ulang'; - - @override - String get trackMetadataOpenFolder => 'Buka Folder'; - - @override - String get setupTitle => 'Selamat Datang di SpotiFLAC'; - - @override - String get setupSubtitle => 'Mari mulai pengaturan'; - - @override - String get setupStoragePermission => 'Izin Penyimpanan'; - - @override - String get setupStoragePermissionSubtitle => - 'Diperlukan untuk menyimpan file unduhan'; - - @override - String get setupStoragePermissionGranted => 'Izin diberikan'; - - @override - String get setupStoragePermissionDenied => 'Izin ditolak'; - - @override - String get setupGrantPermission => 'Berikan Izin'; - - @override - String get setupDownloadLocation => 'Lokasi Unduhan'; - - @override - String get setupChooseFolder => 'Pilih Folder'; - - @override - String get setupContinue => 'Lanjutkan'; - - @override - String get setupSkip => 'Lewati untuk sekarang'; - - @override - String get setupStorageAccessRequired => 'Akses Penyimpanan Diperlukan'; - - @override - String get setupStorageAccessMessage => - 'SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.'; - - @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.'; - - @override - String get setupOpenSettings => 'Buka Pengaturan'; - - @override - String get setupPermissionDeniedMessage => - 'Izin ditolak. Harap berikan semua izin untuk melanjutkan.'; - - @override - String setupPermissionRequired(String permissionType) { - return 'Izin $permissionType Diperlukan'; - } - - @override - String setupPermissionRequiredMessage(String permissionType) { - return 'Izin $permissionType diperlukan untuk pengalaman terbaik. Anda dapat mengubahnya nanti di Pengaturan.'; - } - - @override - String get setupSelectDownloadFolder => 'Pilih Folder Unduhan'; - - @override - String get setupUseDefaultFolder => 'Gunakan Folder Default?'; - - @override - String get setupNoFolderSelected => - 'Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?'; - - @override - String get setupUseDefault => 'Gunakan Default'; - - @override - String get setupDownloadLocationTitle => 'Lokasi Unduhan'; - - @override - String get setupDownloadLocationIosMessage => - 'Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.'; - - @override - String get setupAppDocumentsFolder => 'Folder Documents Aplikasi'; - - @override - String get setupAppDocumentsFolderSubtitle => - 'Direkomendasikan - dapat diakses via aplikasi Files'; - - @override - String get setupChooseFromFiles => 'Pilih dari Files'; - - @override - String get setupChooseFromFilesSubtitle => 'Pilih lokasi iCloud atau lainnya'; - - @override - String get setupIosEmptyFolderWarning => - 'Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.'; - - @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; - - @override - String get setupDownloadInFlac => 'Unduh lagu Spotify dalam format FLAC'; - - @override - String get setupStepStorage => 'Penyimpanan'; - - @override - String get setupStepNotification => 'Notifikasi'; - - @override - String get setupStepFolder => 'Folder'; - - @override - String get setupStepSpotify => 'Spotify'; - - @override - String get setupStepPermission => 'Izin'; - - @override - String get setupStorageGranted => 'Izin Penyimpanan Diberikan!'; - - @override - String get setupStorageRequired => 'Izin Penyimpanan Diperlukan'; - - @override - String get setupStorageDescription => - 'SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.'; - - @override - String get setupNotificationGranted => 'Izin Notifikasi Diberikan!'; - - @override - String get setupNotificationEnable => 'Aktifkan Notifikasi'; - - @override - String get setupNotificationDescription => - 'Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.'; - - @override - String get setupFolderSelected => 'Folder Unduhan Dipilih!'; - - @override - String get setupFolderChoose => 'Pilih Folder Unduhan'; - - @override - String get setupFolderDescription => - 'Pilih folder tempat musik yang diunduh akan disimpan.'; - - @override - String get setupChangeFolder => 'Ubah Folder'; - - @override - String get setupSelectFolder => 'Pilih Folder'; - - @override - String get setupSpotifyApiOptional => 'Spotify API (Opsional)'; - - @override - String get setupSpotifyApiDescription => - 'Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.'; - - @override - String get setupUseSpotifyApi => 'Gunakan Spotify API'; - - @override - String get setupEnterCredentialsBelow => 'Masukkan kredensial Anda di bawah'; - - @override - String get setupUsingDeezer => 'Menggunakan Deezer (tidak perlu akun)'; - - @override - String get setupEnterClientId => 'Masukkan Spotify Client ID'; - - @override - String get setupEnterClientSecret => 'Masukkan Spotify Client Secret'; - - @override - String get setupGetFreeCredentials => - 'Dapatkan kredensial API gratis dari Spotify Developer Dashboard.'; - - @override - String get setupEnableNotifications => 'Aktifkan Notifikasi'; - - @override - String get setupProceedToNextStep => - 'Anda dapat melanjutkan ke langkah berikutnya.'; - - @override - String get setupNotificationProgressDescription => - 'Anda akan menerima notifikasi progres unduhan.'; - - @override - String get setupNotificationBackgroundDescription => - 'Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.'; - - @override - String get setupSkipForNow => 'Lewati untuk sekarang'; - - @override - String get setupBack => 'Kembali'; - - @override - String get setupNext => 'Lanjut'; - - @override - String get setupGetStarted => 'Mulai'; - - @override - String get setupSkipAndStart => 'Lewati & Mulai'; - - @override - String get setupAllowAccessToManageFiles => - 'Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.'; - - @override - String get setupGetCredentialsFromSpotify => - 'Dapatkan kredensial dari developer.spotify.com'; - - @override - String get dialogCancel => 'Batal'; - - @override - String get dialogOk => 'OK'; - - @override - String get dialogSave => 'Simpan'; - - @override - String get dialogDelete => 'Hapus'; - - @override - String get dialogRetry => 'Coba Lagi'; - - @override - String get dialogClose => 'Tutup'; - - @override - String get dialogYes => 'Ya'; - - @override - String get dialogNo => 'Tidak'; - - @override - String get dialogClear => 'Hapus'; - - @override - String get dialogConfirm => 'Konfirmasi'; - - @override - String get dialogDone => 'Selesai'; - - @override - String get dialogImport => 'Impor'; - - @override - String get dialogDiscard => 'Buang'; - - @override - String get dialogRemove => 'Hapus'; - - @override - String get dialogUninstall => 'Copot'; - - @override - String get dialogDiscardChanges => 'Buang Perubahan?'; - - @override - String get dialogUnsavedChanges => - 'Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?'; - - @override - String get dialogDownloadFailed => 'Unduhan Gagal'; - - @override - String get dialogTrackLabel => 'Lagu:'; - - @override - String get dialogArtistLabel => 'Artis:'; - - @override - String get dialogErrorLabel => 'Error:'; - - @override - String get dialogClearAll => 'Hapus Semua'; - - @override - String get dialogClearAllDownloads => - 'Apakah Anda yakin ingin menghapus semua unduhan?'; - - @override - String get dialogRemoveFromDevice => 'Hapus dari perangkat?'; - - @override - String get dialogRemoveExtension => 'Hapus Ekstensi'; - - @override - String get dialogRemoveExtensionMessage => - 'Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.'; - - @override - String get dialogUninstallExtension => 'Copot Ekstensi?'; - - @override - String dialogUninstallExtensionMessage(String extensionName) { - return 'Apakah Anda yakin ingin menghapus $extensionName?'; - } - - @override - String get dialogClearHistoryTitle => 'Hapus Riwayat'; - - @override - String get dialogClearHistoryMessage => - 'Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.'; - - @override - String get dialogDeleteSelectedTitle => 'Hapus yang Dipilih'; - - @override - String dialogDeleteSelectedMessage(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'lagu', - one: 'lagu', - ); - return 'Hapus $count $_temp0 dari riwayat?\n\nIni juga akan menghapus file dari penyimpanan.'; - } - - @override - String get dialogImportPlaylistTitle => 'Impor Playlist'; - - @override - String dialogImportPlaylistMessage(int count) { - return 'Ditemukan $count lagu di CSV. Tambahkan ke antrian unduhan?'; - } - - @override - String csvImportTracks(int count) { - return '$count tracks from CSV'; - } - - @override - String snackbarAddedToQueue(String trackName) { - return 'Menambahkan \"$trackName\" ke antrian'; - } - - @override - String snackbarAddedTracksToQueue(int count) { - return 'Menambahkan $count lagu ke antrian'; - } - - @override - String snackbarAlreadyDownloaded(String trackName) { - return '\"$trackName\" sudah diunduh'; - } - - @override - String snackbarAlreadyInLibrary(String trackName) { - return '\"$trackName\" already exists in your library'; - } - - @override - String get snackbarHistoryCleared => 'Riwayat dihapus'; - - @override - String get snackbarCredentialsSaved => 'Kredensial disimpan'; - - @override - String get snackbarCredentialsCleared => 'Kredensial dihapus'; - - @override - String snackbarDeletedTracks(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'lagu', - one: 'lagu', - ); - return 'Menghapus $count $_temp0'; - } - - @override - String snackbarCannotOpenFile(String error) { - return 'Tidak dapat membuka file: $error'; - } - - @override - String get snackbarFillAllFields => 'Harap isi semua field'; - - @override - String get snackbarViewQueue => 'Lihat Antrian'; - - @override - String snackbarFailedToLoad(String error) { - return 'Gagal memuat: $error'; - } - - @override - String snackbarUrlCopied(String platform) { - return 'URL $platform disalin ke clipboard'; - } - - @override - String get snackbarFileNotFound => 'File tidak ditemukan'; - - @override - String get snackbarSelectExtFile => 'Harap pilih file .spotiflac-ext'; - - @override - String get snackbarProviderPrioritySaved => 'Prioritas provider disimpan'; - - @override - String get snackbarMetadataProviderSaved => - 'Prioritas provider metadata disimpan'; - - @override - String snackbarExtensionInstalled(String extensionName) { - return '$extensionName terpasang.'; - } - - @override - String snackbarExtensionUpdated(String extensionName) { - return '$extensionName diperbarui.'; - } - - @override - String get snackbarFailedToInstall => 'Gagal memasang ekstensi'; - - @override - String get snackbarFailedToUpdate => 'Gagal memperbarui ekstensi'; - - @override - String get errorRateLimited => 'Dibatasi'; - - @override - String get errorRateLimitedMessage => - 'Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.'; - - @override - String errorFailedToLoad(String item) { - return 'Gagal memuat $item'; - } - - @override - String get errorNoTracksFound => 'Tidak ada lagu ditemukan'; - - @override - String errorMissingExtensionSource(String item) { - return 'Tidak dapat memuat $item: sumber ekstensi tidak ada'; - } - - @override - String get statusQueued => 'Mengantri'; - - @override - String get statusDownloading => 'Mengunduh'; - - @override - String get statusFinalizing => 'Menyelesaikan'; - - @override - String get statusCompleted => 'Selesai'; - - @override - String get statusFailed => 'Gagal'; - - @override - String get statusSkipped => 'Dilewati'; - - @override - String get statusPaused => 'Dijeda'; - - @override - String get actionPause => 'Jeda'; - - @override - String get actionResume => 'Lanjutkan'; - - @override - String get actionCancel => 'Batal'; - - @override - String get actionStop => 'Hentikan'; - - @override - String get actionSelect => 'Pilih'; - - @override - String get actionSelectAll => 'Pilih Semua'; - - @override - String get actionDeselect => 'Batal Pilih'; - - @override - String get actionPaste => 'Tempel'; - - @override - String get actionImportCsv => 'Impor CSV'; - - @override - String get actionRemoveCredentials => 'Hapus Kredensial'; - - @override - String get actionSaveCredentials => 'Simpan Kredensial'; - - @override - String selectionSelected(int count) { - return '$count dipilih'; - } - - @override - String get selectionAllSelected => 'Semua lagu dipilih'; - - @override - String get selectionTapToSelect => 'Ketuk lagu untuk memilih'; - - @override - String selectionDeleteTracks(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'lagu', - one: 'lagu', - ); - return 'Hapus $count $_temp0'; - } - - @override - String get selectionSelectToDelete => 'Pilih lagu untuk dihapus'; - - @override - String progressFetchingMetadata(int current, int total) { - return 'Mengambil metadata... $current/$total'; - } - - @override - String get progressReadingCsv => 'Membaca CSV...'; - - @override - String get searchSongs => 'Lagu'; - - @override - String get searchArtists => 'Artis'; - - @override - String get searchAlbums => 'Album'; - - @override - String get searchPlaylists => 'Playlist'; - - @override - String get tooltipPlay => 'Putar'; - - @override - String get tooltipCancel => 'Batal'; - - @override - String get tooltipStop => 'Hentikan'; - - @override - String get tooltipRetry => 'Coba Lagi'; - - @override - String get tooltipRemove => 'Hapus'; - - @override - String get tooltipClear => 'Hapus'; - - @override - String get tooltipPaste => 'Tempel'; - - @override - String get filenameFormat => 'Format Nama File'; - - @override - String filenameFormatPreview(String preview) { - return 'Pratinjau: $preview'; - } - - @override - String get filenameAvailablePlaceholders => 'Placeholder yang tersedia:'; - - @override - String filenameHint(Object artist, Object title) { - return '$artist - $title'; - } - - @override - String get folderOrganization => 'Organisasi Folder'; - - @override - String get folderOrganizationNone => 'Tidak ada'; - - @override - String get folderOrganizationByArtist => 'Berdasarkan Artis'; - - @override - String get folderOrganizationByAlbum => 'Berdasarkan Album'; - - @override - String get folderOrganizationByArtistAlbum => 'Berdasarkan Artis & Album'; - - @override - String get folderOrganizationDescription => - 'Atur file yang diunduh ke dalam folder'; - - @override - String get folderOrganizationNoneSubtitle => 'Semua file di folder unduhan'; - - @override - String get folderOrganizationByArtistSubtitle => - 'Folder terpisah untuk setiap artis'; - - @override - String get folderOrganizationByAlbumSubtitle => - 'Folder terpisah untuk setiap album'; - - @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Folder bersarang untuk artis dan album'; - - @override - String get updateAvailable => 'Pembaruan Tersedia'; - - @override - String updateNewVersion(String version) { - return 'Versi $version tersedia'; - } - - @override - String get updateDownload => 'Unduh'; - - @override - String get updateLater => 'Nanti'; - - @override - String get updateChangelog => 'Log Perubahan'; - - @override - String get updateStartingDownload => 'Memulai unduhan...'; - - @override - String get updateDownloadFailed => 'Unduhan gagal'; - - @override - String get updateFailedMessage => 'Gagal mengunduh pembaruan'; - - @override - String get updateNewVersionReady => 'Versi baru sudah siap'; - - @override - String get updateCurrent => 'Saat ini'; - - @override - String get updateNew => 'Baru'; - - @override - String get updateDownloading => 'Mengunduh...'; - - @override - String get updateWhatsNew => 'Yang Baru'; - - @override - String get updateDownloadInstall => 'Unduh & Pasang'; - - @override - String get updateDontRemind => 'Jangan ingatkan'; - - @override - String get providerPriority => 'Prioritas Provider'; - - @override - String get providerPrioritySubtitle => - 'Seret untuk mengatur ulang provider unduhan'; - - @override - String get providerPriorityTitle => 'Prioritas Provider'; - - @override - String get providerPriorityDescription => - 'Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.'; - - @override - String get providerPriorityInfo => - 'Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.'; - - @override - String get providerBuiltIn => 'Bawaan'; - - @override - String get providerExtension => 'Ekstensi'; - - @override - String get metadataProviderPriority => 'Prioritas Provider Metadata'; - - @override - String get metadataProviderPrioritySubtitle => - 'Urutan yang digunakan saat mengambil metadata lagu'; - - @override - String get metadataProviderPriorityTitle => 'Prioritas Metadata'; - - @override - String get metadataProviderPriorityDescription => - 'Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.'; - - @override - String get metadataProviderPriorityInfo => - 'Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.'; - - @override - String get metadataNoRateLimits => 'Tidak ada batas rate'; - - @override - String get metadataMayRateLimit => 'Mungkin dibatasi rate'; - - @override - String get logTitle => 'Log'; - - @override - String get logCopy => 'Salin Log'; - - @override - String get logClear => 'Hapus Log'; - - @override - String get logShare => 'Bagikan Log'; - - @override - String get logEmpty => 'Belum ada log'; - - @override - String get logCopied => 'Log disalin ke clipboard'; - - @override - String get logSearchHint => 'Cari log...'; - - @override - String get logFilterLevel => 'Level'; - - @override - String get logFilterSection => 'Filter'; - - @override - String get logShareLogs => 'Bagikan log'; - - @override - String get logClearLogs => 'Hapus log'; - - @override - String get logClearLogsTitle => 'Hapus Log'; - - @override - String get logClearLogsMessage => - 'Apakah Anda yakin ingin menghapus semua log?'; - - @override - String get logIspBlocking => 'PEMBLOKIRAN ISP TERDETEKSI'; - - @override - String get logRateLimited => 'DIBATASI'; - - @override - String get logNetworkError => 'ERROR JARINGAN'; - - @override - String get logTrackNotFound => 'LAGU TIDAK DITEMUKAN'; - - @override - String get logFilterBySeverity => 'Filter log berdasarkan tingkat keparahan'; - - @override - String get logNoLogsYet => 'Belum ada log'; - - @override - String get logNoLogsYetSubtitle => - 'Log akan muncul di sini saat Anda menggunakan aplikasi'; - - @override - String get logIssueSummary => 'Ringkasan Masalah'; - - @override - String get logIspBlockingDescription => - 'ISP Anda mungkin memblokir akses ke layanan unduhan'; - - @override - String get logIspBlockingSuggestion => - 'Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8'; - - @override - String get logRateLimitedDescription => - 'Terlalu banyak permintaan ke layanan'; - - @override - String get logRateLimitedSuggestion => - 'Tunggu beberapa menit sebelum mencoba lagi'; - - @override - String get logNetworkErrorDescription => 'Masalah koneksi terdeteksi'; - - @override - String get logNetworkErrorSuggestion => 'Periksa koneksi internet Anda'; - - @override - String get logTrackNotFoundDescription => - 'Beberapa lagu tidak dapat ditemukan di layanan unduhan'; - - @override - String get logTrackNotFoundSuggestion => - 'Lagu mungkin tidak tersedia dalam kualitas lossless'; - - @override - String logTotalErrors(int count) { - return 'Total error: $count'; - } - - @override - String logAffected(String domains) { - return 'Terpengaruh: $domains'; - } - - @override - String logEntriesFiltered(int count) { - return 'Entri ($count difilter)'; - } - - @override - String logEntries(int count) { - return 'Entri ($count)'; - } - - @override - String get credentialsTitle => 'Kredensial Spotify'; - - @override - String get credentialsDescription => - 'Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.'; - - @override - String get credentialsClientId => 'Client ID'; - - @override - String get credentialsClientIdHint => 'Tempel Client ID'; - - @override - String get credentialsClientSecret => 'Client Secret'; - - @override - String get credentialsClientSecretHint => 'Tempel Client Secret'; - - @override - String get channelStable => 'Stabil'; - - @override - String get channelPreview => 'Preview'; - - @override - String get sectionSearchSource => 'Sumber Pencarian'; - - @override - String get sectionDownload => 'Unduhan'; - - @override - String get sectionPerformance => 'Performa'; - - @override - String get sectionApp => 'Aplikasi'; - - @override - String get sectionData => 'Data'; - - @override - String get sectionDebug => 'Debug'; - - @override - String get sectionService => 'Layanan'; - - @override - String get sectionAudioQuality => 'Kualitas Audio'; - - @override - String get sectionFileSettings => 'Pengaturan File'; - - @override - String get sectionLyrics => 'Lyrics'; - - @override - String get lyricsMode => 'Lyrics Mode'; - - @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; - - @override - String get lyricsModeEmbed => 'Embed in file'; - - @override - String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata'; - - @override - String get lyricsModeExternal => 'External .lrc file'; - - @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; - - @override - String get lyricsModeBoth => 'Both'; - - @override - String get lyricsModeBothSubtitle => 'Embed and save .lrc file'; - - @override - String get sectionColor => 'Warna'; - - @override - String get sectionTheme => 'Tema'; - - @override - String get sectionLayout => 'Tata Letak'; - - @override - String get sectionLanguage => 'Bahasa'; - - @override - String get appearanceLanguage => 'Bahasa Aplikasi'; - - @override - String get appearanceLanguageSubtitle => 'Pilih bahasa yang kamu inginkan'; - - @override - String get settingsAppearanceSubtitle => 'Tema, warna, tampilan'; - - @override - String get settingsDownloadSubtitle => 'Layanan, kualitas, format nama file'; - - @override - String get settingsOptionsSubtitle => 'Fallback, lirik, cover art, pembaruan'; - - @override - String get settingsExtensionsSubtitle => 'Kelola provider unduhan'; - - @override - String get settingsLogsSubtitle => 'Lihat log aplikasi untuk debugging'; - - @override - String get loadingSharedLink => 'Memuat link yang dibagikan...'; - - @override - String get pressBackAgainToExit => 'Tekan kembali sekali lagi untuk keluar'; - - @override - String get tracksHeader => 'Lagu'; - - @override - String downloadAllCount(int count) { - return 'Unduh Semua ($count)'; - } - - @override - String tracksCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count lagu', - one: '1 lagu', - ); - return '$_temp0'; - } - - @override - String get trackCopyFilePath => 'Salin lokasi file'; - - @override - String get trackRemoveFromDevice => 'Hapus dari perangkat'; - - @override - String get trackLoadLyrics => 'Muat Lirik'; - - @override - String get trackMetadata => 'Metadata'; - - @override - String get trackFileInfo => 'Info File'; - - @override - String get trackLyrics => 'Lirik'; - - @override - String get trackFileNotFound => 'File tidak ditemukan'; - - @override - String get trackOpenInDeezer => 'Buka di Deezer'; - - @override - String get trackOpenInSpotify => 'Buka di Spotify'; - - @override - String get trackTrackName => 'Nama lagu'; - - @override - String get trackArtist => 'Artis'; - - @override - String get trackAlbumArtist => 'Artis album'; - - @override - String get trackAlbum => 'Album'; - - @override - String get trackTrackNumber => 'Nomor lagu'; - - @override - String get trackDiscNumber => 'Nomor disc'; - - @override - String get trackDuration => 'Durasi'; - - @override - String get trackAudioQuality => 'Kualitas audio'; - - @override - String get trackReleaseDate => 'Tanggal rilis'; - - @override - String get trackGenre => 'Genre'; - - @override - String get trackLabel => 'Label'; - - @override - String get trackCopyright => 'Copyright'; - - @override - String get trackDownloaded => 'Diunduh'; - - @override - String get trackCopyLyrics => 'Salin lirik'; - - @override - String get trackLyricsNotAvailable => 'Lirik tidak tersedia untuk lagu ini'; - - @override - String get trackLyricsTimeout => 'Permintaan timeout. Coba lagi nanti.'; - - @override - String get trackLyricsLoadFailed => 'Gagal memuat lirik'; - - @override - String get trackEmbedLyrics => 'Embed Lyrics'; - - @override - String get trackLyricsEmbedded => 'Lyrics embedded successfully'; - - @override - String get trackInstrumental => 'Instrumental track'; - - @override - String get trackCopiedToClipboard => 'Disalin ke clipboard'; - - @override - String get trackDeleteConfirmTitle => 'Hapus dari perangkat?'; - - @override - String get trackDeleteConfirmMessage => - 'Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.'; - - @override - String trackCannotOpen(String message) { - return 'Tidak dapat membuka: $message'; - } - - @override - String get dateToday => 'Hari ini'; - - @override - String get dateYesterday => 'Kemarin'; - - @override - String dateDaysAgo(int count) { - return '$count hari lalu'; - } - - @override - String dateWeeksAgo(int count) { - return '$count minggu lalu'; - } - - @override - String dateMonthsAgo(int count) { - return '$count bulan lalu'; - } - - @override - String get concurrentSequential => 'Berurutan'; - - @override - String get concurrentParallel2 => '2 Paralel'; - - @override - String get concurrentParallel3 => '3 Paralel'; - - @override - String get tapToSeeError => 'Ketuk untuk melihat detail error'; - - @override - String get storeFilterAll => 'Semua'; - - @override - String get storeFilterMetadata => 'Metadata'; - - @override - String get storeFilterDownload => 'Unduhan'; - - @override - String get storeFilterUtility => 'Utilitas'; - - @override - String get storeFilterLyrics => 'Lirik'; - - @override - String get storeFilterIntegration => 'Integrasi'; - - @override - String get storeClearFilters => 'Hapus filter'; - - @override - String get storeNoResults => 'Tidak ada ekstensi ditemukan'; - - @override - String get extensionProviderPriority => 'Prioritas Provider'; - - @override - String get extensionInstallButton => 'Pasang Ekstensi'; - - @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; - - @override - String get extensionDefaultProviderSubtitle => 'Gunakan pencarian bawaan'; - - @override - String get extensionAuthor => 'Pembuat'; - - @override - String get extensionId => 'ID'; - - @override - String get extensionError => 'Error'; - - @override - String get extensionCapabilities => 'Kemampuan'; - - @override - String get extensionMetadataProvider => 'Provider Metadata'; - - @override - String get extensionDownloadProvider => 'Provider Unduhan'; - - @override - String get extensionLyricsProvider => 'Provider Lirik'; - - @override - String get extensionUrlHandler => 'Penanganan URL'; - - @override - String get extensionQualityOptions => 'Opsi Kualitas'; - - @override - String get extensionPostProcessingHooks => 'Hook Pasca-Pemrosesan'; - - @override - String get extensionPermissions => 'Izin'; - - @override - String get extensionSettings => 'Pengaturan'; - - @override - String get extensionRemoveButton => 'Hapus Ekstensi'; - - @override - String get extensionUpdated => 'Diperbarui'; - - @override - String get extensionMinAppVersion => 'Versi App Minimum'; - - @override - String get extensionCustomTrackMatching => 'Pencocokan Lagu Kustom'; - - @override - String get extensionPostProcessing => 'Pasca-Pemrosesan'; - - @override - String extensionHooksAvailable(int count) { - return '$count hook tersedia'; - } - - @override - String extensionPatternsCount(int count) { - return '$count pola'; - } - - @override - String extensionStrategy(String strategy) { - return 'Strategi: $strategy'; - } - - @override - String get extensionsProviderPrioritySection => 'Prioritas Provider'; - - @override - String get extensionsInstalledSection => 'Ekstensi Terpasang'; - - @override - String get extensionsNoExtensions => 'Tidak ada ekstensi terpasang'; - - @override - String get extensionsNoExtensionsSubtitle => - 'Pasang file .spotiflac-ext untuk menambahkan provider baru'; - - @override - String get extensionsInstallButton => 'Pasang Ekstensi'; - - @override - String get extensionsInfoTip => - 'Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.'; - - @override - String get extensionsInstalledSuccess => 'Ekstensi berhasil dipasang'; - - @override - String get extensionsDownloadPriority => 'Prioritas Unduhan'; - - @override - String get extensionsDownloadPrioritySubtitle => - 'Atur urutan layanan unduhan'; - - @override - String get extensionsNoDownloadProvider => - 'Tidak ada ekstensi dengan provider unduhan'; - - @override - String get extensionsMetadataPriority => 'Prioritas Metadata'; - - @override - String get extensionsMetadataPrioritySubtitle => - 'Atur urutan sumber pencarian & metadata'; - - @override - String get extensionsNoMetadataProvider => - 'Tidak ada ekstensi dengan provider metadata'; - - @override - String get extensionsSearchProvider => 'Provider Pencarian'; - - @override - String get extensionsNoCustomSearch => - 'Tidak ada ekstensi dengan pencarian kustom'; - - @override - String get extensionsSearchProviderDescription => - 'Pilih layanan yang digunakan untuk mencari lagu'; - - @override - String get extensionsCustomSearch => 'Pencarian kustom'; - - @override - String get extensionsErrorLoading => 'Error memuat ekstensi'; - - @override - String get qualityFlacLossless => 'FLAC Lossless'; - - @override - String get qualityFlacLosslessSubtitle => '16-bit / 44.1kHz'; - - @override - String get qualityHiResFlac => 'Hi-Res FLAC'; - - @override - String get qualityHiResFlacSubtitle => '24-bit / hingga 96kHz'; - - @override - String get qualityHiResFlacMax => 'Hi-Res FLAC Max'; - - @override - String get qualityHiResFlacMaxSubtitle => '24-bit / hingga 192kHz'; - - @override - String get qualityLossy => 'Lossy'; - - @override - String get qualityLossyMp3Subtitle => 'MP3 320kbps (converted from FLAC)'; - - @override - String get qualityLossyOpusSubtitle => 'Opus 128kbps (converted from FLAC)'; - - @override - String get enableLossyOption => 'Enable Lossy Option'; - - @override - String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; - - @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; - - @override - String get lossyFormat => 'Lossy Format'; - - @override - String get lossyFormatDescription => 'Choose the lossy format for conversion'; - - @override - String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; - - @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; - - @override - String get qualityNote => - 'Kualitas sebenarnya tergantung ketersediaan lagu dari layanan'; - - @override - String get downloadAskBeforeDownload => 'Tanya Sebelum Unduh'; - - @override - String get downloadDirectory => 'Direktori Unduhan'; - - @override - String get downloadSeparateSinglesFolder => 'Folder Singles Terpisah'; - - @override - String get downloadAlbumFolderStructure => 'Struktur Folder Album'; - - @override - String get downloadSaveFormat => 'Simpan Format'; - - @override - String get downloadSelectService => 'Pilih Layanan'; - - @override - String get downloadSelectQuality => 'Pilih Kualitas'; - - @override - String get downloadFrom => 'Unduh Dari'; - - @override - String get downloadDefaultQualityLabel => 'Kualitas Default'; - - @override - String get downloadBestAvailable => 'Terbaik tersedia'; - - @override - String get folderNone => 'Tidak ada'; - - @override - String get folderNoneSubtitle => - 'Simpan semua file langsung ke folder unduhan'; - - @override - String get folderArtist => 'Artis'; - - @override - String get folderArtistSubtitle => 'Nama Artis/namafile'; - - @override - String get folderAlbum => 'Album'; - - @override - String get folderAlbumSubtitle => 'Nama Album/namafile'; - - @override - String get folderArtistAlbum => 'Artis/Album'; - - @override - String get folderArtistAlbumSubtitle => 'Nama Artis/Nama Album/namafile'; - - @override - String get serviceTidal => 'Tidal'; - - @override - String get serviceQobuz => 'Qobuz'; - - @override - String get serviceAmazon => 'Amazon'; - - @override - String get serviceDeezer => 'Deezer'; - - @override - String get serviceSpotify => 'Spotify'; - - @override - String get appearanceAmoledDark => 'AMOLED Gelap'; - - @override - String get appearanceAmoledDarkSubtitle => 'Latar belakang hitam murni'; - - @override - String get appearanceChooseAccentColor => 'Pilih Warna Aksen'; - - @override - String get appearanceChooseTheme => 'Mode Tema'; - - @override - String get queueTitle => 'Antrian Unduhan'; - - @override - String get queueClearAll => 'Hapus Semua'; - - @override - String get queueClearAllMessage => - 'Apakah Anda yakin ingin menghapus semua unduhan?'; - - @override - String get queueExportFailed => 'Export'; - - @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; - - @override - String get queueExportFailedClear => 'Clear Failed'; - - @override - String get queueExportFailedError => 'Failed to export downloads'; - - @override - String get settingsAutoExportFailed => 'Auto-export failed downloads'; - - @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; - - @override - String get settingsDownloadNetwork => 'Download Network'; - - @override - String get settingsDownloadNetworkAny => 'WiFi + Mobile Data'; - - @override - String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; - - @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; - - @override - String get queueEmpty => 'Tidak ada unduhan dalam antrian'; - - @override - String get queueEmptySubtitle => 'Tambahkan lagu dari layar beranda'; - - @override - String get queueClearCompleted => 'Hapus yang selesai'; - - @override - String get queueDownloadFailed => 'Unduhan Gagal'; - - @override - String get queueTrackLabel => 'Lagu:'; - - @override - String get queueArtistLabel => 'Artis:'; - - @override - String get queueErrorLabel => 'Error:'; - - @override - String get queueUnknownError => 'Error tidak diketahui'; - - @override - String get albumFolderArtistAlbum => 'Artis / Album'; - - @override - String get albumFolderArtistAlbumSubtitle => 'Albums/Nama Artis/Nama Album/'; - - @override - String get albumFolderArtistYearAlbum => 'Artis / [Tahun] Album'; - - @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Nama Artis/[2005] Nama Album/'; - - @override - String get albumFolderAlbumOnly => 'Album Saja'; - - @override - String get albumFolderAlbumOnlySubtitle => 'Albums/Nama Album/'; - - @override - String get albumFolderYearAlbum => '[Tahun] Album'; - - @override - String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Nama Album/'; - - @override - String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; - - @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; - - @override - String get downloadedAlbumDeleteSelected => 'Hapus yang Dipilih'; - - @override - String downloadedAlbumDeleteMessage(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'lagu', - one: 'lagu', - ); - return 'Hapus $count $_temp0 dari album ini?\n\nIni juga akan menghapus file dari penyimpanan.'; - } - - @override - String get downloadedAlbumTracksHeader => 'Lagu'; - - @override - String downloadedAlbumDownloadedCount(int count) { - return '$count diunduh'; - } - - @override - String downloadedAlbumSelectedCount(int count) { - return '$count dipilih'; - } - - @override - String get downloadedAlbumAllSelected => 'Semua lagu dipilih'; - - @override - String get downloadedAlbumTapToSelect => 'Ketuk lagu untuk memilih'; - - @override - String downloadedAlbumDeleteCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'lagu', - one: 'lagu', - ); - return 'Hapus $count $_temp0'; - } - - @override - String get downloadedAlbumSelectToDelete => 'Pilih lagu untuk dihapus'; - - @override - String downloadedAlbumDiscHeader(int discNumber) { - return 'Disc $discNumber'; - } - - @override - String get utilityFunctions => 'Fungsi Utilitas'; - - @override - String get recentTypeArtist => 'Artis'; - - @override - String get recentTypeAlbum => 'Album'; - - @override - String get recentTypeSong => 'Lagu'; - - @override - String get recentTypePlaylist => 'Playlist'; - - @override - String recentPlaylistInfo(String name) { - return 'Playlist: $name'; - } - - @override - String errorGeneric(String message) { - return 'Error: $message'; - } - - @override - String get discographyDownload => 'Download Discography'; - - @override - String get discographyDownloadAll => 'Unduh Semua'; - - @override - String discographyDownloadAllSubtitle(int count, int albumCount) { - return '$count tracks from $albumCount releases'; - } - - @override - String get discographyAlbumsOnly => 'Albums Only'; - - @override - String discographyAlbumsOnlySubtitle(int count, int albumCount) { - return '$count tracks from $albumCount albums'; - } - - @override - String get discographySinglesOnly => 'Singles & EPs Only'; - - @override - String discographySinglesOnlySubtitle(int count, int albumCount) { - return '$count tracks from $albumCount singles'; - } - - @override - String get discographySelectAlbums => 'Select Albums...'; - - @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; - - @override - String get discographyFetchingTracks => 'Fetching tracks...'; - - @override - String discographyFetchingAlbum(int current, int total) { - return 'Fetching $current of $total...'; - } - - @override - String discographySelectedCount(int count) { - return '$count selected'; - } - - @override - String get discographyDownloadSelected => 'Download Selected'; - - @override - String discographyAddedToQueue(int count) { - return 'Added $count tracks to queue'; - } - - @override - String discographySkippedDownloaded(int added, int skipped) { - return '$added added, $skipped already downloaded'; - } - - @override - String get discographyNoAlbums => 'No albums available'; - - @override - String get discographyFailedToFetch => 'Failed to fetch some albums'; - - @override - String get sectionStorageAccess => 'Storage Access'; - - @override - String get allFilesAccess => 'All Files Access'; - - @override - String get allFilesAccessEnabledSubtitle => 'Can write to any folder'; - - @override - String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; - - @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; - - @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; - - @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; - - @override - String get settingsLocalLibrary => 'Local Library'; - - @override - String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates'; - - @override - String get libraryTitle => 'Local Library'; - - @override - String get libraryStatus => 'Library Status'; - - @override - String get libraryScanSettings => 'Scan Settings'; - - @override - String get libraryEnableLocalLibrary => 'Enable Local Library'; - - @override - String get libraryEnableLocalLibrarySubtitle => - 'Scan and track your existing music'; - - @override - String get libraryFolder => 'Library Folder'; - - @override - String get libraryFolderHint => 'Tap to select folder'; - - @override - String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator'; - - @override - String get libraryShowDuplicateIndicatorSubtitle => - 'Show when searching for existing tracks'; - - @override - String get libraryActions => 'Actions'; - - @override - String get libraryScan => 'Scan Library'; - - @override - String get libraryScanSubtitle => 'Scan for audio files'; - - @override - String get libraryScanSelectFolderFirst => 'Select a folder first'; - - @override - String get libraryCleanupMissingFiles => 'Cleanup Missing Files'; - - @override - String get libraryCleanupMissingFilesSubtitle => - 'Remove entries for files that no longer exist'; - - @override - String get libraryClear => 'Clear Library'; - - @override - String get libraryClearSubtitle => 'Remove all scanned tracks'; - - @override - String get libraryClearConfirmTitle => 'Clear Library'; - - @override - String get libraryClearConfirmMessage => - 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.'; - - @override - String get libraryAbout => 'About Local Library'; - - @override - String get libraryAboutDescription => - 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.'; - - @override - String libraryTracksCount(int count) { - return '$count tracks'; - } - - @override - String libraryLastScanned(String time) { - return 'Last scanned: $time'; - } - - @override - String get libraryLastScannedNever => 'Never'; - - @override - String get libraryScanning => 'Scanning...'; - - @override - String libraryScanProgress(String progress, int total) { - return '$progress% of $total files'; - } - - @override - String get libraryInLibrary => 'In Library'; - - @override - String libraryRemovedMissingFiles(int count) { - return 'Removed $count missing files from library'; - } - - @override - String get libraryCleared => 'Library cleared'; - - @override - String get libraryStorageAccessRequired => 'Storage Access Required'; - - @override - String get libraryStorageAccessMessage => - 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.'; - - @override - String get libraryFolderNotExist => 'Selected folder does not exist'; - - @override - String get librarySourceDownloaded => 'Downloaded'; - - @override - String get librarySourceLocal => 'Local'; - - @override - String get libraryFilterAll => 'All'; - - @override - String get libraryFilterDownloaded => 'Downloaded'; - - @override - String get libraryFilterLocal => 'Local'; - - @override - String get libraryFilterTitle => 'Filters'; - - @override - String get libraryFilterReset => 'Reset'; - - @override - String get libraryFilterApply => 'Apply'; - - @override - String get libraryFilterSource => 'Source'; - - @override - String get libraryFilterQuality => 'Quality'; - - @override - String get libraryFilterQualityHiRes => 'Hi-Res (24bit)'; - - @override - String get libraryFilterQualityCD => 'CD (16bit)'; - - @override - String get libraryFilterQualityLossy => 'Lossy'; - - @override - String get libraryFilterFormat => 'Format'; - - @override - String get libraryFilterDate => 'Date Added'; - - @override - String get libraryFilterDateToday => 'Today'; - - @override - String get libraryFilterDateWeek => 'This Week'; - - @override - String get libraryFilterDateMonth => 'This Month'; - - @override - String get libraryFilterDateYear => 'This Year'; - - @override - String libraryFilterActive(int count) { - return '$count filter(s) active'; - } - - @override - String get timeJustNow => 'Just now'; - - @override - String timeMinutesAgo(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count minutes ago', - one: '1 minute ago', - ); - return '$_temp0'; - } - - @override - String timeHoursAgo(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '$count hours ago', - one: '1 hour ago', - ); - return '$_temp0'; - } - - @override - String get storageSwitchTitle => 'Switch Storage Mode'; - - @override - String get storageSwitchToSafTitle => 'Switch to SAF Storage?'; - - @override - String get storageSwitchToAppTitle => 'Switch to App Storage?'; - - @override - String get storageSwitchToSafMessage => - 'Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.'; - - @override - String get storageSwitchToAppMessage => - 'Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.'; - - @override - String get storageSwitchExistingDownloads => 'Existing Downloads'; - - @override - String storageSwitchExistingDownloadsInfo(int count, String mode) { - return '$count tracks in $mode storage'; - } - - @override - String get storageSwitchNewDownloads => 'New Downloads'; - - @override - String storageSwitchNewDownloadsLocation(String location) { - return 'Will be saved to: $location'; - } - - @override - String get storageSwitchContinue => 'Continue'; - - @override - String get storageSwitchSelectFolder => 'Select SAF Folder'; - - @override - String get storageAppStorage => 'App Storage'; - - @override - String get storageSafStorage => 'SAF Storage'; - - @override - String storageModeBadge(String mode) { - return 'Storage: $mode'; - } - - @override - String get storageStatsTitle => 'Storage Statistics'; - - @override - String storageStatsAppCount(int count) { - return '$count tracks in App Storage'; - } - - @override - String storageStatsSafCount(int count) { - return '$count tracks in SAF Storage'; - } - - @override - String get storageModeInfo => 'Your files are stored in multiple locations'; - - @override - String get tutorialWelcomeTitle => 'Selamat Datang di SpotiFLAC!'; - - @override - String get tutorialWelcomeDesc => - 'Mari pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.'; - - @override - String get tutorialWelcomeTip1 => - 'Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung'; - - @override - String get tutorialWelcomeTip2 => - 'Dapatkan audio kualitas FLAC dari Tidal, Qobuz, atau Amazon Music'; - - @override - String get tutorialWelcomeTip3 => - 'Metadata, cover art, dan lirik otomatis tertanam'; - - @override - String get tutorialSearchTitle => 'Mencari Musik'; - - @override - String get tutorialSearchDesc => - 'Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.'; - - @override - String get tutorialSearchTip1 => - 'Tempel URL Spotify atau Deezer langsung di kotak pencarian'; - - @override - String get tutorialSearchTip2 => - 'Atau ketik nama lagu, artis, atau album untuk mencari'; - - @override - String get tutorialSearchTip3 => - 'Mendukung lagu, album, playlist, dan halaman artis'; - - @override - String get tutorialDownloadTitle => 'Mengunduh Musik'; - - @override - String get tutorialDownloadDesc => - 'Mengunduh musik itu mudah dan cepat. Begini caranya.'; - - @override - String get tutorialDownloadTip1 => - 'Ketuk tombol unduh di samping lagu mana pun untuk mulai mengunduh'; - - @override - String get tutorialDownloadTip2 => - 'Pilih kualitas yang Anda inginkan (FLAC, Hi-Res, atau MP3)'; - - @override - String get tutorialDownloadTip3 => - 'Unduh seluruh album atau playlist dengan satu ketukan'; - - @override - String get tutorialLibraryTitle => 'Perpustakaan Anda'; - - @override - String get tutorialLibraryDesc => - 'Semua musik yang Anda unduh terorganisir di tab Perpustakaan.'; - - @override - String get tutorialLibraryTip1 => - 'Lihat progres unduhan dan antrian di tab Perpustakaan'; - - @override - String get tutorialLibraryTip2 => - 'Ketuk lagu mana pun untuk memutarnya dengan pemutar musik'; - - @override - String get tutorialLibraryTip3 => - 'Beralih antara tampilan daftar dan grid untuk penjelajahan lebih baik'; - - @override - String get tutorialExtensionsTitle => 'Ekstensi'; - - @override - String get tutorialExtensionsDesc => - 'Tingkatkan kemampuan aplikasi dengan ekstensi komunitas.'; - - @override - String get tutorialExtensionsTip1 => - 'Jelajahi tab Toko untuk menemukan ekstensi berguna'; - - @override - String get tutorialExtensionsTip2 => - 'Tambahkan provider unduhan atau sumber pencarian baru'; - - @override - String get tutorialExtensionsTip3 => - 'Dapatkan lirik, metadata lebih baik, dan fitur lainnya'; - - @override - String get tutorialSettingsTitle => 'Sesuaikan Pengalaman Anda'; - - @override - String get tutorialSettingsDesc => - 'Personalisasi aplikasi di Pengaturan sesuai preferensi Anda.'; - - @override - String get tutorialSettingsTip1 => - 'Ubah lokasi unduhan dan organisasi folder'; - - @override - String get tutorialSettingsTip2 => - 'Atur kualitas audio dan preferensi format default'; - - @override - String get tutorialSettingsTip3 => 'Sesuaikan tema dan tampilan aplikasi'; - - @override - String get tutorialReadyMessage => - 'Anda siap! Mulai unduh musik favorit Anda sekarang.'; - - @override - String get tutorialExample => 'CONTOH'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Indonesian (`id`). +class AppLocalizationsId extends AppLocalizations { + AppLocalizationsId([String locale = 'id']) : super(locale); + + @override + String get appName => 'SpotiFLAC'; + + @override + String get appDescription => + 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; + + @override + String get navHome => 'Beranda'; + + @override + String get navLibrary => 'Library'; + + @override + String get navHistory => 'Riwayat'; + + @override + String get navSettings => 'Pengaturan'; + + @override + String get navStore => 'Toko'; + + @override + String get homeTitle => 'Beranda'; + + @override + String get homeSearchHint => 'Tempel URL Spotify atau cari...'; + + @override + String homeSearchHintExtension(String extensionName) { + return 'Cari dengan $extensionName...'; + } + + @override + String get homeSubtitle => 'Tempel link Spotify atau cari berdasarkan nama'; + + @override + String get homeSupports => 'Mendukung: URL Track, Album, Playlist, Artis'; + + @override + String get homeRecent => 'Terbaru'; + + @override + String get historyTitle => 'Riwayat'; + + @override + String historyDownloading(int count) { + return 'Mengunduh ($count)'; + } + + @override + String get historyDownloaded => 'Terunduh'; + + @override + String get historyFilterAll => 'Semua'; + + @override + String get historyFilterAlbums => 'Album'; + + @override + String get historyFilterSingles => 'Single'; + + @override + String historyTracksCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count lagu', + one: '1 lagu', + ); + return '$_temp0'; + } + + @override + String historyAlbumsCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count album', + one: '1 album', + ); + return '$_temp0'; + } + + @override + String get historyNoDownloads => 'Tidak ada riwayat unduhan'; + + @override + String get historyNoDownloadsSubtitle => + 'Lagu yang diunduh akan muncul di sini'; + + @override + String get historyNoAlbums => 'Tidak ada unduhan album'; + + @override + String get historyNoAlbumsSubtitle => + 'Unduh beberapa lagu dari album untuk melihatnya di sini'; + + @override + String get historyNoSingles => 'Tidak ada unduhan single'; + + @override + String get historyNoSinglesSubtitle => + 'Unduhan lagu satuan akan muncul di sini'; + + @override + String get historySearchHint => 'Search history...'; + + @override + String get settingsTitle => 'Pengaturan'; + + @override + String get settingsDownload => 'Unduhan'; + + @override + String get settingsAppearance => 'Tampilan'; + + @override + String get settingsOptions => 'Opsi'; + + @override + String get settingsExtensions => 'Ekstensi'; + + @override + String get settingsAbout => 'Tentang'; + + @override + String get downloadTitle => 'Unduhan'; + + @override + String get downloadLocation => 'Lokasi Unduhan'; + + @override + String get downloadLocationSubtitle => 'Pilih tempat menyimpan file'; + + @override + String get downloadLocationDefault => 'Lokasi default'; + + @override + String get downloadDefaultService => 'Layanan Default'; + + @override + String get downloadDefaultServiceSubtitle => + 'Layanan yang digunakan untuk unduhan'; + + @override + String get downloadDefaultQuality => 'Kualitas Default'; + + @override + String get downloadAskQuality => 'Tanya Kualitas Sebelum Unduh'; + + @override + String get downloadAskQualitySubtitle => + 'Tampilkan pemilih kualitas untuk setiap unduhan'; + + @override + String get downloadFilenameFormat => 'Format Nama File'; + + @override + String get downloadFolderOrganization => 'Organisasi Folder'; + + @override + String get downloadSeparateSingles => 'Pisahkan Single'; + + @override + String get downloadSeparateSinglesSubtitle => + 'Letakkan lagu satuan di folder terpisah'; + + @override + String get qualityBest => 'Terbaik'; + + @override + String get qualityFlac => 'FLAC'; + + @override + String get quality320 => '320 kbps'; + + @override + String get quality128 => '128 kbps'; + + @override + String get appearanceTitle => 'Tampilan'; + + @override + String get appearanceTheme => 'Tema'; + + @override + String get appearanceThemeSystem => 'Sistem'; + + @override + String get appearanceThemeLight => 'Terang'; + + @override + String get appearanceThemeDark => 'Gelap'; + + @override + String get appearanceDynamicColor => 'Warna Dinamis'; + + @override + String get appearanceDynamicColorSubtitle => + 'Gunakan warna dari wallpaper Anda'; + + @override + String get appearanceAccentColor => 'Warna Aksen'; + + @override + String get appearanceHistoryView => 'Tampilan Riwayat'; + + @override + String get appearanceHistoryViewList => 'Daftar'; + + @override + String get appearanceHistoryViewGrid => 'Grid'; + + @override + String get optionsTitle => 'Opsi'; + + @override + String get optionsSearchSource => 'Sumber Pencarian'; + + @override + String get optionsPrimaryProvider => 'Provider Utama'; + + @override + String get optionsPrimaryProviderSubtitle => + 'Layanan yang digunakan saat mencari berdasarkan nama lagu.'; + + @override + String optionsUsingExtension(String extensionName) { + return 'Menggunakan ekstensi: $extensionName'; + } + + @override + String get optionsSwitchBack => + 'Ketuk Deezer atau Spotify untuk beralih dari ekstensi'; + + @override + String get optionsAutoFallback => 'Auto Fallback'; + + @override + String get optionsAutoFallbackSubtitle => + 'Coba layanan lain jika unduhan gagal'; + + @override + String get optionsUseExtensionProviders => 'Gunakan Provider Ekstensi'; + + @override + String get optionsUseExtensionProvidersOn => + 'Ekstensi akan dicoba terlebih dahulu'; + + @override + String get optionsUseExtensionProvidersOff => + 'Hanya menggunakan provider bawaan'; + + @override + String get optionsEmbedLyrics => 'Sematkan Lirik'; + + @override + String get optionsEmbedLyricsSubtitle => + 'Sematkan lirik sinkron ke file FLAC'; + + @override + String get optionsMaxQualityCover => 'Cover Kualitas Maksimal'; + + @override + String get optionsMaxQualityCoverSubtitle => + 'Unduh cover art resolusi tertinggi'; + + @override + String get optionsConcurrentDownloads => 'Unduhan Bersamaan'; + + @override + String get optionsConcurrentSequential => 'Berurutan (1 per waktu)'; + + @override + String optionsConcurrentParallel(int count) { + return '$count unduhan paralel'; + } + + @override + String get optionsConcurrentWarning => + 'Unduhan paralel dapat memicu pembatasan rate'; + + @override + String get optionsExtensionStore => 'Toko Ekstensi'; + + @override + String get optionsExtensionStoreSubtitle => 'Tampilkan tab Toko di navigasi'; + + @override + String get optionsCheckUpdates => 'Periksa Pembaruan'; + + @override + String get optionsCheckUpdatesSubtitle => 'Beritahu saat versi baru tersedia'; + + @override + String get optionsUpdateChannel => 'Saluran Pembaruan'; + + @override + String get optionsUpdateChannelStable => 'Hanya rilis stabil'; + + @override + String get optionsUpdateChannelPreview => 'Dapatkan rilis preview'; + + @override + String get optionsUpdateChannelWarning => + 'Preview mungkin mengandung bug atau fitur belum lengkap'; + + @override + String get optionsClearHistory => 'Hapus Riwayat Unduhan'; + + @override + String get optionsClearHistorySubtitle => 'Hapus semua lagu dari riwayat'; + + @override + String get optionsDetailedLogging => 'Log Detail'; + + @override + String get optionsDetailedLoggingOn => 'Log detail sedang direkam'; + + @override + String get optionsDetailedLoggingOff => 'Aktifkan untuk laporan bug'; + + @override + String get optionsSpotifyCredentials => 'Kredensial Spotify'; + + @override + String optionsSpotifyCredentialsConfigured(String clientId) { + return 'Client ID: $clientId...'; + } + + @override + String get optionsSpotifyCredentialsRequired => + 'Diperlukan - ketuk untuk mengatur'; + + @override + String get optionsSpotifyWarning => + 'Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com'; + + @override + String get extensionsTitle => 'Ekstensi'; + + @override + String get extensionsInstalled => 'Ekstensi Terpasang'; + + @override + String get extensionsNone => 'Tidak ada ekstensi terpasang'; + + @override + String get extensionsNoneSubtitle => 'Pasang ekstensi dari tab Toko'; + + @override + String get extensionsEnabled => 'Aktif'; + + @override + String get extensionsDisabled => 'Nonaktif'; + + @override + String extensionsVersion(String version) { + return 'Versi $version'; + } + + @override + String extensionsAuthor(String author) { + return 'oleh $author'; + } + + @override + String get extensionsUninstall => 'Copot'; + + @override + String get extensionsSetAsSearch => 'Jadikan Provider Pencarian'; + + @override + String get storeTitle => 'Toko Ekstensi'; + + @override + String get storeSearch => 'Cari ekstensi...'; + + @override + String get storeInstall => 'Pasang'; + + @override + String get storeInstalled => 'Terpasang'; + + @override + String get storeUpdate => 'Perbarui'; + + @override + String get aboutTitle => 'Tentang'; + + @override + String get aboutContributors => 'Kontributor'; + + @override + String get aboutMobileDeveloper => 'Pengembang versi mobile'; + + @override + String get aboutOriginalCreator => 'Pembuat SpotiFLAC asli'; + + @override + String get aboutLogoArtist => + 'Seniman berbakat yang membuat logo aplikasi kita yang indah!'; + + @override + String get aboutTranslators => 'Translators'; + + @override + String get aboutSpecialThanks => 'Terima Kasih Khusus'; + + @override + String get aboutLinks => 'Tautan'; + + @override + String get aboutMobileSource => 'Kode sumber mobile'; + + @override + String get aboutPCSource => 'Kode sumber PC'; + + @override + String get aboutReportIssue => 'Laporkan masalah'; + + @override + String get aboutReportIssueSubtitle => 'Laporkan masalah yang Anda temui'; + + @override + String get aboutFeatureRequest => 'Permintaan fitur'; + + @override + String get aboutFeatureRequestSubtitle => + 'Sarankan fitur baru untuk aplikasi'; + + @override + String get aboutTelegramChannel => 'Telegram Channel'; + + @override + String get aboutTelegramChannelSubtitle => 'Announcements and updates'; + + @override + String get aboutTelegramChat => 'Telegram Community'; + + @override + String get aboutTelegramChatSubtitle => 'Chat with other users'; + + @override + String get aboutSocial => 'Social'; + + @override + String get aboutSupport => 'Dukungan'; + + @override + String get aboutBuyMeCoffee => 'Belikan saya kopi'; + + @override + String get aboutBuyMeCoffeeSubtitle => 'Dukung pengembangan di Ko-fi'; + + @override + String get aboutApp => 'Aplikasi'; + + @override + String get aboutVersion => 'Versi'; + + @override + String get aboutBinimumDesc => + 'Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!'; + + @override + String get aboutSachinsenalDesc => + 'Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!'; + + @override + String get aboutSjdonadoDesc => + 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + + @override + String get aboutDoubleDouble => 'DoubleDouble'; + + @override + String get aboutDoubleDoubleDesc => + 'API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!'; + + @override + String get aboutDabMusic => 'DAB Music'; + + @override + String get aboutDabMusicDesc => + 'API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!'; + + @override + String get aboutAppDescription => + 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; + + @override + String get albumTitle => 'Album'; + + @override + String albumTracks(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count lagu', + one: '1 lagu', + ); + return '$_temp0'; + } + + @override + String get albumDownloadAll => 'Unduh Semua'; + + @override + String get albumDownloadRemaining => 'Unduh Sisanya'; + + @override + String get playlistTitle => 'Playlist'; + + @override + String get artistTitle => 'Artis'; + + @override + String get artistAlbums => 'Album'; + + @override + String get artistSingles => 'Single & EP'; + + @override + String get artistCompilations => 'Kompilasi'; + + @override + String artistReleases(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count rilis', + one: '1 rilis', + ); + return '$_temp0'; + } + + @override + String get artistPopular => 'Populer'; + + @override + String artistMonthlyListeners(String count) { + return '$count pendengar bulanan'; + } + + @override + String get trackMetadataTitle => 'Info Lagu'; + + @override + String get trackMetadataArtist => 'Artis'; + + @override + String get trackMetadataAlbum => 'Album'; + + @override + String get trackMetadataDuration => 'Durasi'; + + @override + String get trackMetadataQuality => 'Kualitas'; + + @override + String get trackMetadataPath => 'Lokasi File'; + + @override + String get trackMetadataDownloadedAt => 'Diunduh'; + + @override + String get trackMetadataService => 'Layanan'; + + @override + String get trackMetadataPlay => 'Putar'; + + @override + String get trackMetadataShare => 'Bagikan'; + + @override + String get trackMetadataDelete => 'Hapus'; + + @override + String get trackMetadataRedownload => 'Unduh ulang'; + + @override + String get trackMetadataOpenFolder => 'Buka Folder'; + + @override + String get setupTitle => 'Selamat Datang di SpotiFLAC'; + + @override + String get setupSubtitle => 'Mari mulai pengaturan'; + + @override + String get setupStoragePermission => 'Izin Penyimpanan'; + + @override + String get setupStoragePermissionSubtitle => + 'Diperlukan untuk menyimpan file unduhan'; + + @override + String get setupStoragePermissionGranted => 'Izin diberikan'; + + @override + String get setupStoragePermissionDenied => 'Izin ditolak'; + + @override + String get setupGrantPermission => 'Berikan Izin'; + + @override + String get setupDownloadLocation => 'Lokasi Unduhan'; + + @override + String get setupChooseFolder => 'Pilih Folder'; + + @override + String get setupContinue => 'Lanjutkan'; + + @override + String get setupSkip => 'Lewati untuk sekarang'; + + @override + String get setupStorageAccessRequired => 'Akses Penyimpanan Diperlukan'; + + @override + String get setupStorageAccessMessage => + 'SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.'; + + @override + String get setupStorageAccessMessageAndroid11 => + 'Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.'; + + @override + String get setupOpenSettings => 'Buka Pengaturan'; + + @override + String get setupPermissionDeniedMessage => + 'Izin ditolak. Harap berikan semua izin untuk melanjutkan.'; + + @override + String setupPermissionRequired(String permissionType) { + return 'Izin $permissionType Diperlukan'; + } + + @override + String setupPermissionRequiredMessage(String permissionType) { + return 'Izin $permissionType diperlukan untuk pengalaman terbaik. Anda dapat mengubahnya nanti di Pengaturan.'; + } + + @override + String get setupSelectDownloadFolder => 'Pilih Folder Unduhan'; + + @override + String get setupUseDefaultFolder => 'Gunakan Folder Default?'; + + @override + String get setupNoFolderSelected => + 'Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?'; + + @override + String get setupUseDefault => 'Gunakan Default'; + + @override + String get setupDownloadLocationTitle => 'Lokasi Unduhan'; + + @override + String get setupDownloadLocationIosMessage => + 'Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.'; + + @override + String get setupAppDocumentsFolder => 'Folder Documents Aplikasi'; + + @override + String get setupAppDocumentsFolderSubtitle => + 'Direkomendasikan - dapat diakses via aplikasi Files'; + + @override + String get setupChooseFromFiles => 'Pilih dari Files'; + + @override + String get setupChooseFromFilesSubtitle => 'Pilih lokasi iCloud atau lainnya'; + + @override + String get setupIosEmptyFolderWarning => + 'Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.'; + + @override + String get setupIcloudNotSupported => + 'iCloud Drive is not supported. Please use the app Documents folder.'; + + @override + String get setupDownloadInFlac => 'Unduh lagu Spotify dalam format FLAC'; + + @override + String get setupStepStorage => 'Penyimpanan'; + + @override + String get setupStepNotification => 'Notifikasi'; + + @override + String get setupStepFolder => 'Folder'; + + @override + String get setupStepSpotify => 'Spotify'; + + @override + String get setupStepPermission => 'Izin'; + + @override + String get setupStorageGranted => 'Izin Penyimpanan Diberikan!'; + + @override + String get setupStorageRequired => 'Izin Penyimpanan Diperlukan'; + + @override + String get setupStorageDescription => + 'SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.'; + + @override + String get setupNotificationGranted => 'Izin Notifikasi Diberikan!'; + + @override + String get setupNotificationEnable => 'Aktifkan Notifikasi'; + + @override + String get setupNotificationDescription => + 'Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.'; + + @override + String get setupFolderSelected => 'Folder Unduhan Dipilih!'; + + @override + String get setupFolderChoose => 'Pilih Folder Unduhan'; + + @override + String get setupFolderDescription => + 'Pilih folder tempat musik yang diunduh akan disimpan.'; + + @override + String get setupChangeFolder => 'Ubah Folder'; + + @override + String get setupSelectFolder => 'Pilih Folder'; + + @override + String get setupSpotifyApiOptional => 'Spotify API (Opsional)'; + + @override + String get setupSpotifyApiDescription => + 'Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.'; + + @override + String get setupUseSpotifyApi => 'Gunakan Spotify API'; + + @override + String get setupEnterCredentialsBelow => 'Masukkan kredensial Anda di bawah'; + + @override + String get setupUsingDeezer => 'Menggunakan Deezer (tidak perlu akun)'; + + @override + String get setupEnterClientId => 'Masukkan Spotify Client ID'; + + @override + String get setupEnterClientSecret => 'Masukkan Spotify Client Secret'; + + @override + String get setupGetFreeCredentials => + 'Dapatkan kredensial API gratis dari Spotify Developer Dashboard.'; + + @override + String get setupEnableNotifications => 'Aktifkan Notifikasi'; + + @override + String get setupProceedToNextStep => + 'Anda dapat melanjutkan ke langkah berikutnya.'; + + @override + String get setupNotificationProgressDescription => + 'Anda akan menerima notifikasi progres unduhan.'; + + @override + String get setupNotificationBackgroundDescription => + 'Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.'; + + @override + String get setupSkipForNow => 'Lewati untuk sekarang'; + + @override + String get setupBack => 'Kembali'; + + @override + String get setupNext => 'Lanjut'; + + @override + String get setupGetStarted => 'Mulai'; + + @override + String get setupSkipAndStart => 'Lewati & Mulai'; + + @override + String get setupAllowAccessToManageFiles => + 'Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.'; + + @override + String get setupGetCredentialsFromSpotify => + 'Dapatkan kredensial dari developer.spotify.com'; + + @override + String get dialogCancel => 'Batal'; + + @override + String get dialogOk => 'OK'; + + @override + String get dialogSave => 'Simpan'; + + @override + String get dialogDelete => 'Hapus'; + + @override + String get dialogRetry => 'Coba Lagi'; + + @override + String get dialogClose => 'Tutup'; + + @override + String get dialogYes => 'Ya'; + + @override + String get dialogNo => 'Tidak'; + + @override + String get dialogClear => 'Hapus'; + + @override + String get dialogConfirm => 'Konfirmasi'; + + @override + String get dialogDone => 'Selesai'; + + @override + String get dialogImport => 'Impor'; + + @override + String get dialogDiscard => 'Buang'; + + @override + String get dialogRemove => 'Hapus'; + + @override + String get dialogUninstall => 'Copot'; + + @override + String get dialogDiscardChanges => 'Buang Perubahan?'; + + @override + String get dialogUnsavedChanges => + 'Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?'; + + @override + String get dialogDownloadFailed => 'Unduhan Gagal'; + + @override + String get dialogTrackLabel => 'Lagu:'; + + @override + String get dialogArtistLabel => 'Artis:'; + + @override + String get dialogErrorLabel => 'Error:'; + + @override + String get dialogClearAll => 'Hapus Semua'; + + @override + String get dialogClearAllDownloads => + 'Apakah Anda yakin ingin menghapus semua unduhan?'; + + @override + String get dialogRemoveFromDevice => 'Hapus dari perangkat?'; + + @override + String get dialogRemoveExtension => 'Hapus Ekstensi'; + + @override + String get dialogRemoveExtensionMessage => + 'Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.'; + + @override + String get dialogUninstallExtension => 'Copot Ekstensi?'; + + @override + String dialogUninstallExtensionMessage(String extensionName) { + return 'Apakah Anda yakin ingin menghapus $extensionName?'; + } + + @override + String get dialogClearHistoryTitle => 'Hapus Riwayat'; + + @override + String get dialogClearHistoryMessage => + 'Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.'; + + @override + String get dialogDeleteSelectedTitle => 'Hapus yang Dipilih'; + + @override + String dialogDeleteSelectedMessage(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'lagu', + one: 'lagu', + ); + return 'Hapus $count $_temp0 dari riwayat?\n\nIni juga akan menghapus file dari penyimpanan.'; + } + + @override + String get dialogImportPlaylistTitle => 'Impor Playlist'; + + @override + String dialogImportPlaylistMessage(int count) { + return 'Ditemukan $count lagu di CSV. Tambahkan ke antrian unduhan?'; + } + + @override + String csvImportTracks(int count) { + return '$count tracks from CSV'; + } + + @override + String snackbarAddedToQueue(String trackName) { + return 'Menambahkan \"$trackName\" ke antrian'; + } + + @override + String snackbarAddedTracksToQueue(int count) { + return 'Menambahkan $count lagu ke antrian'; + } + + @override + String snackbarAlreadyDownloaded(String trackName) { + return '\"$trackName\" sudah diunduh'; + } + + @override + String snackbarAlreadyInLibrary(String trackName) { + return '\"$trackName\" already exists in your library'; + } + + @override + String get snackbarHistoryCleared => 'Riwayat dihapus'; + + @override + String get snackbarCredentialsSaved => 'Kredensial disimpan'; + + @override + String get snackbarCredentialsCleared => 'Kredensial dihapus'; + + @override + String snackbarDeletedTracks(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'lagu', + one: 'lagu', + ); + return 'Menghapus $count $_temp0'; + } + + @override + String snackbarCannotOpenFile(String error) { + return 'Tidak dapat membuka file: $error'; + } + + @override + String get snackbarFillAllFields => 'Harap isi semua field'; + + @override + String get snackbarViewQueue => 'Lihat Antrian'; + + @override + String snackbarFailedToLoad(String error) { + return 'Gagal memuat: $error'; + } + + @override + String snackbarUrlCopied(String platform) { + return 'URL $platform disalin ke clipboard'; + } + + @override + String get snackbarFileNotFound => 'File tidak ditemukan'; + + @override + String get snackbarSelectExtFile => 'Harap pilih file .spotiflac-ext'; + + @override + String get snackbarProviderPrioritySaved => 'Prioritas provider disimpan'; + + @override + String get snackbarMetadataProviderSaved => + 'Prioritas provider metadata disimpan'; + + @override + String snackbarExtensionInstalled(String extensionName) { + return '$extensionName terpasang.'; + } + + @override + String snackbarExtensionUpdated(String extensionName) { + return '$extensionName diperbarui.'; + } + + @override + String get snackbarFailedToInstall => 'Gagal memasang ekstensi'; + + @override + String get snackbarFailedToUpdate => 'Gagal memperbarui ekstensi'; + + @override + String get errorRateLimited => 'Dibatasi'; + + @override + String get errorRateLimitedMessage => + 'Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.'; + + @override + String errorFailedToLoad(String item) { + return 'Gagal memuat $item'; + } + + @override + String get errorNoTracksFound => 'Tidak ada lagu ditemukan'; + + @override + String errorMissingExtensionSource(String item) { + return 'Tidak dapat memuat $item: sumber ekstensi tidak ada'; + } + + @override + String get statusQueued => 'Mengantri'; + + @override + String get statusDownloading => 'Mengunduh'; + + @override + String get statusFinalizing => 'Menyelesaikan'; + + @override + String get statusCompleted => 'Selesai'; + + @override + String get statusFailed => 'Gagal'; + + @override + String get statusSkipped => 'Dilewati'; + + @override + String get statusPaused => 'Dijeda'; + + @override + String get actionPause => 'Jeda'; + + @override + String get actionResume => 'Lanjutkan'; + + @override + String get actionCancel => 'Batal'; + + @override + String get actionStop => 'Hentikan'; + + @override + String get actionSelect => 'Pilih'; + + @override + String get actionSelectAll => 'Pilih Semua'; + + @override + String get actionDeselect => 'Batal Pilih'; + + @override + String get actionPaste => 'Tempel'; + + @override + String get actionImportCsv => 'Impor CSV'; + + @override + String get actionRemoveCredentials => 'Hapus Kredensial'; + + @override + String get actionSaveCredentials => 'Simpan Kredensial'; + + @override + String selectionSelected(int count) { + return '$count dipilih'; + } + + @override + String get selectionAllSelected => 'Semua lagu dipilih'; + + @override + String get selectionTapToSelect => 'Ketuk lagu untuk memilih'; + + @override + String selectionDeleteTracks(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'lagu', + one: 'lagu', + ); + return 'Hapus $count $_temp0'; + } + + @override + String get selectionSelectToDelete => 'Pilih lagu untuk dihapus'; + + @override + String progressFetchingMetadata(int current, int total) { + return 'Mengambil metadata... $current/$total'; + } + + @override + String get progressReadingCsv => 'Membaca CSV...'; + + @override + String get searchSongs => 'Lagu'; + + @override + String get searchArtists => 'Artis'; + + @override + String get searchAlbums => 'Album'; + + @override + String get searchPlaylists => 'Playlist'; + + @override + String get tooltipPlay => 'Putar'; + + @override + String get tooltipCancel => 'Batal'; + + @override + String get tooltipStop => 'Hentikan'; + + @override + String get tooltipRetry => 'Coba Lagi'; + + @override + String get tooltipRemove => 'Hapus'; + + @override + String get tooltipClear => 'Hapus'; + + @override + String get tooltipPaste => 'Tempel'; + + @override + String get filenameFormat => 'Format Nama File'; + + @override + String filenameFormatPreview(String preview) { + return 'Pratinjau: $preview'; + } + + @override + String get filenameAvailablePlaceholders => 'Placeholder yang tersedia:'; + + @override + String filenameHint(Object artist, Object title) { + return '$artist - $title'; + } + + @override + String get folderOrganization => 'Organisasi Folder'; + + @override + String get folderOrganizationNone => 'Tidak ada'; + + @override + String get folderOrganizationByArtist => 'Berdasarkan Artis'; + + @override + String get folderOrganizationByAlbum => 'Berdasarkan Album'; + + @override + String get folderOrganizationByArtistAlbum => 'Berdasarkan Artis & Album'; + + @override + String get folderOrganizationDescription => + 'Atur file yang diunduh ke dalam folder'; + + @override + String get folderOrganizationNoneSubtitle => 'Semua file di folder unduhan'; + + @override + String get folderOrganizationByArtistSubtitle => + 'Folder terpisah untuk setiap artis'; + + @override + String get folderOrganizationByAlbumSubtitle => + 'Folder terpisah untuk setiap album'; + + @override + String get folderOrganizationByArtistAlbumSubtitle => + 'Folder bersarang untuk artis dan album'; + + @override + String get updateAvailable => 'Pembaruan Tersedia'; + + @override + String updateNewVersion(String version) { + return 'Versi $version tersedia'; + } + + @override + String get updateDownload => 'Unduh'; + + @override + String get updateLater => 'Nanti'; + + @override + String get updateChangelog => 'Log Perubahan'; + + @override + String get updateStartingDownload => 'Memulai unduhan...'; + + @override + String get updateDownloadFailed => 'Unduhan gagal'; + + @override + String get updateFailedMessage => 'Gagal mengunduh pembaruan'; + + @override + String get updateNewVersionReady => 'Versi baru sudah siap'; + + @override + String get updateCurrent => 'Saat ini'; + + @override + String get updateNew => 'Baru'; + + @override + String get updateDownloading => 'Mengunduh...'; + + @override + String get updateWhatsNew => 'Yang Baru'; + + @override + String get updateDownloadInstall => 'Unduh & Pasang'; + + @override + String get updateDontRemind => 'Jangan ingatkan'; + + @override + String get providerPriority => 'Prioritas Provider'; + + @override + String get providerPrioritySubtitle => + 'Seret untuk mengatur ulang provider unduhan'; + + @override + String get providerPriorityTitle => 'Prioritas Provider'; + + @override + String get providerPriorityDescription => + 'Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.'; + + @override + String get providerPriorityInfo => + 'Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.'; + + @override + String get providerBuiltIn => 'Bawaan'; + + @override + String get providerExtension => 'Ekstensi'; + + @override + String get metadataProviderPriority => 'Prioritas Provider Metadata'; + + @override + String get metadataProviderPrioritySubtitle => + 'Urutan yang digunakan saat mengambil metadata lagu'; + + @override + String get metadataProviderPriorityTitle => 'Prioritas Metadata'; + + @override + String get metadataProviderPriorityDescription => + 'Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.'; + + @override + String get metadataProviderPriorityInfo => + 'Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.'; + + @override + String get metadataNoRateLimits => 'Tidak ada batas rate'; + + @override + String get metadataMayRateLimit => 'Mungkin dibatasi rate'; + + @override + String get logTitle => 'Log'; + + @override + String get logCopy => 'Salin Log'; + + @override + String get logClear => 'Hapus Log'; + + @override + String get logShare => 'Bagikan Log'; + + @override + String get logEmpty => 'Belum ada log'; + + @override + String get logCopied => 'Log disalin ke clipboard'; + + @override + String get logSearchHint => 'Cari log...'; + + @override + String get logFilterLevel => 'Level'; + + @override + String get logFilterSection => 'Filter'; + + @override + String get logShareLogs => 'Bagikan log'; + + @override + String get logClearLogs => 'Hapus log'; + + @override + String get logClearLogsTitle => 'Hapus Log'; + + @override + String get logClearLogsMessage => + 'Apakah Anda yakin ingin menghapus semua log?'; + + @override + String get logIspBlocking => 'PEMBLOKIRAN ISP TERDETEKSI'; + + @override + String get logRateLimited => 'DIBATASI'; + + @override + String get logNetworkError => 'ERROR JARINGAN'; + + @override + String get logTrackNotFound => 'LAGU TIDAK DITEMUKAN'; + + @override + String get logFilterBySeverity => 'Filter log berdasarkan tingkat keparahan'; + + @override + String get logNoLogsYet => 'Belum ada log'; + + @override + String get logNoLogsYetSubtitle => + 'Log akan muncul di sini saat Anda menggunakan aplikasi'; + + @override + String get logIssueSummary => 'Ringkasan Masalah'; + + @override + String get logIspBlockingDescription => + 'ISP Anda mungkin memblokir akses ke layanan unduhan'; + + @override + String get logIspBlockingSuggestion => + 'Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8'; + + @override + String get logRateLimitedDescription => + 'Terlalu banyak permintaan ke layanan'; + + @override + String get logRateLimitedSuggestion => + 'Tunggu beberapa menit sebelum mencoba lagi'; + + @override + String get logNetworkErrorDescription => 'Masalah koneksi terdeteksi'; + + @override + String get logNetworkErrorSuggestion => 'Periksa koneksi internet Anda'; + + @override + String get logTrackNotFoundDescription => + 'Beberapa lagu tidak dapat ditemukan di layanan unduhan'; + + @override + String get logTrackNotFoundSuggestion => + 'Lagu mungkin tidak tersedia dalam kualitas lossless'; + + @override + String logTotalErrors(int count) { + return 'Total error: $count'; + } + + @override + String logAffected(String domains) { + return 'Terpengaruh: $domains'; + } + + @override + String logEntriesFiltered(int count) { + return 'Entri ($count difilter)'; + } + + @override + String logEntries(int count) { + return 'Entri ($count)'; + } + + @override + String get credentialsTitle => 'Kredensial Spotify'; + + @override + String get credentialsDescription => + 'Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.'; + + @override + String get credentialsClientId => 'Client ID'; + + @override + String get credentialsClientIdHint => 'Tempel Client ID'; + + @override + String get credentialsClientSecret => 'Client Secret'; + + @override + String get credentialsClientSecretHint => 'Tempel Client Secret'; + + @override + String get channelStable => 'Stabil'; + + @override + String get channelPreview => 'Preview'; + + @override + String get sectionSearchSource => 'Sumber Pencarian'; + + @override + String get sectionDownload => 'Unduhan'; + + @override + String get sectionPerformance => 'Performa'; + + @override + String get sectionApp => 'Aplikasi'; + + @override + String get sectionData => 'Data'; + + @override + String get sectionDebug => 'Debug'; + + @override + String get sectionService => 'Layanan'; + + @override + String get sectionAudioQuality => 'Kualitas Audio'; + + @override + String get sectionFileSettings => 'Pengaturan File'; + + @override + String get sectionLyrics => 'Lyrics'; + + @override + String get lyricsMode => 'Lyrics Mode'; + + @override + String get lyricsModeDescription => + 'Choose how lyrics are saved with your downloads'; + + @override + String get lyricsModeEmbed => 'Embed in file'; + + @override + String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata'; + + @override + String get lyricsModeExternal => 'External .lrc file'; + + @override + String get lyricsModeExternalSubtitle => + 'Separate .lrc file for players like Samsung Music'; + + @override + String get lyricsModeBoth => 'Both'; + + @override + String get lyricsModeBothSubtitle => 'Embed and save .lrc file'; + + @override + String get sectionColor => 'Warna'; + + @override + String get sectionTheme => 'Tema'; + + @override + String get sectionLayout => 'Tata Letak'; + + @override + String get sectionLanguage => 'Bahasa'; + + @override + String get appearanceLanguage => 'Bahasa Aplikasi'; + + @override + String get appearanceLanguageSubtitle => 'Pilih bahasa yang kamu inginkan'; + + @override + String get settingsAppearanceSubtitle => 'Tema, warna, tampilan'; + + @override + String get settingsDownloadSubtitle => 'Layanan, kualitas, format nama file'; + + @override + String get settingsOptionsSubtitle => 'Fallback, lirik, cover art, pembaruan'; + + @override + String get settingsExtensionsSubtitle => 'Kelola provider unduhan'; + + @override + String get settingsLogsSubtitle => 'Lihat log aplikasi untuk debugging'; + + @override + String get loadingSharedLink => 'Memuat link yang dibagikan...'; + + @override + String get pressBackAgainToExit => 'Tekan kembali sekali lagi untuk keluar'; + + @override + String get tracksHeader => 'Lagu'; + + @override + String downloadAllCount(int count) { + return 'Unduh Semua ($count)'; + } + + @override + String tracksCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count lagu', + one: '1 lagu', + ); + return '$_temp0'; + } + + @override + String get trackCopyFilePath => 'Salin lokasi file'; + + @override + String get trackRemoveFromDevice => 'Hapus dari perangkat'; + + @override + String get trackLoadLyrics => 'Muat Lirik'; + + @override + String get trackMetadata => 'Metadata'; + + @override + String get trackFileInfo => 'Info File'; + + @override + String get trackLyrics => 'Lirik'; + + @override + String get trackFileNotFound => 'File tidak ditemukan'; + + @override + String get trackOpenInDeezer => 'Buka di Deezer'; + + @override + String get trackOpenInSpotify => 'Buka di Spotify'; + + @override + String get trackTrackName => 'Nama lagu'; + + @override + String get trackArtist => 'Artis'; + + @override + String get trackAlbumArtist => 'Artis album'; + + @override + String get trackAlbum => 'Album'; + + @override + String get trackTrackNumber => 'Nomor lagu'; + + @override + String get trackDiscNumber => 'Nomor disc'; + + @override + String get trackDuration => 'Durasi'; + + @override + String get trackAudioQuality => 'Kualitas audio'; + + @override + String get trackReleaseDate => 'Tanggal rilis'; + + @override + String get trackGenre => 'Genre'; + + @override + String get trackLabel => 'Label'; + + @override + String get trackCopyright => 'Copyright'; + + @override + String get trackDownloaded => 'Diunduh'; + + @override + String get trackCopyLyrics => 'Salin lirik'; + + @override + String get trackLyricsNotAvailable => 'Lirik tidak tersedia untuk lagu ini'; + + @override + String get trackLyricsTimeout => 'Permintaan timeout. Coba lagi nanti.'; + + @override + String get trackLyricsLoadFailed => 'Gagal memuat lirik'; + + @override + String get trackEmbedLyrics => 'Embed Lyrics'; + + @override + String get trackLyricsEmbedded => 'Lyrics embedded successfully'; + + @override + String get trackInstrumental => 'Instrumental track'; + + @override + String get trackCopiedToClipboard => 'Disalin ke clipboard'; + + @override + String get trackDeleteConfirmTitle => 'Hapus dari perangkat?'; + + @override + String get trackDeleteConfirmMessage => + 'Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.'; + + @override + String trackCannotOpen(String message) { + return 'Tidak dapat membuka: $message'; + } + + @override + String get dateToday => 'Hari ini'; + + @override + String get dateYesterday => 'Kemarin'; + + @override + String dateDaysAgo(int count) { + return '$count hari lalu'; + } + + @override + String dateWeeksAgo(int count) { + return '$count minggu lalu'; + } + + @override + String dateMonthsAgo(int count) { + return '$count bulan lalu'; + } + + @override + String get concurrentSequential => 'Berurutan'; + + @override + String get concurrentParallel2 => '2 Paralel'; + + @override + String get concurrentParallel3 => '3 Paralel'; + + @override + String get tapToSeeError => 'Ketuk untuk melihat detail error'; + + @override + String get storeFilterAll => 'Semua'; + + @override + String get storeFilterMetadata => 'Metadata'; + + @override + String get storeFilterDownload => 'Unduhan'; + + @override + String get storeFilterUtility => 'Utilitas'; + + @override + String get storeFilterLyrics => 'Lirik'; + + @override + String get storeFilterIntegration => 'Integrasi'; + + @override + String get storeClearFilters => 'Hapus filter'; + + @override + String get storeNoResults => 'Tidak ada ekstensi ditemukan'; + + @override + String get extensionProviderPriority => 'Prioritas Provider'; + + @override + String get extensionInstallButton => 'Pasang Ekstensi'; + + @override + String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + + @override + String get extensionDefaultProviderSubtitle => 'Gunakan pencarian bawaan'; + + @override + String get extensionAuthor => 'Pembuat'; + + @override + String get extensionId => 'ID'; + + @override + String get extensionError => 'Error'; + + @override + String get extensionCapabilities => 'Kemampuan'; + + @override + String get extensionMetadataProvider => 'Provider Metadata'; + + @override + String get extensionDownloadProvider => 'Provider Unduhan'; + + @override + String get extensionLyricsProvider => 'Provider Lirik'; + + @override + String get extensionUrlHandler => 'Penanganan URL'; + + @override + String get extensionQualityOptions => 'Opsi Kualitas'; + + @override + String get extensionPostProcessingHooks => 'Hook Pasca-Pemrosesan'; + + @override + String get extensionPermissions => 'Izin'; + + @override + String get extensionSettings => 'Pengaturan'; + + @override + String get extensionRemoveButton => 'Hapus Ekstensi'; + + @override + String get extensionUpdated => 'Diperbarui'; + + @override + String get extensionMinAppVersion => 'Versi App Minimum'; + + @override + String get extensionCustomTrackMatching => 'Pencocokan Lagu Kustom'; + + @override + String get extensionPostProcessing => 'Pasca-Pemrosesan'; + + @override + String extensionHooksAvailable(int count) { + return '$count hook tersedia'; + } + + @override + String extensionPatternsCount(int count) { + return '$count pola'; + } + + @override + String extensionStrategy(String strategy) { + return 'Strategi: $strategy'; + } + + @override + String get extensionsProviderPrioritySection => 'Prioritas Provider'; + + @override + String get extensionsInstalledSection => 'Ekstensi Terpasang'; + + @override + String get extensionsNoExtensions => 'Tidak ada ekstensi terpasang'; + + @override + String get extensionsNoExtensionsSubtitle => + 'Pasang file .spotiflac-ext untuk menambahkan provider baru'; + + @override + String get extensionsInstallButton => 'Pasang Ekstensi'; + + @override + String get extensionsInfoTip => + 'Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.'; + + @override + String get extensionsInstalledSuccess => 'Ekstensi berhasil dipasang'; + + @override + String get extensionsDownloadPriority => 'Prioritas Unduhan'; + + @override + String get extensionsDownloadPrioritySubtitle => + 'Atur urutan layanan unduhan'; + + @override + String get extensionsNoDownloadProvider => + 'Tidak ada ekstensi dengan provider unduhan'; + + @override + String get extensionsMetadataPriority => 'Prioritas Metadata'; + + @override + String get extensionsMetadataPrioritySubtitle => + 'Atur urutan sumber pencarian & metadata'; + + @override + String get extensionsNoMetadataProvider => + 'Tidak ada ekstensi dengan provider metadata'; + + @override + String get extensionsSearchProvider => 'Provider Pencarian'; + + @override + String get extensionsNoCustomSearch => + 'Tidak ada ekstensi dengan pencarian kustom'; + + @override + String get extensionsSearchProviderDescription => + 'Pilih layanan yang digunakan untuk mencari lagu'; + + @override + String get extensionsCustomSearch => 'Pencarian kustom'; + + @override + String get extensionsErrorLoading => 'Error memuat ekstensi'; + + @override + String get qualityFlacLossless => 'FLAC Lossless'; + + @override + String get qualityFlacLosslessSubtitle => '16-bit / 44.1kHz'; + + @override + String get qualityHiResFlac => 'Hi-Res FLAC'; + + @override + String get qualityHiResFlacSubtitle => '24-bit / hingga 96kHz'; + + @override + String get qualityHiResFlacMax => 'Hi-Res FLAC Max'; + + @override + String get qualityHiResFlacMaxSubtitle => '24-bit / hingga 192kHz'; + + @override + String get qualityLossy => 'Lossy'; + + @override + String get qualityLossyMp3Subtitle => 'MP3 320kbps (converted from FLAC)'; + + @override + String get qualityLossyOpusSubtitle => 'Opus 128kbps (converted from FLAC)'; + + @override + String get enableLossyOption => 'Enable Lossy Option'; + + @override + String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; + + @override + String get enableLossyOptionSubtitleOff => + 'Downloads FLAC then converts to lossy format'; + + @override + String get lossyFormat => 'Lossy Format'; + + @override + String get lossyFormatDescription => 'Choose the lossy format for conversion'; + + @override + String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; + + @override + String get lossyFormatOpusSubtitle => + '128kbps, better quality at smaller size'; + + @override + String get qualityNote => + 'Kualitas sebenarnya tergantung ketersediaan lagu dari layanan'; + + @override + String get downloadAskBeforeDownload => 'Tanya Sebelum Unduh'; + + @override + String get downloadDirectory => 'Direktori Unduhan'; + + @override + String get downloadSeparateSinglesFolder => 'Folder Singles Terpisah'; + + @override + String get downloadAlbumFolderStructure => 'Struktur Folder Album'; + + @override + String get downloadSaveFormat => 'Simpan Format'; + + @override + String get downloadSelectService => 'Pilih Layanan'; + + @override + String get downloadSelectQuality => 'Pilih Kualitas'; + + @override + String get downloadFrom => 'Unduh Dari'; + + @override + String get downloadDefaultQualityLabel => 'Kualitas Default'; + + @override + String get downloadBestAvailable => 'Terbaik tersedia'; + + @override + String get folderNone => 'Tidak ada'; + + @override + String get folderNoneSubtitle => + 'Simpan semua file langsung ke folder unduhan'; + + @override + String get folderArtist => 'Artis'; + + @override + String get folderArtistSubtitle => 'Nama Artis/namafile'; + + @override + String get folderAlbum => 'Album'; + + @override + String get folderAlbumSubtitle => 'Nama Album/namafile'; + + @override + String get folderArtistAlbum => 'Artis/Album'; + + @override + String get folderArtistAlbumSubtitle => 'Nama Artis/Nama Album/namafile'; + + @override + String get serviceTidal => 'Tidal'; + + @override + String get serviceQobuz => 'Qobuz'; + + @override + String get serviceAmazon => 'Amazon'; + + @override + String get serviceDeezer => 'Deezer'; + + @override + String get serviceSpotify => 'Spotify'; + + @override + String get appearanceAmoledDark => 'AMOLED Gelap'; + + @override + String get appearanceAmoledDarkSubtitle => 'Latar belakang hitam murni'; + + @override + String get appearanceChooseAccentColor => 'Pilih Warna Aksen'; + + @override + String get appearanceChooseTheme => 'Mode Tema'; + + @override + String get queueTitle => 'Antrian Unduhan'; + + @override + String get queueClearAll => 'Hapus Semua'; + + @override + String get queueClearAllMessage => + 'Apakah Anda yakin ingin menghapus semua unduhan?'; + + @override + String get queueExportFailed => 'Export'; + + @override + String get queueExportFailedSuccess => + 'Failed downloads exported to TXT file'; + + @override + String get queueExportFailedClear => 'Clear Failed'; + + @override + String get queueExportFailedError => 'Failed to export downloads'; + + @override + String get settingsAutoExportFailed => 'Auto-export failed downloads'; + + @override + String get settingsAutoExportFailedSubtitle => + 'Save failed downloads to TXT file automatically'; + + @override + String get settingsDownloadNetwork => 'Download Network'; + + @override + String get settingsDownloadNetworkAny => 'WiFi + Mobile Data'; + + @override + String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; + + @override + String get settingsDownloadNetworkSubtitle => + 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get queueEmpty => 'Tidak ada unduhan dalam antrian'; + + @override + String get queueEmptySubtitle => 'Tambahkan lagu dari layar beranda'; + + @override + String get queueClearCompleted => 'Hapus yang selesai'; + + @override + String get queueDownloadFailed => 'Unduhan Gagal'; + + @override + String get queueTrackLabel => 'Lagu:'; + + @override + String get queueArtistLabel => 'Artis:'; + + @override + String get queueErrorLabel => 'Error:'; + + @override + String get queueUnknownError => 'Error tidak diketahui'; + + @override + String get albumFolderArtistAlbum => 'Artis / Album'; + + @override + String get albumFolderArtistAlbumSubtitle => 'Albums/Nama Artis/Nama Album/'; + + @override + String get albumFolderArtistYearAlbum => 'Artis / [Tahun] Album'; + + @override + String get albumFolderArtistYearAlbumSubtitle => + 'Albums/Nama Artis/[2005] Nama Album/'; + + @override + String get albumFolderAlbumOnly => 'Album Saja'; + + @override + String get albumFolderAlbumOnlySubtitle => 'Albums/Nama Album/'; + + @override + String get albumFolderYearAlbum => '[Tahun] Album'; + + @override + String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Nama Album/'; + + @override + String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; + + @override + String get albumFolderArtistAlbumSinglesSubtitle => + 'Artist/Album/ and Artist/Singles/'; + + @override + String get downloadedAlbumDeleteSelected => 'Hapus yang Dipilih'; + + @override + String downloadedAlbumDeleteMessage(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'lagu', + one: 'lagu', + ); + return 'Hapus $count $_temp0 dari album ini?\n\nIni juga akan menghapus file dari penyimpanan.'; + } + + @override + String get downloadedAlbumTracksHeader => 'Lagu'; + + @override + String downloadedAlbumDownloadedCount(int count) { + return '$count diunduh'; + } + + @override + String downloadedAlbumSelectedCount(int count) { + return '$count dipilih'; + } + + @override + String get downloadedAlbumAllSelected => 'Semua lagu dipilih'; + + @override + String get downloadedAlbumTapToSelect => 'Ketuk lagu untuk memilih'; + + @override + String downloadedAlbumDeleteCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'lagu', + one: 'lagu', + ); + return 'Hapus $count $_temp0'; + } + + @override + String get downloadedAlbumSelectToDelete => 'Pilih lagu untuk dihapus'; + + @override + String downloadedAlbumDiscHeader(int discNumber) { + return 'Disc $discNumber'; + } + + @override + String get utilityFunctions => 'Fungsi Utilitas'; + + @override + String get recentTypeArtist => 'Artis'; + + @override + String get recentTypeAlbum => 'Album'; + + @override + String get recentTypeSong => 'Lagu'; + + @override + String get recentTypePlaylist => 'Playlist'; + + @override + String recentPlaylistInfo(String name) { + return 'Playlist: $name'; + } + + @override + String errorGeneric(String message) { + return 'Error: $message'; + } + + @override + String get discographyDownload => 'Download Discography'; + + @override + String get discographyDownloadAll => 'Unduh Semua'; + + @override + String discographyDownloadAllSubtitle(int count, int albumCount) { + return '$count tracks from $albumCount releases'; + } + + @override + String get discographyAlbumsOnly => 'Albums Only'; + + @override + String discographyAlbumsOnlySubtitle(int count, int albumCount) { + return '$count tracks from $albumCount albums'; + } + + @override + String get discographySinglesOnly => 'Singles & EPs Only'; + + @override + String discographySinglesOnlySubtitle(int count, int albumCount) { + return '$count tracks from $albumCount singles'; + } + + @override + String get discographySelectAlbums => 'Select Albums...'; + + @override + String get discographySelectAlbumsSubtitle => + 'Choose specific albums or singles'; + + @override + String get discographyFetchingTracks => 'Fetching tracks...'; + + @override + String discographyFetchingAlbum(int current, int total) { + return 'Fetching $current of $total...'; + } + + @override + String discographySelectedCount(int count) { + return '$count selected'; + } + + @override + String get discographyDownloadSelected => 'Download Selected'; + + @override + String discographyAddedToQueue(int count) { + return 'Added $count tracks to queue'; + } + + @override + String discographySkippedDownloaded(int added, int skipped) { + return '$added added, $skipped already downloaded'; + } + + @override + String get discographyNoAlbums => 'No albums available'; + + @override + String get discographyFailedToFetch => 'Failed to fetch some albums'; + + @override + String get sectionStorageAccess => 'Storage Access'; + + @override + String get allFilesAccess => 'All Files Access'; + + @override + String get allFilesAccessEnabledSubtitle => 'Can write to any folder'; + + @override + String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; + + @override + String get allFilesAccessDescription => + 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + + @override + String get allFilesAccessDeniedMessage => + 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + + @override + String get allFilesAccessDisabledMessage => + 'All Files Access disabled. The app will use limited storage access.'; + + @override + String get settingsLocalLibrary => 'Local Library'; + + @override + String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates'; + + @override + String get libraryTitle => 'Local Library'; + + @override + String get libraryStatus => 'Library Status'; + + @override + String get libraryScanSettings => 'Scan Settings'; + + @override + String get libraryEnableLocalLibrary => 'Enable Local Library'; + + @override + String get libraryEnableLocalLibrarySubtitle => + 'Scan and track your existing music'; + + @override + String get libraryFolder => 'Library Folder'; + + @override + String get libraryFolderHint => 'Tap to select folder'; + + @override + String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator'; + + @override + String get libraryShowDuplicateIndicatorSubtitle => + 'Show when searching for existing tracks'; + + @override + String get libraryActions => 'Actions'; + + @override + String get libraryScan => 'Scan Library'; + + @override + String get libraryScanSubtitle => 'Scan for audio files'; + + @override + String get libraryScanSelectFolderFirst => 'Select a folder first'; + + @override + String get libraryCleanupMissingFiles => 'Cleanup Missing Files'; + + @override + String get libraryCleanupMissingFilesSubtitle => + 'Remove entries for files that no longer exist'; + + @override + String get libraryClear => 'Clear Library'; + + @override + String get libraryClearSubtitle => 'Remove all scanned tracks'; + + @override + String get libraryClearConfirmTitle => 'Clear Library'; + + @override + String get libraryClearConfirmMessage => + 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.'; + + @override + String get libraryAbout => 'About Local Library'; + + @override + String get libraryAboutDescription => + 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.'; + + @override + String libraryTracksCount(int count) { + return '$count tracks'; + } + + @override + String libraryLastScanned(String time) { + return 'Last scanned: $time'; + } + + @override + String get libraryLastScannedNever => 'Never'; + + @override + String get libraryScanning => 'Scanning...'; + + @override + String libraryScanProgress(String progress, int total) { + return '$progress% of $total files'; + } + + @override + String get libraryInLibrary => 'In Library'; + + @override + String libraryRemovedMissingFiles(int count) { + return 'Removed $count missing files from library'; + } + + @override + String get libraryCleared => 'Library cleared'; + + @override + String get libraryStorageAccessRequired => 'Storage Access Required'; + + @override + String get libraryStorageAccessMessage => + 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.'; + + @override + String get libraryFolderNotExist => 'Selected folder does not exist'; + + @override + String get librarySourceDownloaded => 'Downloaded'; + + @override + String get librarySourceLocal => 'Local'; + + @override + String get libraryFilterAll => 'All'; + + @override + String get libraryFilterDownloaded => 'Downloaded'; + + @override + String get libraryFilterLocal => 'Local'; + + @override + String get libraryFilterTitle => 'Filters'; + + @override + String get libraryFilterReset => 'Reset'; + + @override + String get libraryFilterApply => 'Apply'; + + @override + String get libraryFilterSource => 'Source'; + + @override + String get libraryFilterQuality => 'Quality'; + + @override + String get libraryFilterQualityHiRes => 'Hi-Res (24bit)'; + + @override + String get libraryFilterQualityCD => 'CD (16bit)'; + + @override + String get libraryFilterQualityLossy => 'Lossy'; + + @override + String get libraryFilterFormat => 'Format'; + + @override + String get libraryFilterDate => 'Date Added'; + + @override + String get libraryFilterDateToday => 'Today'; + + @override + String get libraryFilterDateWeek => 'This Week'; + + @override + String get libraryFilterDateMonth => 'This Month'; + + @override + String get libraryFilterDateYear => 'This Year'; + + @override + String libraryFilterActive(int count) { + return '$count filter(s) active'; + } + + @override + String get timeJustNow => 'Just now'; + + @override + String timeMinutesAgo(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count minutes ago', + one: '1 minute ago', + ); + return '$_temp0'; + } + + @override + String timeHoursAgo(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '$count hours ago', + one: '1 hour ago', + ); + return '$_temp0'; + } + + @override + String get storageSwitchTitle => 'Switch Storage Mode'; + + @override + String get storageSwitchToSafTitle => 'Switch to SAF Storage?'; + + @override + String get storageSwitchToAppTitle => 'Switch to App Storage?'; + + @override + String get storageSwitchToSafMessage => + 'Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.'; + + @override + String get storageSwitchToAppMessage => + 'Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.'; + + @override + String get storageSwitchExistingDownloads => 'Existing Downloads'; + + @override + String storageSwitchExistingDownloadsInfo(int count, String mode) { + return '$count tracks in $mode storage'; + } + + @override + String get storageSwitchNewDownloads => 'New Downloads'; + + @override + String storageSwitchNewDownloadsLocation(String location) { + return 'Will be saved to: $location'; + } + + @override + String get storageSwitchContinue => 'Continue'; + + @override + String get storageSwitchSelectFolder => 'Select SAF Folder'; + + @override + String get storageAppStorage => 'App Storage'; + + @override + String get storageSafStorage => 'SAF Storage'; + + @override + String storageModeBadge(String mode) { + return 'Storage: $mode'; + } + + @override + String get storageStatsTitle => 'Storage Statistics'; + + @override + String storageStatsAppCount(int count) { + return '$count tracks in App Storage'; + } + + @override + String storageStatsSafCount(int count) { + return '$count tracks in SAF Storage'; + } + + @override + String get storageModeInfo => 'Your files are stored in multiple locations'; + + @override + String get tutorialWelcomeTitle => 'Selamat Datang di SpotiFLAC!'; + + @override + String get tutorialWelcomeDesc => + 'Mari pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.'; + + @override + String get tutorialWelcomeTip1 => + 'Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung'; + + @override + String get tutorialWelcomeTip2 => + 'Dapatkan audio kualitas FLAC dari Tidal, Qobuz, atau Amazon Music'; + + @override + String get tutorialWelcomeTip3 => + 'Metadata, cover art, dan lirik otomatis tertanam'; + + @override + String get tutorialSearchTitle => 'Mencari Musik'; + + @override + String get tutorialSearchDesc => + 'Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.'; + + @override + String get tutorialSearchTip1 => + 'Tempel URL Spotify atau Deezer langsung di kotak pencarian'; + + @override + String get tutorialSearchTip2 => + 'Atau ketik nama lagu, artis, atau album untuk mencari'; + + @override + String get tutorialSearchTip3 => + 'Mendukung lagu, album, playlist, dan halaman artis'; + + @override + String get tutorialDownloadTitle => 'Mengunduh Musik'; + + @override + String get tutorialDownloadDesc => + 'Mengunduh musik itu mudah dan cepat. Begini caranya.'; + + @override + String get tutorialDownloadTip1 => + 'Ketuk tombol unduh di samping lagu mana pun untuk mulai mengunduh'; + + @override + String get tutorialDownloadTip2 => + 'Pilih kualitas yang Anda inginkan (FLAC, Hi-Res, atau MP3)'; + + @override + String get tutorialDownloadTip3 => + 'Unduh seluruh album atau playlist dengan satu ketukan'; + + @override + String get tutorialLibraryTitle => 'Perpustakaan Anda'; + + @override + String get tutorialLibraryDesc => + 'Semua musik yang Anda unduh terorganisir di tab Perpustakaan.'; + + @override + String get tutorialLibraryTip1 => + 'Lihat progres unduhan dan antrian di tab Perpustakaan'; + + @override + String get tutorialLibraryTip2 => + 'Ketuk lagu mana pun untuk memutarnya dengan pemutar musik'; + + @override + String get tutorialLibraryTip3 => + 'Beralih antara tampilan daftar dan grid untuk penjelajahan lebih baik'; + + @override + String get tutorialExtensionsTitle => 'Ekstensi'; + + @override + String get tutorialExtensionsDesc => + 'Tingkatkan kemampuan aplikasi dengan ekstensi komunitas.'; + + @override + String get tutorialExtensionsTip1 => + 'Jelajahi tab Toko untuk menemukan ekstensi berguna'; + + @override + String get tutorialExtensionsTip2 => + 'Tambahkan provider unduhan atau sumber pencarian baru'; + + @override + String get tutorialExtensionsTip3 => + 'Dapatkan lirik, metadata lebih baik, dan fitur lainnya'; + + @override + String get tutorialSettingsTitle => 'Sesuaikan Pengalaman Anda'; + + @override + String get tutorialSettingsDesc => + 'Personalisasi aplikasi di Pengaturan sesuai preferensi Anda.'; + + @override + String get tutorialSettingsTip1 => + 'Ubah lokasi unduhan dan organisasi folder'; + + @override + String get tutorialSettingsTip2 => + 'Atur kualitas audio dan preferensi format default'; + + @override + String get tutorialSettingsTip3 => 'Sesuaikan tema dan tampilan aplikasi'; + + @override + String get tutorialReadyMessage => + 'Anda siap! Mulai unduh musik favorit Anda sekarang.'; + + @override + String get tutorialExample => 'CONTOH'; + + @override + String get libraryForceFullScan => 'Pindai Ulang Penuh'; + + @override + String get libraryForceFullScanSubtitle => + 'Pindai ulang semua file, abaikan cache'; + + @override + String get cleanupOrphanedDownloads => 'Bersihkan Entri Unduhan Tidak Valid'; + + @override + String get cleanupOrphanedDownloadsSubtitle => + 'Hapus entri riwayat untuk file yang tidak ada lagi'; + + @override + String cleanupOrphanedDownloadsResult(int count) { + return 'Menghapus $count entri unduhan tidak valid dari riwayat'; + } + + @override + String get cleanupOrphanedDownloadsNone => 'Tidak ada entri unduhan tidak valid'; +} diff --git a/lib/l10n/arb/app_id.arb b/lib/l10n/arb/app_id.arb index 09f70f3d..c92fd165 100644 --- a/lib/l10n/arb/app_id.arb +++ b/lib/l10n/arb/app_id.arb @@ -1,2862 +1,2862 @@ -{ - "@@locale": "id", - "@@last_modified": "2026-01-16", - "appName": "SpotiFLAC", - "@appName": { - "description": "App name - DO NOT TRANSLATE" - }, - "appDescription": "Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.", - "@appDescription": { - "description": "App description shown in about page" - }, - "navHome": "Beranda", - "@navHome": { - "description": "Bottom navigation - Home tab" - }, - "navHistory": "Riwayat", - "@navHistory": { - "description": "Bottom navigation - History tab" - }, - "navSettings": "Pengaturan", - "@navSettings": { - "description": "Bottom navigation - Settings tab" - }, - "navStore": "Toko", - "@navStore": { - "description": "Bottom navigation - Extension store tab" - }, - "homeTitle": "Beranda", - "@homeTitle": { - "description": "Home screen title" - }, - "homeSearchHint": "Tempel URL Spotify atau cari...", - "@homeSearchHint": { - "description": "Placeholder text in search box" - }, - "homeSearchHintExtension": "Cari dengan {extensionName}...", - "@homeSearchHintExtension": { - "description": "Placeholder when extension search is active", - "placeholders": { - "extensionName": { - "type": "String", - "description": "Name of the active extension" - } - } - }, - "homeSubtitle": "Tempel link Spotify atau cari berdasarkan nama", - "@homeSubtitle": { - "description": "Subtitle shown below search box" - }, - "homeSupports": "Mendukung: URL Track, Album, Playlist, Artis", - "@homeSupports": { - "description": "Info text about supported URL types" - }, - "homeRecent": "Terbaru", - "@homeRecent": { - "description": "Section header for recent searches" - }, - "historyTitle": "Riwayat", - "@historyTitle": { - "description": "History screen title" - }, - "historyDownloading": "Mengunduh ({count})", - "@historyDownloading": { - "description": "Tab showing active downloads count", - "placeholders": { - "count": { - "type": "int", - "description": "Number of active downloads" - } - } - }, - "historyDownloaded": "Terunduh", - "@historyDownloaded": { - "description": "Tab showing completed downloads" - }, - "historyFilterAll": "Semua", - "@historyFilterAll": { - "description": "Filter chip - show all items" - }, - "historyFilterAlbums": "Album", - "@historyFilterAlbums": { - "description": "Filter chip - show albums only" - }, - "historyFilterSingles": "Single", - "@historyFilterSingles": { - "description": "Filter chip - show singles only" - }, - "historyTracksCount": "{count, plural, =1{1 lagu} other{{count} lagu}}", - "@historyTracksCount": { - "description": "Track count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyAlbumsCount": "{count, plural, =1{1 album} other{{count} album}}", - "@historyAlbumsCount": { - "description": "Album count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyNoDownloads": "Tidak ada riwayat unduhan", - "@historyNoDownloads": { - "description": "Empty state title" - }, - "historyNoDownloadsSubtitle": "Lagu yang diunduh akan muncul di sini", - "@historyNoDownloadsSubtitle": { - "description": "Empty state subtitle" - }, - "historyNoAlbums": "Tidak ada unduhan album", - "@historyNoAlbums": { - "description": "Empty state when filtering albums" - }, - "historyNoAlbumsSubtitle": "Unduh beberapa lagu dari album untuk melihatnya di sini", - "@historyNoAlbumsSubtitle": { - "description": "Empty state subtitle for albums filter" - }, - "historyNoSingles": "Tidak ada unduhan single", - "@historyNoSingles": { - "description": "Empty state when filtering singles" - }, - "historyNoSinglesSubtitle": "Unduhan lagu satuan akan muncul di sini", - "@historyNoSinglesSubtitle": { - "description": "Empty state subtitle for singles filter" - }, - "historySearchHint": "Search history...", - "@historySearchHint": { - "description": "Search bar placeholder in history" - }, - "settingsTitle": "Pengaturan", - "@settingsTitle": { - "description": "Settings screen title" - }, - "settingsDownload": "Unduhan", - "@settingsDownload": { - "description": "Settings section - download options" - }, - "settingsAppearance": "Tampilan", - "@settingsAppearance": { - "description": "Settings section - visual customization" - }, - "settingsOptions": "Opsi", - "@settingsOptions": { - "description": "Settings section - app options" - }, - "settingsExtensions": "Ekstensi", - "@settingsExtensions": { - "description": "Settings section - extension management" - }, - "settingsAbout": "Tentang", - "@settingsAbout": { - "description": "Settings section - app info" - }, - "downloadTitle": "Unduhan", - "@downloadTitle": { - "description": "Download settings page title" - }, - "downloadLocation": "Lokasi Unduhan", - "@downloadLocation": { - "description": "Setting for download folder" - }, - "downloadLocationSubtitle": "Pilih tempat menyimpan file", - "@downloadLocationSubtitle": { - "description": "Subtitle for download location" - }, - "downloadLocationDefault": "Lokasi default", - "@downloadLocationDefault": { - "description": "Shown when using default folder" - }, - "downloadDefaultService": "Layanan Default", - "@downloadDefaultService": { - "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" - }, - "downloadDefaultServiceSubtitle": "Layanan yang digunakan untuk unduhan", - "@downloadDefaultServiceSubtitle": { - "description": "Subtitle for default service" - }, - "downloadDefaultQuality": "Kualitas Default", - "@downloadDefaultQuality": { - "description": "Setting for audio quality" - }, - "downloadAskQuality": "Tanya Kualitas Sebelum Unduh", - "@downloadAskQuality": { - "description": "Toggle to show quality picker" - }, - "downloadAskQualitySubtitle": "Tampilkan pemilih kualitas untuk setiap unduhan", - "@downloadAskQualitySubtitle": { - "description": "Subtitle for ask quality toggle" - }, - "downloadFilenameFormat": "Format Nama File", - "@downloadFilenameFormat": { - "description": "Setting for output filename pattern" - }, - "downloadFolderOrganization": "Organisasi Folder", - "@downloadFolderOrganization": { - "description": "Setting for folder structure" - }, - "downloadSeparateSingles": "Pisahkan Single", - "@downloadSeparateSingles": { - "description": "Toggle to separate single tracks" - }, - "downloadSeparateSinglesSubtitle": "Letakkan lagu satuan di folder terpisah", - "@downloadSeparateSinglesSubtitle": { - "description": "Subtitle for separate singles toggle" - }, - "qualityBest": "Terbaik", - "@qualityBest": { - "description": "Audio quality option - highest available" - }, - "qualityFlac": "FLAC", - "@qualityFlac": { - "description": "Audio quality option - FLAC lossless" - }, - "quality320": "320 kbps", - "@quality320": { - "description": "Audio quality option - 320kbps MP3" - }, - "quality128": "128 kbps", - "@quality128": { - "description": "Audio quality option - 128kbps MP3" - }, - "appearanceTitle": "Tampilan", - "@appearanceTitle": { - "description": "Appearance settings page title" - }, - "appearanceTheme": "Tema", - "@appearanceTheme": { - "description": "Theme mode setting" - }, - "appearanceThemeSystem": "Sistem", - "@appearanceThemeSystem": { - "description": "Follow system theme" - }, - "appearanceThemeLight": "Terang", - "@appearanceThemeLight": { - "description": "Light theme" - }, - "appearanceThemeDark": "Gelap", - "@appearanceThemeDark": { - "description": "Dark theme" - }, - "appearanceDynamicColor": "Warna Dinamis", - "@appearanceDynamicColor": { - "description": "Material You dynamic colors" - }, - "appearanceDynamicColorSubtitle": "Gunakan warna dari wallpaper Anda", - "@appearanceDynamicColorSubtitle": { - "description": "Subtitle for dynamic color" - }, - "appearanceAccentColor": "Warna Aksen", - "@appearanceAccentColor": { - "description": "Custom accent color picker" - }, - "appearanceHistoryView": "Tampilan Riwayat", - "@appearanceHistoryView": { - "description": "Layout style for history" - }, - "appearanceHistoryViewList": "Daftar", - "@appearanceHistoryViewList": { - "description": "List layout option" - }, - "appearanceHistoryViewGrid": "Grid", - "@appearanceHistoryViewGrid": { - "description": "Grid layout option" - }, - "optionsTitle": "Opsi", - "@optionsTitle": { - "description": "Options settings page title" - }, - "optionsSearchSource": "Sumber Pencarian", - "@optionsSearchSource": { - "description": "Section for search provider settings" - }, - "optionsPrimaryProvider": "Provider Utama", - "@optionsPrimaryProvider": { - "description": "Main search provider setting" - }, - "optionsPrimaryProviderSubtitle": "Layanan yang digunakan saat mencari berdasarkan nama lagu.", - "@optionsPrimaryProviderSubtitle": { - "description": "Subtitle for primary provider" - }, - "optionsUsingExtension": "Menggunakan ekstensi: {extensionName}", - "@optionsUsingExtension": { - "description": "Shows active extension name", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "optionsSwitchBack": "Ketuk Deezer atau Spotify untuk beralih dari ekstensi", - "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" - }, - "optionsAutoFallback": "Auto Fallback", - "@optionsAutoFallback": { - "description": "Auto-retry with other services" - }, - "optionsAutoFallbackSubtitle": "Coba layanan lain jika unduhan gagal", - "@optionsAutoFallbackSubtitle": { - "description": "Subtitle for auto fallback" - }, - "optionsUseExtensionProviders": "Gunakan Provider Ekstensi", - "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" - }, - "optionsUseExtensionProvidersOn": "Ekstensi akan dicoba terlebih dahulu", - "@optionsUseExtensionProvidersOn": { - "description": "Status when extension providers enabled" - }, - "optionsUseExtensionProvidersOff": "Hanya menggunakan provider bawaan", - "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" - }, - "optionsEmbedLyrics": "Sematkan Lirik", - "@optionsEmbedLyrics": { - "description": "Embed lyrics in audio files" - }, - "optionsEmbedLyricsSubtitle": "Sematkan lirik sinkron ke file FLAC", - "@optionsEmbedLyricsSubtitle": { - "description": "Subtitle for embed lyrics" - }, - "optionsMaxQualityCover": "Cover Kualitas Maksimal", - "@optionsMaxQualityCover": { - "description": "Download highest quality album art" - }, - "optionsMaxQualityCoverSubtitle": "Unduh cover art resolusi tertinggi", - "@optionsMaxQualityCoverSubtitle": { - "description": "Subtitle for max quality cover" - }, - "optionsConcurrentDownloads": "Unduhan Bersamaan", - "@optionsConcurrentDownloads": { - "description": "Number of parallel downloads" - }, - "optionsConcurrentSequential": "Berurutan (1 per waktu)", - "@optionsConcurrentSequential": { - "description": "Download one at a time" - }, - "optionsConcurrentParallel": "{count} unduhan paralel", - "@optionsConcurrentParallel": { - "description": "Multiple parallel downloads", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "optionsConcurrentWarning": "Unduhan paralel dapat memicu pembatasan rate", - "@optionsConcurrentWarning": { - "description": "Warning about rate limits" - }, - "optionsExtensionStore": "Toko Ekstensi", - "@optionsExtensionStore": { - "description": "Show/hide store tab" - }, - "optionsExtensionStoreSubtitle": "Tampilkan tab Toko di navigasi", - "@optionsExtensionStoreSubtitle": { - "description": "Subtitle for extension store toggle" - }, - "optionsCheckUpdates": "Periksa Pembaruan", - "@optionsCheckUpdates": { - "description": "Auto update check toggle" - }, - "optionsCheckUpdatesSubtitle": "Beritahu saat versi baru tersedia", - "@optionsCheckUpdatesSubtitle": { - "description": "Subtitle for update check" - }, - "optionsUpdateChannel": "Saluran Pembaruan", - "@optionsUpdateChannel": { - "description": "Stable vs preview releases" - }, - "optionsUpdateChannelStable": "Hanya rilis stabil", - "@optionsUpdateChannelStable": { - "description": "Only stable updates" - }, - "optionsUpdateChannelPreview": "Dapatkan rilis preview", - "@optionsUpdateChannelPreview": { - "description": "Include beta/preview updates" - }, - "optionsUpdateChannelWarning": "Preview mungkin mengandung bug atau fitur belum lengkap", - "@optionsUpdateChannelWarning": { - "description": "Warning about preview channel" - }, - "optionsClearHistory": "Hapus Riwayat Unduhan", - "@optionsClearHistory": { - "description": "Delete all download history" - }, - "optionsClearHistorySubtitle": "Hapus semua lagu dari riwayat", - "@optionsClearHistorySubtitle": { - "description": "Subtitle for clear history" - }, - "optionsDetailedLogging": "Log Detail", - "@optionsDetailedLogging": { - "description": "Enable verbose logs for debugging" - }, - "optionsDetailedLoggingOn": "Log detail sedang direkam", - "@optionsDetailedLoggingOn": { - "description": "Status when logging enabled" - }, - "optionsDetailedLoggingOff": "Aktifkan untuk laporan bug", - "@optionsDetailedLoggingOff": { - "description": "Status when logging disabled" - }, - "optionsSpotifyCredentials": "Kredensial Spotify", - "@optionsSpotifyCredentials": { - "description": "Spotify API credentials setting" - }, - "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", - "@optionsSpotifyCredentialsConfigured": { - "description": "Shows configured client ID preview", - "placeholders": { - "clientId": { - "type": "String" - } - } - }, - "optionsSpotifyCredentialsRequired": "Diperlukan - ketuk untuk mengatur", - "@optionsSpotifyCredentialsRequired": { - "description": "Prompt to set up credentials" - }, - "optionsSpotifyWarning": "Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com", - "@optionsSpotifyWarning": { - "description": "Info about Spotify API requirement" - }, - "extensionsTitle": "Ekstensi", - "@extensionsTitle": { - "description": "Extensions page title" - }, - "extensionsInstalled": "Ekstensi Terpasang", - "@extensionsInstalled": { - "description": "Section header for installed extensions" - }, - "extensionsNone": "Tidak ada ekstensi terpasang", - "@extensionsNone": { - "description": "Empty state title" - }, - "extensionsNoneSubtitle": "Pasang ekstensi dari tab Toko", - "@extensionsNoneSubtitle": { - "description": "Empty state subtitle" - }, - "extensionsEnabled": "Aktif", - "@extensionsEnabled": { - "description": "Extension status - active" - }, - "extensionsDisabled": "Nonaktif", - "@extensionsDisabled": { - "description": "Extension status - inactive" - }, - "extensionsVersion": "Versi {version}", - "@extensionsVersion": { - "description": "Extension version display", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "extensionsAuthor": "oleh {author}", - "@extensionsAuthor": { - "description": "Extension author credit", - "placeholders": { - "author": { - "type": "String" - } - } - }, - "extensionsUninstall": "Copot", - "@extensionsUninstall": { - "description": "Uninstall extension button" - }, - "extensionsSetAsSearch": "Jadikan Provider Pencarian", - "@extensionsSetAsSearch": { - "description": "Use extension for search" - }, - "storeTitle": "Toko Ekstensi", - "@storeTitle": { - "description": "Store screen title" - }, - "storeSearch": "Cari ekstensi...", - "@storeSearch": { - "description": "Store search placeholder" - }, - "storeInstall": "Pasang", - "@storeInstall": { - "description": "Install extension button" - }, - "storeInstalled": "Terpasang", - "@storeInstalled": { - "description": "Already installed badge" - }, - "storeUpdate": "Perbarui", - "@storeUpdate": { - "description": "Update available button" - }, - "aboutTitle": "Tentang", - "@aboutTitle": { - "description": "About page title" - }, - "aboutContributors": "Kontributor", - "@aboutContributors": { - "description": "Section for contributors" - }, - "aboutMobileDeveloper": "Pengembang versi mobile", - "@aboutMobileDeveloper": { - "description": "Role description for mobile dev" - }, - "aboutOriginalCreator": "Pembuat SpotiFLAC asli", - "@aboutOriginalCreator": { - "description": "Role description for original creator" - }, - "aboutLogoArtist": "Seniman berbakat yang membuat logo aplikasi kita yang indah!", - "@aboutLogoArtist": { - "description": "Role description for logo artist" - }, - "aboutTranslators": "Translators", - "@aboutTranslators": { - "description": "Section for translators" - }, - "aboutSpecialThanks": "Terima Kasih Khusus", - "@aboutSpecialThanks": { - "description": "Section for special thanks" - }, - "aboutLinks": "Tautan", - "@aboutLinks": { - "description": "Section for external links" - }, - "aboutMobileSource": "Kode sumber mobile", - "@aboutMobileSource": { - "description": "Link to mobile GitHub repo" - }, - "aboutPCSource": "Kode sumber PC", - "@aboutPCSource": { - "description": "Link to PC GitHub repo" - }, - "aboutReportIssue": "Laporkan masalah", - "@aboutReportIssue": { - "description": "Link to report bugs" - }, - "aboutReportIssueSubtitle": "Laporkan masalah yang Anda temui", - "@aboutReportIssueSubtitle": { - "description": "Subtitle for report issue" - }, - "aboutFeatureRequest": "Permintaan fitur", - "@aboutFeatureRequest": { - "description": "Link to suggest features" - }, - "aboutFeatureRequestSubtitle": "Sarankan fitur baru untuk aplikasi", - "@aboutFeatureRequestSubtitle": { - "description": "Subtitle for feature request" - }, - "aboutTelegramChannel": "Telegram Channel", - "@aboutTelegramChannel": { - "description": "Link to Telegram channel" - }, - "aboutTelegramChannelSubtitle": "Announcements and updates", - "@aboutTelegramChannelSubtitle": { - "description": "Subtitle for Telegram channel" - }, - "aboutTelegramChat": "Telegram Community", - "@aboutTelegramChat": { - "description": "Link to Telegram chat group" - }, - "aboutTelegramChatSubtitle": "Chat with other users", - "@aboutTelegramChatSubtitle": { - "description": "Subtitle for Telegram chat" - }, - "aboutSocial": "Social", - "@aboutSocial": { - "description": "Section for social links" - }, - "aboutSupport": "Dukungan", - "@aboutSupport": { - "description": "Section for support/donation links" - }, - "aboutBuyMeCoffee": "Belikan saya kopi", - "@aboutBuyMeCoffee": { - "description": "Donation link" - }, - "aboutBuyMeCoffeeSubtitle": "Dukung pengembangan di Ko-fi", - "@aboutBuyMeCoffeeSubtitle": { - "description": "Subtitle for donation" - }, - "aboutApp": "Aplikasi", - "@aboutApp": { - "description": "Section for app info" - }, - "aboutVersion": "Versi", - "@aboutVersion": { - "description": "Version info label" - }, - "aboutBinimumDesc": "Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!", - "@aboutBinimumDesc": { - "description": "Credit description for binimum" - }, - "aboutSachinsenalDesc": "Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!", - "@aboutSachinsenalDesc": { - "description": "Credit description for sachinsenal0x64" - }, - "aboutDoubleDouble": "DoubleDouble", - "@aboutDoubleDouble": { - "description": "Name of Amazon API service - DO NOT TRANSLATE" - }, - "aboutDoubleDoubleDesc": "API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!", - "@aboutDoubleDoubleDesc": { - "description": "Credit for DoubleDouble API" - }, - "aboutDabMusic": "DAB Music", - "@aboutDabMusic": { - "description": "Name of Qobuz API service - DO NOT TRANSLATE" - }, - "aboutDabMusicDesc": "API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!", - "@aboutDabMusicDesc": { - "description": "Credit for DAB Music API" - }, - "aboutAppDescription": "Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.", - "@aboutAppDescription": { - "description": "App description in header card" - }, - "albumTitle": "Album", - "@albumTitle": { - "description": "Album screen title" - }, - "albumTracks": "{count, plural, =1{1 lagu} other{{count} lagu}}", - "@albumTracks": { - "description": "Album track count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "albumDownloadAll": "Unduh Semua", - "@albumDownloadAll": { - "description": "Button to download all tracks" - }, - "albumDownloadRemaining": "Unduh Sisanya", - "@albumDownloadRemaining": { - "description": "Button to download remaining tracks" - }, - "playlistTitle": "Playlist", - "@playlistTitle": { - "description": "Playlist screen title" - }, - "artistTitle": "Artis", - "@artistTitle": { - "description": "Artist screen title" - }, - "artistAlbums": "Album", - "@artistAlbums": { - "description": "Section header for artist albums" - }, - "artistSingles": "Single & EP", - "@artistSingles": { - "description": "Section header for singles/EPs" - }, - "artistCompilations": "Kompilasi", - "@artistCompilations": { - "description": "Section header for compilations" - }, - "artistReleases": "{count, plural, =1{1 rilis} other{{count} rilis}}", - "@artistReleases": { - "description": "Artist release count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "artistPopular": "Populer", - "@artistPopular": { - "description": "Section header for popular/top tracks" - }, - "artistMonthlyListeners": "{count} pendengar bulanan", - "@artistMonthlyListeners": { - "description": "Monthly listener count display", - "placeholders": { - "count": { - "type": "String", - "description": "Formatted listener count" - } - } - }, - "trackMetadataTitle": "Info Lagu", - "@trackMetadataTitle": { - "description": "Track metadata screen title" - }, - "trackMetadataArtist": "Artis", - "@trackMetadataArtist": { - "description": "Metadata field - artist name" - }, - "trackMetadataAlbum": "Album", - "@trackMetadataAlbum": { - "description": "Metadata field - album name" - }, - "trackMetadataDuration": "Durasi", - "@trackMetadataDuration": { - "description": "Metadata field - track length" - }, - "trackMetadataQuality": "Kualitas", - "@trackMetadataQuality": { - "description": "Metadata field - audio quality" - }, - "trackMetadataPath": "Lokasi File", - "@trackMetadataPath": { - "description": "Metadata field - file location" - }, - "trackMetadataDownloadedAt": "Diunduh", - "@trackMetadataDownloadedAt": { - "description": "Metadata field - download date" - }, - "trackMetadataService": "Layanan", - "@trackMetadataService": { - "description": "Metadata field - download service used" - }, - "trackMetadataPlay": "Putar", - "@trackMetadataPlay": { - "description": "Action button - play track" - }, - "trackMetadataShare": "Bagikan", - "@trackMetadataShare": { - "description": "Action button - share track" - }, - "trackMetadataDelete": "Hapus", - "@trackMetadataDelete": { - "description": "Action button - delete track" - }, - "trackMetadataRedownload": "Unduh ulang", - "@trackMetadataRedownload": { - "description": "Action button - download again" - }, - "trackMetadataOpenFolder": "Buka Folder", - "@trackMetadataOpenFolder": { - "description": "Action button - open containing folder" - }, - "setupTitle": "Selamat Datang di SpotiFLAC", - "@setupTitle": { - "description": "Setup wizard title" - }, - "setupSubtitle": "Mari mulai pengaturan", - "@setupSubtitle": { - "description": "Setup wizard subtitle" - }, - "setupStoragePermission": "Izin Penyimpanan", - "@setupStoragePermission": { - "description": "Storage permission step title" - }, - "setupStoragePermissionSubtitle": "Diperlukan untuk menyimpan file unduhan", - "@setupStoragePermissionSubtitle": { - "description": "Explanation for storage permission" - }, - "setupStoragePermissionGranted": "Izin diberikan", - "@setupStoragePermissionGranted": { - "description": "Status when permission granted" - }, - "setupStoragePermissionDenied": "Izin ditolak", - "@setupStoragePermissionDenied": { - "description": "Status when permission denied" - }, - "setupGrantPermission": "Berikan Izin", - "@setupGrantPermission": { - "description": "Button to request permission" - }, - "setupDownloadLocation": "Lokasi Unduhan", - "@setupDownloadLocation": { - "description": "Download folder step title" - }, - "setupChooseFolder": "Pilih Folder", - "@setupChooseFolder": { - "description": "Button to pick folder" - }, - "setupContinue": "Lanjutkan", - "@setupContinue": { - "description": "Continue to next step button" - }, - "setupSkip": "Lewati untuk sekarang", - "@setupSkip": { - "description": "Skip current step button" - }, - "setupStorageAccessRequired": "Akses Penyimpanan Diperlukan", - "@setupStorageAccessRequired": { - "description": "Title when storage access needed" - }, - "setupStorageAccessMessage": "SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.", - "@setupStorageAccessMessage": { - "description": "Explanation for storage access" - }, - "setupStorageAccessMessageAndroid11": "Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.", - "@setupStorageAccessMessageAndroid11": { - "description": "Android 11+ specific explanation" - }, - "setupOpenSettings": "Buka Pengaturan", - "@setupOpenSettings": { - "description": "Button to open system settings" - }, - "setupPermissionDeniedMessage": "Izin ditolak. Harap berikan semua izin untuk melanjutkan.", - "@setupPermissionDeniedMessage": { - "description": "Error when permission denied" - }, - "setupPermissionRequired": "Izin {permissionType} Diperlukan", - "@setupPermissionRequired": { - "description": "Generic permission required title", - "placeholders": { - "permissionType": { - "type": "String", - "description": "Type of permission (Storage/Notification)" - } - } - }, - "setupPermissionRequiredMessage": "Izin {permissionType} diperlukan untuk pengalaman terbaik. Anda dapat mengubahnya nanti di Pengaturan.", - "@setupPermissionRequiredMessage": { - "description": "Generic permission required message", - "placeholders": { - "permissionType": { - "type": "String" - } - } - }, - "setupSelectDownloadFolder": "Pilih Folder Unduhan", - "@setupSelectDownloadFolder": { - "description": "Folder selection step title" - }, - "setupUseDefaultFolder": "Gunakan Folder Default?", - "@setupUseDefaultFolder": { - "description": "Dialog title for default folder" - }, - "setupNoFolderSelected": "Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?", - "@setupNoFolderSelected": { - "description": "Prompt when no folder selected" - }, - "setupUseDefault": "Gunakan Default", - "@setupUseDefault": { - "description": "Button to use default folder" - }, - "setupDownloadLocationTitle": "Lokasi Unduhan", - "@setupDownloadLocationTitle": { - "description": "Download location dialog title" - }, - "setupDownloadLocationIosMessage": "Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.", - "@setupDownloadLocationIosMessage": { - "description": "iOS-specific folder info" - }, - "setupAppDocumentsFolder": "Folder Documents Aplikasi", - "@setupAppDocumentsFolder": { - "description": "iOS documents folder option" - }, - "setupAppDocumentsFolderSubtitle": "Direkomendasikan - dapat diakses via aplikasi Files", - "@setupAppDocumentsFolderSubtitle": { - "description": "Subtitle for documents folder" - }, - "setupChooseFromFiles": "Pilih dari Files", - "@setupChooseFromFiles": { - "description": "iOS file picker option" - }, - "setupChooseFromFilesSubtitle": "Pilih lokasi iCloud atau lainnya", - "@setupChooseFromFilesSubtitle": { - "description": "Subtitle for file picker" - }, - "setupIosEmptyFolderWarning": "Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.", - "@setupIosEmptyFolderWarning": { - "description": "iOS folder selection warning" - }, - "setupDownloadInFlac": "Unduh lagu Spotify dalam format FLAC", - "@setupDownloadInFlac": { - "description": "App tagline in setup" - }, - "setupStepStorage": "Penyimpanan", - "@setupStepStorage": { - "description": "Setup step indicator - storage" - }, - "setupStepNotification": "Notifikasi", - "@setupStepNotification": { - "description": "Setup step indicator - notification" - }, - "setupStepFolder": "Folder", - "@setupStepFolder": { - "description": "Setup step indicator - folder" - }, - "setupStepSpotify": "Spotify", - "@setupStepSpotify": { - "description": "Setup step indicator - Spotify API" - }, - "setupStepPermission": "Izin", - "@setupStepPermission": { - "description": "Setup step indicator - permission" - }, - "setupStorageGranted": "Izin Penyimpanan Diberikan!", - "@setupStorageGranted": { - "description": "Success message for storage permission" - }, - "setupStorageRequired": "Izin Penyimpanan Diperlukan", - "@setupStorageRequired": { - "description": "Title when storage permission needed" - }, - "setupStorageDescription": "SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.", - "@setupStorageDescription": { - "description": "Explanation for storage permission" - }, - "setupNotificationGranted": "Izin Notifikasi Diberikan!", - "@setupNotificationGranted": { - "description": "Success message for notification permission" - }, - "setupNotificationEnable": "Aktifkan Notifikasi", - "@setupNotificationEnable": { - "description": "Button to enable notifications" - }, - "setupNotificationDescription": "Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.", - "@setupNotificationDescription": { - "description": "Explanation for notifications" - }, - "setupFolderSelected": "Folder Unduhan Dipilih!", - "@setupFolderSelected": { - "description": "Success message for folder selection" - }, - "setupFolderChoose": "Pilih Folder Unduhan", - "@setupFolderChoose": { - "description": "Button to choose folder" - }, - "setupFolderDescription": "Pilih folder tempat musik yang diunduh akan disimpan.", - "@setupFolderDescription": { - "description": "Explanation for folder selection" - }, - "setupChangeFolder": "Ubah Folder", - "@setupChangeFolder": { - "description": "Button to change selected folder" - }, - "setupSelectFolder": "Pilih Folder", - "@setupSelectFolder": { - "description": "Button to select folder" - }, - "setupSpotifyApiOptional": "Spotify API (Opsional)", - "@setupSpotifyApiOptional": { - "description": "Spotify API step title" - }, - "setupSpotifyApiDescription": "Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.", - "@setupSpotifyApiDescription": { - "description": "Explanation for Spotify API" - }, - "setupUseSpotifyApi": "Gunakan Spotify API", - "@setupUseSpotifyApi": { - "description": "Toggle to enable Spotify API" - }, - "setupEnterCredentialsBelow": "Masukkan kredensial Anda di bawah", - "@setupEnterCredentialsBelow": { - "description": "Prompt to enter credentials" - }, - "setupUsingDeezer": "Menggunakan Deezer (tidak perlu akun)", - "@setupUsingDeezer": { - "description": "Status when using Deezer" - }, - "setupEnterClientId": "Masukkan Spotify Client ID", - "@setupEnterClientId": { - "description": "Placeholder for client ID field" - }, - "setupEnterClientSecret": "Masukkan Spotify Client Secret", - "@setupEnterClientSecret": { - "description": "Placeholder for client secret field" - }, - "setupGetFreeCredentials": "Dapatkan kredensial API gratis dari Spotify Developer Dashboard.", - "@setupGetFreeCredentials": { - "description": "Info about getting Spotify credentials" - }, - "setupEnableNotifications": "Aktifkan Notifikasi", - "@setupEnableNotifications": { - "description": "Button to enable notifications" - }, - "setupProceedToNextStep": "Anda dapat melanjutkan ke langkah berikutnya.", - "@setupProceedToNextStep": { - "description": "Message after completing a step" - }, - "setupNotificationProgressDescription": "Anda akan menerima notifikasi progres unduhan.", - "@setupNotificationProgressDescription": { - "description": "Info about notification usage" - }, - "setupNotificationBackgroundDescription": "Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.", - "@setupNotificationBackgroundDescription": { - "description": "Detailed notification explanation" - }, - "setupSkipForNow": "Lewati untuk sekarang", - "@setupSkipForNow": { - "description": "Skip button text" - }, - "setupBack": "Kembali", - "@setupBack": { - "description": "Back button text" - }, - "setupNext": "Lanjut", - "@setupNext": { - "description": "Next button text" - }, - "setupGetStarted": "Mulai", - "@setupGetStarted": { - "description": "Final setup button" - }, - "setupSkipAndStart": "Lewati & Mulai", - "@setupSkipAndStart": { - "description": "Skip setup and start app" - }, - "setupAllowAccessToManageFiles": "Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.", - "@setupAllowAccessToManageFiles": { - "description": "Instruction for file access permission" - }, - "setupGetCredentialsFromSpotify": "Dapatkan kredensial dari developer.spotify.com", - "@setupGetCredentialsFromSpotify": { - "description": "Link text for Spotify developer portal" - }, - "dialogCancel": "Batal", - "@dialogCancel": { - "description": "Dialog button - cancel action" - }, - "dialogOk": "OK", - "@dialogOk": { - "description": "Dialog button - confirm/acknowledge" - }, - "dialogSave": "Simpan", - "@dialogSave": { - "description": "Dialog button - save changes" - }, - "dialogDelete": "Hapus", - "@dialogDelete": { - "description": "Dialog button - delete item" - }, - "dialogRetry": "Coba Lagi", - "@dialogRetry": { - "description": "Dialog button - retry action" - }, - "dialogClose": "Tutup", - "@dialogClose": { - "description": "Dialog button - close dialog" - }, - "dialogYes": "Ya", - "@dialogYes": { - "description": "Dialog button - confirm yes" - }, - "dialogNo": "Tidak", - "@dialogNo": { - "description": "Dialog button - confirm no" - }, - "dialogClear": "Hapus", - "@dialogClear": { - "description": "Dialog button - clear items" - }, - "dialogConfirm": "Konfirmasi", - "@dialogConfirm": { - "description": "Dialog button - confirm action" - }, - "dialogDone": "Selesai", - "@dialogDone": { - "description": "Dialog button - action completed" - }, - "dialogImport": "Impor", - "@dialogImport": { - "description": "Dialog button - import data" - }, - "dialogDiscard": "Buang", - "@dialogDiscard": { - "description": "Dialog button - discard changes" - }, - "dialogRemove": "Hapus", - "@dialogRemove": { - "description": "Dialog button - remove item" - }, - "dialogUninstall": "Copot", - "@dialogUninstall": { - "description": "Dialog button - uninstall extension" - }, - "dialogDiscardChanges": "Buang Perubahan?", - "@dialogDiscardChanges": { - "description": "Dialog title - unsaved changes warning" - }, - "dialogUnsavedChanges": "Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?", - "@dialogUnsavedChanges": { - "description": "Dialog message - unsaved changes" - }, - "dialogDownloadFailed": "Unduhan Gagal", - "@dialogDownloadFailed": { - "description": "Dialog title - download error" - }, - "dialogTrackLabel": "Lagu:", - "@dialogTrackLabel": { - "description": "Label for track name in error dialog" - }, - "dialogArtistLabel": "Artis:", - "@dialogArtistLabel": { - "description": "Label for artist name in error dialog" - }, - "dialogErrorLabel": "Error:", - "@dialogErrorLabel": { - "description": "Label for error message" - }, - "dialogClearAll": "Hapus Semua", - "@dialogClearAll": { - "description": "Dialog title - clear all items" - }, - "dialogClearAllDownloads": "Apakah Anda yakin ingin menghapus semua unduhan?", - "@dialogClearAllDownloads": { - "description": "Dialog message - clear downloads confirmation" - }, - "dialogRemoveFromDevice": "Hapus dari perangkat?", - "@dialogRemoveFromDevice": { - "description": "Dialog title - delete file confirmation" - }, - "dialogRemoveExtension": "Hapus Ekstensi", - "@dialogRemoveExtension": { - "description": "Dialog title - uninstall extension" - }, - "dialogRemoveExtensionMessage": "Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.", - "@dialogRemoveExtensionMessage": { - "description": "Dialog message - uninstall confirmation" - }, - "dialogUninstallExtension": "Copot Ekstensi?", - "@dialogUninstallExtension": { - "description": "Dialog title - uninstall extension" - }, - "dialogUninstallExtensionMessage": "Apakah Anda yakin ingin menghapus {extensionName}?", - "@dialogUninstallExtensionMessage": { - "description": "Dialog message - uninstall specific extension", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "dialogClearHistoryTitle": "Hapus Riwayat", - "@dialogClearHistoryTitle": { - "description": "Dialog title - clear download history" - }, - "dialogClearHistoryMessage": "Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.", - "@dialogClearHistoryMessage": { - "description": "Dialog message - clear history confirmation" - }, - "dialogDeleteSelectedTitle": "Hapus yang Dipilih", - "@dialogDeleteSelectedTitle": { - "description": "Dialog title - delete selected items" - }, - "dialogDeleteSelectedMessage": "Hapus {count} {count, plural, =1{lagu} other{lagu}} dari riwayat?\n\nIni juga akan menghapus file dari penyimpanan.", - "@dialogDeleteSelectedMessage": { - "description": "Dialog message - delete selected tracks", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dialogImportPlaylistTitle": "Impor Playlist", - "@dialogImportPlaylistTitle": { - "description": "Dialog title - import CSV playlist" - }, - "dialogImportPlaylistMessage": "Ditemukan {count} lagu di CSV. Tambahkan ke antrian unduhan?", - "csvImportTracks": "{count} tracks from CSV", - "@csvImportTracks": { - "description": "Label shown in quality picker for CSV import", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@dialogImportPlaylistMessage": { - "description": "Dialog message - import playlist confirmation", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarAddedToQueue": "Menambahkan \"{trackName}\" ke antrian", - "@snackbarAddedToQueue": { - "description": "Snackbar - track added to download queue", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "snackbarAddedTracksToQueue": "Menambahkan {count} lagu ke antrian", - "@snackbarAddedTracksToQueue": { - "description": "Snackbar - multiple tracks added to queue", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarAlreadyDownloaded": "\"{trackName}\" sudah diunduh", - "@snackbarAlreadyDownloaded": { - "description": "Snackbar - track already exists", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "snackbarHistoryCleared": "Riwayat dihapus", - "@snackbarHistoryCleared": { - "description": "Snackbar - history deleted" - }, - "snackbarCredentialsSaved": "Kredensial disimpan", - "@snackbarCredentialsSaved": { - "description": "Snackbar - Spotify credentials saved" - }, - "snackbarCredentialsCleared": "Kredensial dihapus", - "@snackbarCredentialsCleared": { - "description": "Snackbar - Spotify credentials removed" - }, - "snackbarDeletedTracks": "Menghapus {count} {count, plural, =1{lagu} other{lagu}}", - "@snackbarDeletedTracks": { - "description": "Snackbar - tracks deleted", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarCannotOpenFile": "Tidak dapat membuka file: {error}", - "@snackbarCannotOpenFile": { - "description": "Snackbar - file open error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "snackbarFillAllFields": "Harap isi semua field", - "@snackbarFillAllFields": { - "description": "Snackbar - validation error" - }, - "snackbarViewQueue": "Lihat Antrian", - "@snackbarViewQueue": { - "description": "Snackbar action - view download queue" - }, - "snackbarFailedToLoad": "Gagal memuat: {error}", - "@snackbarFailedToLoad": { - "description": "Snackbar - loading error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "snackbarUrlCopied": "URL {platform} disalin ke clipboard", - "@snackbarUrlCopied": { - "description": "Snackbar - URL copied", - "placeholders": { - "platform": { - "type": "String", - "description": "Platform name (Spotify/Deezer)" - } - } - }, - "snackbarFileNotFound": "File tidak ditemukan", - "@snackbarFileNotFound": { - "description": "Snackbar - file doesn't exist" - }, - "snackbarSelectExtFile": "Harap pilih file .spotiflac-ext", - "@snackbarSelectExtFile": { - "description": "Snackbar - wrong file type selected" - }, - "snackbarProviderPrioritySaved": "Prioritas provider disimpan", - "@snackbarProviderPrioritySaved": { - "description": "Snackbar - provider order saved" - }, - "snackbarMetadataProviderSaved": "Prioritas provider metadata disimpan", - "@snackbarMetadataProviderSaved": { - "description": "Snackbar - metadata provider order saved" - }, - "snackbarExtensionInstalled": "{extensionName} terpasang.", - "@snackbarExtensionInstalled": { - "description": "Snackbar - extension installed successfully", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "snackbarExtensionUpdated": "{extensionName} diperbarui.", - "@snackbarExtensionUpdated": { - "description": "Snackbar - extension updated successfully", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "snackbarFailedToInstall": "Gagal memasang ekstensi", - "@snackbarFailedToInstall": { - "description": "Snackbar - extension install error" - }, - "snackbarFailedToUpdate": "Gagal memperbarui ekstensi", - "@snackbarFailedToUpdate": { - "description": "Snackbar - extension update error" - }, - "errorRateLimited": "Dibatasi", - "@errorRateLimited": { - "description": "Error title - too many requests" - }, - "errorRateLimitedMessage": "Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.", - "@errorRateLimitedMessage": { - "description": "Error message - rate limit explanation" - }, - "errorFailedToLoad": "Gagal memuat {item}", - "@errorFailedToLoad": { - "description": "Error message - loading failed", - "placeholders": { - "item": { - "type": "String", - "description": "Item that failed to load (album/playlist/etc)" - } - } - }, - "errorNoTracksFound": "Tidak ada lagu ditemukan", - "@errorNoTracksFound": { - "description": "Error - search returned no results" - }, - "errorMissingExtensionSource": "Tidak dapat memuat {item}: sumber ekstensi tidak ada", - "@errorMissingExtensionSource": { - "description": "Error - extension source not available", - "placeholders": { - "item": { - "type": "String" - } - } - }, - "statusQueued": "Mengantri", - "@statusQueued": { - "description": "Download status - waiting in queue" - }, - "statusDownloading": "Mengunduh", - "@statusDownloading": { - "description": "Download status - in progress" - }, - "statusFinalizing": "Menyelesaikan", - "@statusFinalizing": { - "description": "Download status - writing metadata" - }, - "statusCompleted": "Selesai", - "@statusCompleted": { - "description": "Download status - finished" - }, - "statusFailed": "Gagal", - "@statusFailed": { - "description": "Download status - error occurred" - }, - "statusSkipped": "Dilewati", - "@statusSkipped": { - "description": "Download status - already exists" - }, - "statusPaused": "Dijeda", - "@statusPaused": { - "description": "Download status - paused" - }, - "actionPause": "Jeda", - "@actionPause": { - "description": "Action button - pause download" - }, - "actionResume": "Lanjutkan", - "@actionResume": { - "description": "Action button - resume download" - }, - "actionCancel": "Batal", - "@actionCancel": { - "description": "Action button - cancel operation" - }, - "actionStop": "Hentikan", - "@actionStop": { - "description": "Action button - stop operation" - }, - "actionSelect": "Pilih", - "@actionSelect": { - "description": "Action button - enter selection mode" - }, - "actionSelectAll": "Pilih Semua", - "@actionSelectAll": { - "description": "Action button - select all items" - }, - "actionDeselect": "Batal Pilih", - "@actionDeselect": { - "description": "Action button - deselect all" - }, - "actionPaste": "Tempel", - "@actionPaste": { - "description": "Action button - paste from clipboard" - }, - "actionImportCsv": "Impor CSV", - "@actionImportCsv": { - "description": "Action button - import CSV file" - }, - "actionRemoveCredentials": "Hapus Kredensial", - "@actionRemoveCredentials": { - "description": "Action button - delete Spotify credentials" - }, - "actionSaveCredentials": "Simpan Kredensial", - "@actionSaveCredentials": { - "description": "Action button - save Spotify credentials" - }, - "selectionSelected": "{count} dipilih", - "@selectionSelected": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "selectionAllSelected": "Semua lagu dipilih", - "@selectionAllSelected": { - "description": "Status - all items selected" - }, - "selectionTapToSelect": "Ketuk lagu untuk memilih", - "@selectionTapToSelect": { - "description": "Hint - how to select items" - }, - "selectionDeleteTracks": "Hapus {count} {count, plural, =1{lagu} other{lagu}}", - "@selectionDeleteTracks": { - "description": "Delete button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "selectionSelectToDelete": "Pilih lagu untuk dihapus", - "@selectionSelectToDelete": { - "description": "Placeholder when nothing selected" - }, - "progressFetchingMetadata": "Mengambil metadata... {current}/{total}", - "@progressFetchingMetadata": { - "description": "Progress indicator - loading track info", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "progressReadingCsv": "Membaca CSV...", - "@progressReadingCsv": { - "description": "Progress indicator - parsing CSV file" - }, - "searchSongs": "Lagu", - "@searchSongs": { - "description": "Search result category - songs" - }, - "searchArtists": "Artis", - "@searchArtists": { - "description": "Search result category - artists" - }, - "searchAlbums": "Album", - "@searchAlbums": { - "description": "Search result category - albums" - }, - "searchPlaylists": "Playlist", - "@searchPlaylists": { - "description": "Search result category - playlists" - }, - "tooltipPlay": "Putar", - "@tooltipPlay": { - "description": "Tooltip - play button" - }, - "tooltipCancel": "Batal", - "@tooltipCancel": { - "description": "Tooltip - cancel button" - }, - "tooltipStop": "Hentikan", - "@tooltipStop": { - "description": "Tooltip - stop button" - }, - "tooltipRetry": "Coba Lagi", - "@tooltipRetry": { - "description": "Tooltip - retry button" - }, - "tooltipRemove": "Hapus", - "@tooltipRemove": { - "description": "Tooltip - remove button" - }, - "tooltipClear": "Hapus", - "@tooltipClear": { - "description": "Tooltip - clear button" - }, - "tooltipPaste": "Tempel", - "@tooltipPaste": { - "description": "Tooltip - paste button" - }, - "filenameFormat": "Format Nama File", - "@filenameFormat": { - "description": "Setting title - filename pattern" - }, - "filenameFormatPreview": "Pratinjau: {preview}", - "@filenameFormatPreview": { - "description": "Preview of filename pattern", - "placeholders": { - "preview": { - "type": "String" - } - } - }, - "filenameAvailablePlaceholders": "Placeholder yang tersedia:", - "@filenameAvailablePlaceholders": { - "description": "Label for placeholder list" - }, - "filenameHint": "{artist} - {title}", - "@filenameHint": { - "description": "Default filename format hint" - }, - "folderOrganization": "Organisasi Folder", - "@folderOrganization": { - "description": "Setting title - folder structure" - }, - "folderOrganizationNone": "Tidak ada", - "@folderOrganizationNone": { - "description": "Folder option - flat structure" - }, - "folderOrganizationByArtist": "Berdasarkan Artis", - "@folderOrganizationByArtist": { - "description": "Folder option - artist folders" - }, - "folderOrganizationByAlbum": "Berdasarkan Album", - "@folderOrganizationByAlbum": { - "description": "Folder option - album folders" - }, - "folderOrganizationByArtistAlbum": "Berdasarkan Artis & Album", - "@folderOrganizationByArtistAlbum": { - "description": "Folder option - nested folders" - }, - "folderOrganizationDescription": "Atur file yang diunduh ke dalam folder", - "@folderOrganizationDescription": { - "description": "Folder organization sheet description" - }, - "folderOrganizationNoneSubtitle": "Semua file di folder unduhan", - "@folderOrganizationNoneSubtitle": { - "description": "Subtitle for no organization option" - }, - "folderOrganizationByArtistSubtitle": "Folder terpisah untuk setiap artis", - "@folderOrganizationByArtistSubtitle": { - "description": "Subtitle for artist folder option" - }, - "folderOrganizationByAlbumSubtitle": "Folder terpisah untuk setiap album", - "@folderOrganizationByAlbumSubtitle": { - "description": "Subtitle for album folder option" - }, - "folderOrganizationByArtistAlbumSubtitle": "Folder bersarang untuk artis dan album", - "@folderOrganizationByArtistAlbumSubtitle": { - "description": "Subtitle for nested folder option" - }, - "updateAvailable": "Pembaruan Tersedia", - "@updateAvailable": { - "description": "Update dialog title" - }, - "updateNewVersion": "Versi {version} tersedia", - "@updateNewVersion": { - "description": "Update available message", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "updateDownload": "Unduh", - "@updateDownload": { - "description": "Update button - download update" - }, - "updateLater": "Nanti", - "@updateLater": { - "description": "Update button - dismiss" - }, - "updateChangelog": "Log Perubahan", - "@updateChangelog": { - "description": "Link to changelog" - }, - "updateStartingDownload": "Memulai unduhan...", - "@updateStartingDownload": { - "description": "Update status - initializing" - }, - "updateDownloadFailed": "Unduhan gagal", - "@updateDownloadFailed": { - "description": "Update error title" - }, - "updateFailedMessage": "Gagal mengunduh pembaruan", - "@updateFailedMessage": { - "description": "Update error message" - }, - "updateNewVersionReady": "Versi baru sudah siap", - "@updateNewVersionReady": { - "description": "Update subtitle" - }, - "updateCurrent": "Saat ini", - "@updateCurrent": { - "description": "Label for current version" - }, - "updateNew": "Baru", - "@updateNew": { - "description": "Label for new version" - }, - "updateDownloading": "Mengunduh...", - "@updateDownloading": { - "description": "Update status - downloading" - }, - "updateWhatsNew": "Yang Baru", - "@updateWhatsNew": { - "description": "Changelog section title" - }, - "updateDownloadInstall": "Unduh & Pasang", - "@updateDownloadInstall": { - "description": "Update button - download and install" - }, - "updateDontRemind": "Jangan ingatkan", - "@updateDontRemind": { - "description": "Update button - skip this version" - }, - "providerPriority": "Prioritas Provider", - "@providerPriority": { - "description": "Setting title - download provider order" - }, - "providerPrioritySubtitle": "Seret untuk mengatur ulang provider unduhan", - "@providerPrioritySubtitle": { - "description": "Subtitle for provider priority" - }, - "providerPriorityTitle": "Prioritas Provider", - "@providerPriorityTitle": { - "description": "Provider priority page title" - }, - "providerPriorityDescription": "Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.", - "@providerPriorityDescription": { - "description": "Provider priority page description" - }, - "providerPriorityInfo": "Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.", - "@providerPriorityInfo": { - "description": "Info tip about fallback behavior" - }, - "providerBuiltIn": "Bawaan", - "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" - }, - "providerExtension": "Ekstensi", - "@providerExtension": { - "description": "Label for extension-provided providers" - }, - "metadataProviderPriority": "Prioritas Provider Metadata", - "@metadataProviderPriority": { - "description": "Setting title - metadata provider order" - }, - "metadataProviderPrioritySubtitle": "Urutan yang digunakan saat mengambil metadata lagu", - "@metadataProviderPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "metadataProviderPriorityTitle": "Prioritas Metadata", - "@metadataProviderPriorityTitle": { - "description": "Metadata priority page title" - }, - "metadataProviderPriorityDescription": "Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.", - "@metadataProviderPriorityDescription": { - "description": "Metadata priority page description" - }, - "metadataProviderPriorityInfo": "Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.", - "@metadataProviderPriorityInfo": { - "description": "Info tip about rate limits" - }, - "metadataNoRateLimits": "Tidak ada batas rate", - "@metadataNoRateLimits": { - "description": "Deezer provider description" - }, - "metadataMayRateLimit": "Mungkin dibatasi rate", - "@metadataMayRateLimit": { - "description": "Spotify provider description" - }, - "logTitle": "Log", - "@logTitle": { - "description": "Logs screen title" - }, - "logCopy": "Salin Log", - "@logCopy": { - "description": "Action - copy logs to clipboard" - }, - "logClear": "Hapus Log", - "@logClear": { - "description": "Action - delete all logs" - }, - "logShare": "Bagikan Log", - "@logShare": { - "description": "Action - share logs file" - }, - "logEmpty": "Belum ada log", - "@logEmpty": { - "description": "Empty state title" - }, - "logCopied": "Log disalin ke clipboard", - "@logCopied": { - "description": "Snackbar - logs copied" - }, - "logSearchHint": "Cari log...", - "@logSearchHint": { - "description": "Log search placeholder" - }, - "logFilterLevel": "Level", - "@logFilterLevel": { - "description": "Filter by log level" - }, - "logFilterSection": "Filter", - "@logFilterSection": { - "description": "Filter section title" - }, - "logShareLogs": "Bagikan log", - "@logShareLogs": { - "description": "Share button tooltip" - }, - "logClearLogs": "Hapus log", - "@logClearLogs": { - "description": "Clear button tooltip" - }, - "logClearLogsTitle": "Hapus Log", - "@logClearLogsTitle": { - "description": "Clear logs dialog title" - }, - "logClearLogsMessage": "Apakah Anda yakin ingin menghapus semua log?", - "@logClearLogsMessage": { - "description": "Clear logs confirmation message" - }, - "logIspBlocking": "PEMBLOKIRAN ISP TERDETEKSI", - "@logIspBlocking": { - "description": "Error category - ISP blocking" - }, - "logRateLimited": "DIBATASI", - "@logRateLimited": { - "description": "Error category - rate limiting" - }, - "logNetworkError": "ERROR JARINGAN", - "@logNetworkError": { - "description": "Error category - network issues" - }, - "logTrackNotFound": "LAGU TIDAK DITEMUKAN", - "@logTrackNotFound": { - "description": "Error category - missing tracks" - }, - "logFilterBySeverity": "Filter log berdasarkan tingkat keparahan", - "@logFilterBySeverity": { - "description": "Filter dialog title" - }, - "logNoLogsYet": "Belum ada log", - "@logNoLogsYet": { - "description": "Empty state title" - }, - "logNoLogsYetSubtitle": "Log akan muncul di sini saat Anda menggunakan aplikasi", - "@logNoLogsYetSubtitle": { - "description": "Empty state subtitle" - }, - "logIssueSummary": "Ringkasan Masalah", - "@logIssueSummary": { - "description": "Section header for error summary" - }, - "logIspBlockingDescription": "ISP Anda mungkin memblokir akses ke layanan unduhan", - "@logIspBlockingDescription": { - "description": "ISP blocking explanation" - }, - "logIspBlockingSuggestion": "Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8", - "@logIspBlockingSuggestion": { - "description": "ISP blocking fix suggestion" - }, - "logRateLimitedDescription": "Terlalu banyak permintaan ke layanan", - "@logRateLimitedDescription": { - "description": "Rate limit explanation" - }, - "logRateLimitedSuggestion": "Tunggu beberapa menit sebelum mencoba lagi", - "@logRateLimitedSuggestion": { - "description": "Rate limit fix suggestion" - }, - "logNetworkErrorDescription": "Masalah koneksi terdeteksi", - "@logNetworkErrorDescription": { - "description": "Network error explanation" - }, - "logNetworkErrorSuggestion": "Periksa koneksi internet Anda", - "@logNetworkErrorSuggestion": { - "description": "Network error fix suggestion" - }, - "logTrackNotFoundDescription": "Beberapa lagu tidak dapat ditemukan di layanan unduhan", - "@logTrackNotFoundDescription": { - "description": "Track not found explanation" - }, - "logTrackNotFoundSuggestion": "Lagu mungkin tidak tersedia dalam kualitas lossless", - "@logTrackNotFoundSuggestion": { - "description": "Track not found explanation" - }, - "logTotalErrors": "Total error: {count}", - "@logTotalErrors": { - "description": "Error count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "logAffected": "Terpengaruh: {domains}", - "@logAffected": { - "description": "Affected domains display", - "placeholders": { - "domains": { - "type": "String" - } - } - }, - "logEntriesFiltered": "Entri ({count} difilter)", - "@logEntriesFiltered": { - "description": "Log count with filter active", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "logEntries": "Entri ({count})", - "@logEntries": { - "description": "Total log count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "credentialsTitle": "Kredensial Spotify", - "@credentialsTitle": { - "description": "Credentials dialog title" - }, - "credentialsDescription": "Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.", - "@credentialsDescription": { - "description": "Credentials dialog explanation" - }, - "credentialsClientId": "Client ID", - "@credentialsClientId": { - "description": "Client ID field label - DO NOT TRANSLATE" - }, - "credentialsClientIdHint": "Tempel Client ID", - "@credentialsClientIdHint": { - "description": "Client ID placeholder" - }, - "credentialsClientSecret": "Client Secret", - "@credentialsClientSecret": { - "description": "Client Secret field label - DO NOT TRANSLATE" - }, - "credentialsClientSecretHint": "Tempel Client Secret", - "@credentialsClientSecretHint": { - "description": "Client Secret placeholder" - }, - "channelStable": "Stabil", - "@channelStable": { - "description": "Update channel - stable releases" - }, - "channelPreview": "Preview", - "@channelPreview": { - "description": "Update channel - beta/preview releases" - }, - "sectionSearchSource": "Sumber Pencarian", - "@sectionSearchSource": { - "description": "Settings section header" - }, - "sectionDownload": "Unduhan", - "@sectionDownload": { - "description": "Settings section header" - }, - "sectionPerformance": "Performa", - "@sectionPerformance": { - "description": "Settings section header" - }, - "sectionApp": "Aplikasi", - "@sectionApp": { - "description": "Settings section header" - }, - "sectionData": "Data", - "@sectionData": { - "description": "Settings section header" - }, - "sectionDebug": "Debug", - "@sectionDebug": { - "description": "Settings section header" - }, - "sectionService": "Layanan", - "@sectionService": { - "description": "Settings section header" - }, - "sectionAudioQuality": "Kualitas Audio", - "@sectionAudioQuality": { - "description": "Settings section header" - }, - "sectionFileSettings": "Pengaturan File", - "@sectionFileSettings": { - "description": "Settings section header" - }, - "sectionLyrics": "Lyrics", - "@sectionLyrics": { - "description": "Settings section header" - }, - "lyricsMode": "Lyrics Mode", - "@lyricsMode": { - "description": "Setting - how to save lyrics" - }, - "lyricsModeDescription": "Choose how lyrics are saved with your downloads", - "@lyricsModeDescription": { - "description": "Lyrics mode picker description" - }, - "lyricsModeEmbed": "Embed in file", - "@lyricsModeEmbed": { - "description": "Lyrics mode option - embed in audio file" - }, - "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", - "@lyricsModeEmbedSubtitle": { - "description": "Subtitle for embed option" - }, - "lyricsModeExternal": "External .lrc file", - "@lyricsModeExternal": { - "description": "Lyrics mode option - separate LRC file" - }, - "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", - "@lyricsModeExternalSubtitle": { - "description": "Subtitle for external option" - }, - "lyricsModeBoth": "Both", - "@lyricsModeBoth": { - "description": "Lyrics mode option - embed and external" - }, - "lyricsModeBothSubtitle": "Embed and save .lrc file", - "@lyricsModeBothSubtitle": { - "description": "Subtitle for both option" - }, - "sectionColor": "Warna", - "@sectionColor": { - "description": "Settings section header" - }, - "sectionTheme": "Tema", - "@sectionTheme": { - "description": "Settings section header" - }, - "sectionLayout": "Tata Letak", - "@sectionLayout": { - "description": "Settings section header" - }, - "sectionLanguage": "Bahasa", - "@sectionLanguage": { - "description": "Settings section header for language" - }, - "appearanceLanguage": "Bahasa Aplikasi", - "@appearanceLanguage": { - "description": "Language setting title" - }, - "appearanceLanguageSubtitle": "Pilih bahasa yang kamu inginkan", - "@appearanceLanguageSubtitle": { - "description": "Language setting subtitle" - }, - "settingsAppearanceSubtitle": "Tema, warna, tampilan", - "@settingsAppearanceSubtitle": { - "description": "Appearance settings description" - }, - "settingsDownloadSubtitle": "Layanan, kualitas, format nama file", - "@settingsDownloadSubtitle": { - "description": "Download settings description" - }, - "settingsOptionsSubtitle": "Fallback, lirik, cover art, pembaruan", - "@settingsOptionsSubtitle": { - "description": "Options settings description" - }, - "settingsExtensionsSubtitle": "Kelola provider unduhan", - "@settingsExtensionsSubtitle": { - "description": "Extensions settings description" - }, - "settingsLogsSubtitle": "Lihat log aplikasi untuk debugging", - "@settingsLogsSubtitle": { - "description": "Logs settings description" - }, - "loadingSharedLink": "Memuat link yang dibagikan...", - "@loadingSharedLink": { - "description": "Status when opening shared URL" - }, - "pressBackAgainToExit": "Tekan kembali sekali lagi untuk keluar", - "@pressBackAgainToExit": { - "description": "Exit confirmation message" - }, - "tracksHeader": "Lagu", - "@tracksHeader": { - "description": "Section header for track list" - }, - "downloadAllCount": "Unduh Semua ({count})", - "@downloadAllCount": { - "description": "Download all button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "tracksCount": "{count, plural, =1{1 lagu} other{{count} lagu}}", - "@tracksCount": { - "description": "Track count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "trackCopyFilePath": "Salin lokasi file", - "@trackCopyFilePath": { - "description": "Action - copy file path" - }, - "trackRemoveFromDevice": "Hapus dari perangkat", - "@trackRemoveFromDevice": { - "description": "Action - delete downloaded file" - }, - "trackLoadLyrics": "Muat Lirik", - "@trackLoadLyrics": { - "description": "Action - fetch lyrics" - }, - "trackMetadata": "Metadata", - "@trackMetadata": { - "description": "Tab title - track metadata" - }, - "trackFileInfo": "Info File", - "@trackFileInfo": { - "description": "Tab title - file information" - }, - "trackLyrics": "Lirik", - "@trackLyrics": { - "description": "Tab title - lyrics" - }, - "trackFileNotFound": "File tidak ditemukan", - "@trackFileNotFound": { - "description": "Error - file doesn't exist" - }, - "trackOpenInDeezer": "Buka di Deezer", - "@trackOpenInDeezer": { - "description": "Action - open track in Deezer app" - }, - "trackOpenInSpotify": "Buka di Spotify", - "@trackOpenInSpotify": { - "description": "Action - open track in Spotify app" - }, - "trackTrackName": "Nama lagu", - "@trackTrackName": { - "description": "Metadata label - track title" - }, - "trackArtist": "Artis", - "@trackArtist": { - "description": "Metadata label - artist name" - }, - "trackAlbumArtist": "Artis album", - "@trackAlbumArtist": { - "description": "Metadata label - album artist" - }, - "trackAlbum": "Album", - "@trackAlbum": { - "description": "Metadata label - album name" - }, - "trackTrackNumber": "Nomor lagu", - "@trackTrackNumber": { - "description": "Metadata label - track number" - }, - "trackDiscNumber": "Nomor disc", - "@trackDiscNumber": { - "description": "Metadata label - disc number" - }, - "trackDuration": "Durasi", - "@trackDuration": { - "description": "Metadata label - track length" - }, - "trackAudioQuality": "Kualitas audio", - "@trackAudioQuality": { - "description": "Metadata label - audio quality" - }, - "trackReleaseDate": "Tanggal rilis", - "@trackReleaseDate": { - "description": "Metadata label - release date" - }, - "trackGenre": "Genre", - "@trackGenre": { - "description": "Metadata label - music genre" - }, - "trackLabel": "Label", - "@trackLabel": { - "description": "Metadata label - record label" - }, - "trackCopyright": "Copyright", - "@trackCopyright": { - "description": "Metadata label - copyright information" - }, - "trackDownloaded": "Diunduh", - "@trackDownloaded": { - "description": "Metadata label - download date" - }, - "trackCopyLyrics": "Salin lirik", - "@trackCopyLyrics": { - "description": "Action - copy lyrics to clipboard" - }, - "trackLyricsNotAvailable": "Lirik tidak tersedia untuk lagu ini", - "@trackLyricsNotAvailable": { - "description": "Message when lyrics not found" - }, - "trackLyricsTimeout": "Permintaan timeout. Coba lagi nanti.", - "@trackLyricsTimeout": { - "description": "Message when lyrics request times out" - }, - "trackLyricsLoadFailed": "Gagal memuat lirik", - "@trackLyricsLoadFailed": { - "description": "Message when lyrics loading fails" - }, - "trackEmbedLyrics": "Embed Lyrics", - "@trackEmbedLyrics": { - "description": "Action - embed lyrics into audio file" - }, - "trackLyricsEmbedded": "Lyrics embedded successfully", - "@trackLyricsEmbedded": { - "description": "Snackbar - lyrics saved to file" - }, - "trackInstrumental": "Instrumental track", - "@trackInstrumental": { - "description": "Message when track is instrumental (no lyrics)" - }, - "trackCopiedToClipboard": "Disalin ke clipboard", - "@trackCopiedToClipboard": { - "description": "Snackbar - content copied" - }, - "trackDeleteConfirmTitle": "Hapus dari perangkat?", - "@trackDeleteConfirmTitle": { - "description": "Delete confirmation title" - }, - "trackDeleteConfirmMessage": "Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.", - "@trackDeleteConfirmMessage": { - "description": "Delete confirmation message" - }, - "trackCannotOpen": "Tidak dapat membuka: {message}", - "@trackCannotOpen": { - "description": "Error opening file", - "placeholders": { - "message": { - "type": "String" - } - } - }, - "dateToday": "Hari ini", - "@dateToday": { - "description": "Relative date - today" - }, - "dateYesterday": "Kemarin", - "@dateYesterday": { - "description": "Relative date - yesterday" - }, - "dateDaysAgo": "{count} hari lalu", - "@dateDaysAgo": { - "description": "Relative date - days ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dateWeeksAgo": "{count} minggu lalu", - "@dateWeeksAgo": { - "description": "Relative date - weeks ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dateMonthsAgo": "{count} bulan lalu", - "@dateMonthsAgo": { - "description": "Relative date - months ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "concurrentSequential": "Berurutan", - "@concurrentSequential": { - "description": "Download mode - one at a time" - }, - "concurrentParallel2": "2 Paralel", - "@concurrentParallel2": { - "description": "Download mode - 2 simultaneous" - }, - "concurrentParallel3": "3 Paralel", - "@concurrentParallel3": { - "description": "Download mode - 3 simultaneous" - }, - "tapToSeeError": "Ketuk untuk melihat detail error", - "@tapToSeeError": { - "description": "Tooltip for failed download" - }, - "storeFilterAll": "Semua", - "@storeFilterAll": { - "description": "Store filter - all extensions" - }, - "storeFilterMetadata": "Metadata", - "@storeFilterMetadata": { - "description": "Store filter - metadata providers" - }, - "storeFilterDownload": "Unduhan", - "@storeFilterDownload": { - "description": "Store filter - download providers" - }, - "storeFilterUtility": "Utilitas", - "@storeFilterUtility": { - "description": "Store filter - utility extensions" - }, - "storeFilterLyrics": "Lirik", - "@storeFilterLyrics": { - "description": "Store filter - lyrics providers" - }, - "storeFilterIntegration": "Integrasi", - "@storeFilterIntegration": { - "description": "Store filter - integrations" - }, - "storeClearFilters": "Hapus filter", - "@storeClearFilters": { - "description": "Button to clear all filters" - }, - "storeNoResults": "Tidak ada ekstensi ditemukan", - "@storeNoResults": { - "description": "Empty state when no extensions match filters" - }, - "extensionProviderPriority": "Prioritas Provider", - "@extensionProviderPriority": { - "description": "Extension capability - provider priority" - }, - "extensionInstallButton": "Pasang Ekstensi", - "@extensionInstallButton": { - "description": "Button to install extension" - }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", - "@extensionDefaultProvider": { - "description": "Default search provider option" - }, - "extensionDefaultProviderSubtitle": "Gunakan pencarian bawaan", - "@extensionDefaultProviderSubtitle": { - "description": "Subtitle for default provider" - }, - "extensionAuthor": "Pembuat", - "@extensionAuthor": { - "description": "Extension detail - author" - }, - "extensionId": "ID", - "@extensionId": { - "description": "Extension detail - unique ID" - }, - "extensionError": "Error", - "@extensionError": { - "description": "Extension detail - error message" - }, - "extensionCapabilities": "Kemampuan", - "@extensionCapabilities": { - "description": "Section header - extension features" - }, - "extensionMetadataProvider": "Provider Metadata", - "@extensionMetadataProvider": { - "description": "Capability - provides metadata" - }, - "extensionDownloadProvider": "Provider Unduhan", - "@extensionDownloadProvider": { - "description": "Capability - provides downloads" - }, - "extensionLyricsProvider": "Provider Lirik", - "@extensionLyricsProvider": { - "description": "Capability - provides lyrics" - }, - "extensionUrlHandler": "Penanganan URL", - "@extensionUrlHandler": { - "description": "Capability - handles URLs" - }, - "extensionQualityOptions": "Opsi Kualitas", - "@extensionQualityOptions": { - "description": "Capability - quality selection" - }, - "extensionPostProcessingHooks": "Hook Pasca-Pemrosesan", - "@extensionPostProcessingHooks": { - "description": "Capability - post-processing" - }, - "extensionPermissions": "Izin", - "@extensionPermissions": { - "description": "Section header - required permissions" - }, - "extensionSettings": "Pengaturan", - "@extensionSettings": { - "description": "Section header - extension settings" - }, - "extensionRemoveButton": "Hapus Ekstensi", - "@extensionRemoveButton": { - "description": "Button to uninstall extension" - }, - "extensionUpdated": "Diperbarui", - "@extensionUpdated": { - "description": "Extension detail - last update" - }, - "extensionMinAppVersion": "Versi App Minimum", - "@extensionMinAppVersion": { - "description": "Extension detail - minimum app version" - }, - "extensionCustomTrackMatching": "Pencocokan Lagu Kustom", - "@extensionCustomTrackMatching": { - "description": "Capability - custom track matching algorithm" - }, - "extensionPostProcessing": "Pasca-Pemrosesan", - "@extensionPostProcessing": { - "description": "Capability - post-download processing" - }, - "extensionHooksAvailable": "{count} hook tersedia", - "@extensionHooksAvailable": { - "description": "Post-processing hooks count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionPatternsCount": "{count} pola", - "@extensionPatternsCount": { - "description": "URL patterns count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionStrategy": "Strategi: {strategy}", - "@extensionStrategy": { - "description": "Track matching strategy name", - "placeholders": { - "strategy": { - "type": "String" - } - } - }, - "extensionsProviderPrioritySection": "Prioritas Provider", - "@extensionsProviderPrioritySection": { - "description": "Section header - provider priority" - }, - "extensionsInstalledSection": "Ekstensi Terpasang", - "@extensionsInstalledSection": { - "description": "Section header - installed extensions" - }, - "extensionsNoExtensions": "Tidak ada ekstensi terpasang", - "@extensionsNoExtensions": { - "description": "Empty state - no extensions" - }, - "extensionsNoExtensionsSubtitle": "Pasang file .spotiflac-ext untuk menambahkan provider baru", - "@extensionsNoExtensionsSubtitle": { - "description": "Empty state subtitle" - }, - "extensionsInstallButton": "Pasang Ekstensi", - "@extensionsInstallButton": { - "description": "Button to install extension from file" - }, - "extensionsInfoTip": "Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.", - "@extensionsInfoTip": { - "description": "Security warning about extensions" - }, - "extensionsInstalledSuccess": "Ekstensi berhasil dipasang", - "@extensionsInstalledSuccess": { - "description": "Success message after install" - }, - "extensionsDownloadPriority": "Prioritas Unduhan", - "@extensionsDownloadPriority": { - "description": "Setting - download provider order" - }, - "extensionsDownloadPrioritySubtitle": "Atur urutan layanan unduhan", - "@extensionsDownloadPrioritySubtitle": { - "description": "Subtitle for download priority" - }, - "extensionsNoDownloadProvider": "Tidak ada ekstensi dengan provider unduhan", - "@extensionsNoDownloadProvider": { - "description": "Empty state - no download providers" - }, - "extensionsMetadataPriority": "Prioritas Metadata", - "@extensionsMetadataPriority": { - "description": "Setting - metadata provider order" - }, - "extensionsMetadataPrioritySubtitle": "Atur urutan sumber pencarian & metadata", - "@extensionsMetadataPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "extensionsNoMetadataProvider": "Tidak ada ekstensi dengan provider metadata", - "@extensionsNoMetadataProvider": { - "description": "Empty state - no metadata providers" - }, - "extensionsSearchProvider": "Provider Pencarian", - "@extensionsSearchProvider": { - "description": "Setting - search provider selection" - }, - "extensionsNoCustomSearch": "Tidak ada ekstensi dengan pencarian kustom", - "@extensionsNoCustomSearch": { - "description": "Empty state - no search providers" - }, - "extensionsSearchProviderDescription": "Pilih layanan yang digunakan untuk mencari lagu", - "@extensionsSearchProviderDescription": { - "description": "Search provider setting description" - }, - "extensionsCustomSearch": "Pencarian kustom", - "@extensionsCustomSearch": { - "description": "Label for custom search provider" - }, - "extensionsErrorLoading": "Error memuat ekstensi", - "@extensionsErrorLoading": { - "description": "Error message when extension fails to load" - }, - "qualityFlacLossless": "FLAC Lossless", - "@qualityFlacLossless": { - "description": "Quality option - CD quality FLAC" - }, - "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", - "@qualityFlacLosslessSubtitle": { - "description": "Technical spec for lossless" - }, - "qualityHiResFlac": "Hi-Res FLAC", - "@qualityHiResFlac": { - "description": "Quality option - high resolution FLAC" - }, - "qualityHiResFlacSubtitle": "24-bit / hingga 96kHz", - "@qualityHiResFlacSubtitle": { - "description": "Technical spec for hi-res" - }, - "qualityHiResFlacMax": "Hi-Res FLAC Max", - "@qualityHiResFlacMax": { - "description": "Quality option - maximum resolution FLAC" - }, - "qualityHiResFlacMaxSubtitle": "24-bit / hingga 192kHz", - "@qualityHiResFlacMaxSubtitle": { - "description": "Technical spec for hi-res max" - }, - "qualityMp3": "MP3", - "@qualityMp3": { - "description": "Quality option - MP3 lossy format" - }, - "qualityMp3Subtitle": "320kbps (converted from FLAC)", - "@qualityMp3Subtitle": { - "description": "Technical spec for MP3" - }, - "enableMp3Option": "Enable MP3 Option", - "@enableMp3Option": { - "description": "Setting - enable MP3 quality option" - }, - "enableMp3OptionSubtitleOn": "MP3 quality option is available", - "@enableMp3OptionSubtitleOn": { - "description": "Subtitle when MP3 is enabled" - }, - "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", - "@enableMp3OptionSubtitleOff": { - "description": "Subtitle when MP3 is disabled" - }, - "qualityNote": "Kualitas sebenarnya tergantung ketersediaan lagu dari layanan", - "@qualityNote": { - "description": "Note about quality availability" - }, - "downloadAskBeforeDownload": "Tanya Sebelum Unduh", - "@downloadAskBeforeDownload": { - "description": "Setting - show quality picker" - }, - "downloadDirectory": "Direktori Unduhan", - "@downloadDirectory": { - "description": "Setting - download folder" - }, - "downloadSeparateSinglesFolder": "Folder Singles Terpisah", - "@downloadSeparateSinglesFolder": { - "description": "Setting - separate folder for singles" - }, - "downloadAlbumFolderStructure": "Struktur Folder Album", - "@downloadAlbumFolderStructure": { - "description": "Setting - album folder organization" - }, - "downloadSaveFormat": "Simpan Format", - "@downloadSaveFormat": { - "description": "Setting - output file format" - }, - "downloadSelectService": "Pilih Layanan", - "@downloadSelectService": { - "description": "Dialog title - choose download service" - }, - "downloadSelectQuality": "Pilih Kualitas", - "@downloadSelectQuality": { - "description": "Dialog title - choose audio quality" - }, - "downloadFrom": "Unduh Dari", - "@downloadFrom": { - "description": "Label - download source" - }, - "downloadDefaultQualityLabel": "Kualitas Default", - "@downloadDefaultQualityLabel": { - "description": "Label - default quality setting" - }, - "downloadBestAvailable": "Terbaik tersedia", - "@downloadBestAvailable": { - "description": "Quality option - highest available" - }, - "folderNone": "Tidak ada", - "@folderNone": { - "description": "Folder option - no organization" - }, - "folderNoneSubtitle": "Simpan semua file langsung ke folder unduhan", - "@folderNoneSubtitle": { - "description": "Subtitle for no folder organization" - }, - "folderArtist": "Artis", - "@folderArtist": { - "description": "Folder option - by artist" - }, - "folderArtistSubtitle": "Nama Artis/namafile", - "@folderArtistSubtitle": { - "description": "Folder structure example" - }, - "folderAlbum": "Album", - "@folderAlbum": { - "description": "Folder option - by album" - }, - "folderAlbumSubtitle": "Nama Album/namafile", - "@folderAlbumSubtitle": { - "description": "Folder structure example" - }, - "folderArtistAlbum": "Artis/Album", - "@folderArtistAlbum": { - "description": "Folder option - nested" - }, - "folderArtistAlbumSubtitle": "Nama Artis/Nama Album/namafile", - "@folderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "serviceTidal": "Tidal", - "@serviceTidal": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceQobuz": "Qobuz", - "@serviceQobuz": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceAmazon": "Amazon", - "@serviceAmazon": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceDeezer": "Deezer", - "@serviceDeezer": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceSpotify": "Spotify", - "@serviceSpotify": { - "description": "Service name - DO NOT TRANSLATE" - }, - "appearanceAmoledDark": "AMOLED Gelap", - "@appearanceAmoledDark": { - "description": "Theme option - pure black" - }, - "appearanceAmoledDarkSubtitle": "Latar belakang hitam murni", - "@appearanceAmoledDarkSubtitle": { - "description": "Subtitle for AMOLED dark" - }, - "appearanceChooseAccentColor": "Pilih Warna Aksen", - "@appearanceChooseAccentColor": { - "description": "Color picker dialog title" - }, - "appearanceChooseTheme": "Mode Tema", - "@appearanceChooseTheme": { - "description": "Theme picker dialog title" - }, - "queueTitle": "Antrian Unduhan", - "@queueTitle": { - "description": "Queue screen title" - }, - "queueClearAll": "Hapus Semua", - "@queueClearAll": { - "description": "Button - clear all queue items" - }, - "queueClearAllMessage": "Apakah Anda yakin ingin menghapus semua unduhan?", - "@queueClearAllMessage": { - "description": "Clear queue confirmation" - }, - "queueEmpty": "Tidak ada unduhan dalam antrian", - "@queueEmpty": { - "description": "Empty queue state title" - }, - "queueEmptySubtitle": "Tambahkan lagu dari layar beranda", - "@queueEmptySubtitle": { - "description": "Empty queue state subtitle" - }, - "queueClearCompleted": "Hapus yang selesai", - "@queueClearCompleted": { - "description": "Button - clear finished downloads" - }, - "queueDownloadFailed": "Unduhan Gagal", - "@queueDownloadFailed": { - "description": "Error dialog title" - }, - "queueTrackLabel": "Lagu:", - "@queueTrackLabel": { - "description": "Label in error dialog" - }, - "queueArtistLabel": "Artis:", - "@queueArtistLabel": { - "description": "Label in error dialog" - }, - "queueErrorLabel": "Error:", - "@queueErrorLabel": { - "description": "Label in error dialog" - }, - "queueUnknownError": "Error tidak diketahui", - "@queueUnknownError": { - "description": "Fallback error message" - }, - "albumFolderArtistAlbum": "Artis / Album", - "@albumFolderArtistAlbum": { - "description": "Album folder option" - }, - "albumFolderArtistAlbumSubtitle": "Albums/Nama Artis/Nama Album/", - "@albumFolderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderArtistYearAlbum": "Artis / [Tahun] Album", - "@albumFolderArtistYearAlbum": { - "description": "Album folder option with year" - }, - "albumFolderArtistYearAlbumSubtitle": "Albums/Nama Artis/[2005] Nama Album/", - "@albumFolderArtistYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderAlbumOnly": "Album Saja", - "@albumFolderAlbumOnly": { - "description": "Album folder option" - }, - "albumFolderAlbumOnlySubtitle": "Albums/Nama Album/", - "@albumFolderAlbumOnlySubtitle": { - "description": "Folder structure example" - }, - "albumFolderYearAlbum": "[Tahun] Album", - "@albumFolderYearAlbum": { - "description": "Album folder option with year" - }, - "albumFolderYearAlbumSubtitle": "Albums/[2005] Nama Album/", - "@albumFolderYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderArtistAlbumSingles": "Artist / Album + Singles", - "@albumFolderArtistAlbumSingles": { - "description": "Album folder option with singles inside artist" - }, - "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", - "@albumFolderArtistAlbumSinglesSubtitle": { - "description": "Folder structure example" - }, - "downloadedAlbumDeleteSelected": "Hapus yang Dipilih", - "@downloadedAlbumDeleteSelected": { - "description": "Button - delete selected tracks" - }, - "downloadedAlbumDeleteMessage": "Hapus {count} {count, plural, =1{lagu} other{lagu}} dari album ini?\n\nIni juga akan menghapus file dari penyimpanan.", - "@downloadedAlbumDeleteMessage": { - "description": "Delete confirmation with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumTracksHeader": "Lagu", - "@downloadedAlbumTracksHeader": { - "description": "Section header for tracks" - }, - "downloadedAlbumDownloadedCount": "{count} diunduh", - "@downloadedAlbumDownloadedCount": { - "description": "Downloaded tracks count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumSelectedCount": "{count} dipilih", - "@downloadedAlbumSelectedCount": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumAllSelected": "Semua lagu dipilih", - "@downloadedAlbumAllSelected": { - "description": "Status - all items selected" - }, - "downloadedAlbumTapToSelect": "Ketuk lagu untuk memilih", - "@downloadedAlbumTapToSelect": { - "description": "Selection hint" - }, - "downloadedAlbumDeleteCount": "Hapus {count} {count, plural, =1{lagu} other{lagu}}", - "@downloadedAlbumDeleteCount": { - "description": "Delete button text with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumSelectToDelete": "Pilih lagu untuk dihapus", - "@downloadedAlbumSelectToDelete": { - "description": "Placeholder when nothing selected" - }, - "downloadedAlbumDiscHeader": "Disc {discNumber}", - "@downloadedAlbumDiscHeader": { - "description": "Header for disc separator in multi-disc albums", - "placeholders": { - "discNumber": { - "type": "int", - "example": "1" - } - } - }, - "utilityFunctions": "Fungsi Utilitas", - "@utilityFunctions": { - "description": "Extension capability - utility functions" - }, - "recentTypeArtist": "Artis", - "@recentTypeArtist": { - "description": "Recent access item type - artist" - }, - "recentTypeAlbum": "Album", - "@recentTypeAlbum": { - "description": "Recent access item type - album" - }, - "recentTypeSong": "Lagu", - "@recentTypeSong": { - "description": "Recent access item type - song/track" - }, - "recentTypePlaylist": "Playlist", - "@recentTypePlaylist": { - "description": "Recent access item type - playlist" - }, - "recentPlaylistInfo": "Playlist: {name}", - "@recentPlaylistInfo": { - "description": "Snackbar message when tapping playlist in recent access", - "placeholders": { - "name": { - "type": "String", - "description": "Playlist name" - } - } - }, - "errorGeneric": "Error: {message}", - "@errorGeneric": { - "description": "Generic error message format", - "placeholders": { - "message": { - "type": "String", - "description": "Error message" - } - } - }, - "discographyDownload": "Download Discography", - "@discographyDownload": { - "description": "Button - download artist discography" - }, - "discographyDownloadAll": "Unduh Semua", - "@discographyDownloadAll": { - "description": "Option - download entire discography" - }, - "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", - "@discographyDownloadAllSubtitle": { - "description": "Subtitle showing total tracks and albums", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographyAlbumsOnly": "Albums Only", - "@discographyAlbumsOnly": { - "description": "Option - download only albums" - }, - "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", - "@discographyAlbumsOnlySubtitle": { - "description": "Subtitle showing album tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographySinglesOnly": "Singles & EPs Only", - "@discographySinglesOnly": { - "description": "Option - download only singles" - }, - "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", - "@discographySinglesOnlySubtitle": { - "description": "Subtitle showing singles tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographySelectAlbums": "Select Albums...", - "@discographySelectAlbums": { - "description": "Option - manually select albums to download" - }, - "discographySelectAlbumsSubtitle": "Choose specific albums or singles", - "@discographySelectAlbumsSubtitle": { - "description": "Subtitle for select albums option" - }, - "discographyFetchingTracks": "Fetching tracks...", - "@discographyFetchingTracks": { - "description": "Progress - fetching album tracks" - }, - "discographyFetchingAlbum": "Fetching {current} of {total}...", - "@discographyFetchingAlbum": { - "description": "Progress - fetching specific album", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "discographySelectedCount": "{count} selected", - "@discographySelectedCount": { - "description": "Selection count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographyDownloadSelected": "Download Selected", - "@discographyDownloadSelected": { - "description": "Button - download selected albums" - }, - "discographyAddedToQueue": "Added {count} tracks to queue", - "@discographyAddedToQueue": { - "description": "Snackbar - tracks added from discography", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", - "@discographySkippedDownloaded": { - "description": "Snackbar - with skipped tracks count", - "placeholders": { - "added": { - "type": "int" - }, - "skipped": { - "type": "int" - } - } - }, +{ + "@@locale": "id", + "@@last_modified": "2026-01-16", + "appName": "SpotiFLAC", + "@appName": { + "description": "App name - DO NOT TRANSLATE" + }, + "appDescription": "Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.", + "@appDescription": { + "description": "App description shown in about page" + }, + "navHome": "Beranda", + "@navHome": { + "description": "Bottom navigation - Home tab" + }, + "navHistory": "Riwayat", + "@navHistory": { + "description": "Bottom navigation - History tab" + }, + "navSettings": "Pengaturan", + "@navSettings": { + "description": "Bottom navigation - Settings tab" + }, + "navStore": "Toko", + "@navStore": { + "description": "Bottom navigation - Extension store tab" + }, + "homeTitle": "Beranda", + "@homeTitle": { + "description": "Home screen title" + }, + "homeSearchHint": "Tempel URL Spotify atau cari...", + "@homeSearchHint": { + "description": "Placeholder text in search box" + }, + "homeSearchHintExtension": "Cari dengan {extensionName}...", + "@homeSearchHintExtension": { + "description": "Placeholder when extension search is active", + "placeholders": { + "extensionName": { + "type": "String", + "description": "Name of the active extension" + } + } + }, + "homeSubtitle": "Tempel link Spotify atau cari berdasarkan nama", + "@homeSubtitle": { + "description": "Subtitle shown below search box" + }, + "homeSupports": "Mendukung: URL Track, Album, Playlist, Artis", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "Terbaru", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "historyTitle": "Riwayat", + "@historyTitle": { + "description": "History screen title" + }, + "historyDownloading": "Mengunduh ({count})", + "@historyDownloading": { + "description": "Tab showing active downloads count", + "placeholders": { + "count": { + "type": "int", + "description": "Number of active downloads" + } + } + }, + "historyDownloaded": "Terunduh", + "@historyDownloaded": { + "description": "Tab showing completed downloads" + }, + "historyFilterAll": "Semua", + "@historyFilterAll": { + "description": "Filter chip - show all items" + }, + "historyFilterAlbums": "Album", + "@historyFilterAlbums": { + "description": "Filter chip - show albums only" + }, + "historyFilterSingles": "Single", + "@historyFilterSingles": { + "description": "Filter chip - show singles only" + }, + "historyTracksCount": "{count, plural, =1{1 lagu} other{{count} lagu}}", + "@historyTracksCount": { + "description": "Track count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyAlbumsCount": "{count, plural, =1{1 album} other{{count} album}}", + "@historyAlbumsCount": { + "description": "Album count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyNoDownloads": "Tidak ada riwayat unduhan", + "@historyNoDownloads": { + "description": "Empty state title" + }, + "historyNoDownloadsSubtitle": "Lagu yang diunduh akan muncul di sini", + "@historyNoDownloadsSubtitle": { + "description": "Empty state subtitle" + }, + "historyNoAlbums": "Tidak ada unduhan album", + "@historyNoAlbums": { + "description": "Empty state when filtering albums" + }, + "historyNoAlbumsSubtitle": "Unduh beberapa lagu dari album untuk melihatnya di sini", + "@historyNoAlbumsSubtitle": { + "description": "Empty state subtitle for albums filter" + }, + "historyNoSingles": "Tidak ada unduhan single", + "@historyNoSingles": { + "description": "Empty state when filtering singles" + }, + "historyNoSinglesSubtitle": "Unduhan lagu satuan akan muncul di sini", + "@historyNoSinglesSubtitle": { + "description": "Empty state subtitle for singles filter" + }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, + "settingsTitle": "Pengaturan", + "@settingsTitle": { + "description": "Settings screen title" + }, + "settingsDownload": "Unduhan", + "@settingsDownload": { + "description": "Settings section - download options" + }, + "settingsAppearance": "Tampilan", + "@settingsAppearance": { + "description": "Settings section - visual customization" + }, + "settingsOptions": "Opsi", + "@settingsOptions": { + "description": "Settings section - app options" + }, + "settingsExtensions": "Ekstensi", + "@settingsExtensions": { + "description": "Settings section - extension management" + }, + "settingsAbout": "Tentang", + "@settingsAbout": { + "description": "Settings section - app info" + }, + "downloadTitle": "Unduhan", + "@downloadTitle": { + "description": "Download settings page title" + }, + "downloadLocation": "Lokasi Unduhan", + "@downloadLocation": { + "description": "Setting for download folder" + }, + "downloadLocationSubtitle": "Pilih tempat menyimpan file", + "@downloadLocationSubtitle": { + "description": "Subtitle for download location" + }, + "downloadLocationDefault": "Lokasi default", + "@downloadLocationDefault": { + "description": "Shown when using default folder" + }, + "downloadDefaultService": "Layanan Default", + "@downloadDefaultService": { + "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" + }, + "downloadDefaultServiceSubtitle": "Layanan yang digunakan untuk unduhan", + "@downloadDefaultServiceSubtitle": { + "description": "Subtitle for default service" + }, + "downloadDefaultQuality": "Kualitas Default", + "@downloadDefaultQuality": { + "description": "Setting for audio quality" + }, + "downloadAskQuality": "Tanya Kualitas Sebelum Unduh", + "@downloadAskQuality": { + "description": "Toggle to show quality picker" + }, + "downloadAskQualitySubtitle": "Tampilkan pemilih kualitas untuk setiap unduhan", + "@downloadAskQualitySubtitle": { + "description": "Subtitle for ask quality toggle" + }, + "downloadFilenameFormat": "Format Nama File", + "@downloadFilenameFormat": { + "description": "Setting for output filename pattern" + }, + "downloadFolderOrganization": "Organisasi Folder", + "@downloadFolderOrganization": { + "description": "Setting for folder structure" + }, + "downloadSeparateSingles": "Pisahkan Single", + "@downloadSeparateSingles": { + "description": "Toggle to separate single tracks" + }, + "downloadSeparateSinglesSubtitle": "Letakkan lagu satuan di folder terpisah", + "@downloadSeparateSinglesSubtitle": { + "description": "Subtitle for separate singles toggle" + }, + "qualityBest": "Terbaik", + "@qualityBest": { + "description": "Audio quality option - highest available" + }, + "qualityFlac": "FLAC", + "@qualityFlac": { + "description": "Audio quality option - FLAC lossless" + }, + "quality320": "320 kbps", + "@quality320": { + "description": "Audio quality option - 320kbps MP3" + }, + "quality128": "128 kbps", + "@quality128": { + "description": "Audio quality option - 128kbps MP3" + }, + "appearanceTitle": "Tampilan", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "appearanceTheme": "Tema", + "@appearanceTheme": { + "description": "Theme mode setting" + }, + "appearanceThemeSystem": "Sistem", + "@appearanceThemeSystem": { + "description": "Follow system theme" + }, + "appearanceThemeLight": "Terang", + "@appearanceThemeLight": { + "description": "Light theme" + }, + "appearanceThemeDark": "Gelap", + "@appearanceThemeDark": { + "description": "Dark theme" + }, + "appearanceDynamicColor": "Warna Dinamis", + "@appearanceDynamicColor": { + "description": "Material You dynamic colors" + }, + "appearanceDynamicColorSubtitle": "Gunakan warna dari wallpaper Anda", + "@appearanceDynamicColorSubtitle": { + "description": "Subtitle for dynamic color" + }, + "appearanceAccentColor": "Warna Aksen", + "@appearanceAccentColor": { + "description": "Custom accent color picker" + }, + "appearanceHistoryView": "Tampilan Riwayat", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Daftar", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Grid", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsTitle": "Opsi", + "@optionsTitle": { + "description": "Options settings page title" + }, + "optionsSearchSource": "Sumber Pencarian", + "@optionsSearchSource": { + "description": "Section for search provider settings" + }, + "optionsPrimaryProvider": "Provider Utama", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Layanan yang digunakan saat mencari berdasarkan nama lagu.", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Menggunakan ekstensi: {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsSwitchBack": "Ketuk Deezer atau Spotify untuk beralih dari ekstensi", + "@optionsSwitchBack": { + "description": "Hint to switch back to built-in providers" + }, + "optionsAutoFallback": "Auto Fallback", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "Coba layanan lain jika unduhan gagal", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsUseExtensionProviders": "Gunakan Provider Ekstensi", + "@optionsUseExtensionProviders": { + "description": "Enable extension download providers" + }, + "optionsUseExtensionProvidersOn": "Ekstensi akan dicoba terlebih dahulu", + "@optionsUseExtensionProvidersOn": { + "description": "Status when extension providers enabled" + }, + "optionsUseExtensionProvidersOff": "Hanya menggunakan provider bawaan", + "@optionsUseExtensionProvidersOff": { + "description": "Status when extension providers disabled" + }, + "optionsEmbedLyrics": "Sematkan Lirik", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Sematkan lirik sinkron ke file FLAC", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsMaxQualityCover": "Cover Kualitas Maksimal", + "@optionsMaxQualityCover": { + "description": "Download highest quality album art" + }, + "optionsMaxQualityCoverSubtitle": "Unduh cover art resolusi tertinggi", + "@optionsMaxQualityCoverSubtitle": { + "description": "Subtitle for max quality cover" + }, + "optionsConcurrentDownloads": "Unduhan Bersamaan", + "@optionsConcurrentDownloads": { + "description": "Number of parallel downloads" + }, + "optionsConcurrentSequential": "Berurutan (1 per waktu)", + "@optionsConcurrentSequential": { + "description": "Download one at a time" + }, + "optionsConcurrentParallel": "{count} unduhan paralel", + "@optionsConcurrentParallel": { + "description": "Multiple parallel downloads", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "optionsConcurrentWarning": "Unduhan paralel dapat memicu pembatasan rate", + "@optionsConcurrentWarning": { + "description": "Warning about rate limits" + }, + "optionsExtensionStore": "Toko Ekstensi", + "@optionsExtensionStore": { + "description": "Show/hide store tab" + }, + "optionsExtensionStoreSubtitle": "Tampilkan tab Toko di navigasi", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension store toggle" + }, + "optionsCheckUpdates": "Periksa Pembaruan", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" + }, + "optionsCheckUpdatesSubtitle": "Beritahu saat versi baru tersedia", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" + }, + "optionsUpdateChannel": "Saluran Pembaruan", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" + }, + "optionsUpdateChannelStable": "Hanya rilis stabil", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" + }, + "optionsUpdateChannelPreview": "Dapatkan rilis preview", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" + }, + "optionsUpdateChannelWarning": "Preview mungkin mengandung bug atau fitur belum lengkap", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" + }, + "optionsClearHistory": "Hapus Riwayat Unduhan", + "@optionsClearHistory": { + "description": "Delete all download history" + }, + "optionsClearHistorySubtitle": "Hapus semua lagu dari riwayat", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" + }, + "optionsDetailedLogging": "Log Detail", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" + }, + "optionsDetailedLoggingOn": "Log detail sedang direkam", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" + }, + "optionsDetailedLoggingOff": "Aktifkan untuk laporan bug", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" + }, + "optionsSpotifyCredentials": "Kredensial Spotify", + "@optionsSpotifyCredentials": { + "description": "Spotify API credentials setting" + }, + "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", + "@optionsSpotifyCredentialsConfigured": { + "description": "Shows configured client ID preview", + "placeholders": { + "clientId": { + "type": "String" + } + } + }, + "optionsSpotifyCredentialsRequired": "Diperlukan - ketuk untuk mengatur", + "@optionsSpotifyCredentialsRequired": { + "description": "Prompt to set up credentials" + }, + "optionsSpotifyWarning": "Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com", + "@optionsSpotifyWarning": { + "description": "Info about Spotify API requirement" + }, + "extensionsTitle": "Ekstensi", + "@extensionsTitle": { + "description": "Extensions page title" + }, + "extensionsInstalled": "Ekstensi Terpasang", + "@extensionsInstalled": { + "description": "Section header for installed extensions" + }, + "extensionsNone": "Tidak ada ekstensi terpasang", + "@extensionsNone": { + "description": "Empty state title" + }, + "extensionsNoneSubtitle": "Pasang ekstensi dari tab Toko", + "@extensionsNoneSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsEnabled": "Aktif", + "@extensionsEnabled": { + "description": "Extension status - active" + }, + "extensionsDisabled": "Nonaktif", + "@extensionsDisabled": { + "description": "Extension status - inactive" + }, + "extensionsVersion": "Versi {version}", + "@extensionsVersion": { + "description": "Extension version display", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "extensionsAuthor": "oleh {author}", + "@extensionsAuthor": { + "description": "Extension author credit", + "placeholders": { + "author": { + "type": "String" + } + } + }, + "extensionsUninstall": "Copot", + "@extensionsUninstall": { + "description": "Uninstall extension button" + }, + "extensionsSetAsSearch": "Jadikan Provider Pencarian", + "@extensionsSetAsSearch": { + "description": "Use extension for search" + }, + "storeTitle": "Toko Ekstensi", + "@storeTitle": { + "description": "Store screen title" + }, + "storeSearch": "Cari ekstensi...", + "@storeSearch": { + "description": "Store search placeholder" + }, + "storeInstall": "Pasang", + "@storeInstall": { + "description": "Install extension button" + }, + "storeInstalled": "Terpasang", + "@storeInstalled": { + "description": "Already installed badge" + }, + "storeUpdate": "Perbarui", + "@storeUpdate": { + "description": "Update available button" + }, + "aboutTitle": "Tentang", + "@aboutTitle": { + "description": "About page title" + }, + "aboutContributors": "Kontributor", + "@aboutContributors": { + "description": "Section for contributors" + }, + "aboutMobileDeveloper": "Pengembang versi mobile", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" + }, + "aboutOriginalCreator": "Pembuat SpotiFLAC asli", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "Seniman berbakat yang membuat logo aplikasi kita yang indah!", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Terima Kasih Khusus", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Tautan", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Kode sumber mobile", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "Kode sumber PC", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutReportIssue": "Laporkan masalah", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Laporkan masalah yang Anda temui", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Permintaan fitur", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Sarankan fitur baru untuk aplikasi", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutSupport": "Dukungan", + "@aboutSupport": { + "description": "Section for support/donation links" + }, + "aboutBuyMeCoffee": "Belikan saya kopi", + "@aboutBuyMeCoffee": { + "description": "Donation link" + }, + "aboutBuyMeCoffeeSubtitle": "Dukung pengembangan di Ko-fi", + "@aboutBuyMeCoffeeSubtitle": { + "description": "Subtitle for donation" + }, + "aboutApp": "Aplikasi", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Versi", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutDoubleDouble": "DoubleDouble", + "@aboutDoubleDouble": { + "description": "Name of Amazon API service - DO NOT TRANSLATE" + }, + "aboutDoubleDoubleDesc": "API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!", + "@aboutDoubleDoubleDesc": { + "description": "Credit for DoubleDouble API" + }, + "aboutDabMusic": "DAB Music", + "@aboutDabMusic": { + "description": "Name of Qobuz API service - DO NOT TRANSLATE" + }, + "aboutDabMusicDesc": "API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!", + "@aboutDabMusicDesc": { + "description": "Credit for DAB Music API" + }, + "aboutAppDescription": "Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "albumTitle": "Album", + "@albumTitle": { + "description": "Album screen title" + }, + "albumTracks": "{count, plural, =1{1 lagu} other{{count} lagu}}", + "@albumTracks": { + "description": "Album track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "albumDownloadAll": "Unduh Semua", + "@albumDownloadAll": { + "description": "Button to download all tracks" + }, + "albumDownloadRemaining": "Unduh Sisanya", + "@albumDownloadRemaining": { + "description": "Button to download remaining tracks" + }, + "playlistTitle": "Playlist", + "@playlistTitle": { + "description": "Playlist screen title" + }, + "artistTitle": "Artis", + "@artistTitle": { + "description": "Artist screen title" + }, + "artistAlbums": "Album", + "@artistAlbums": { + "description": "Section header for artist albums" + }, + "artistSingles": "Single & EP", + "@artistSingles": { + "description": "Section header for singles/EPs" + }, + "artistCompilations": "Kompilasi", + "@artistCompilations": { + "description": "Section header for compilations" + }, + "artistReleases": "{count, plural, =1{1 rilis} other{{count} rilis}}", + "@artistReleases": { + "description": "Artist release count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "artistPopular": "Populer", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "{count} pendengar bulanan", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", + "placeholders": { + "count": { + "type": "String", + "description": "Formatted listener count" + } + } + }, + "trackMetadataTitle": "Info Lagu", + "@trackMetadataTitle": { + "description": "Track metadata screen title" + }, + "trackMetadataArtist": "Artis", + "@trackMetadataArtist": { + "description": "Metadata field - artist name" + }, + "trackMetadataAlbum": "Album", + "@trackMetadataAlbum": { + "description": "Metadata field - album name" + }, + "trackMetadataDuration": "Durasi", + "@trackMetadataDuration": { + "description": "Metadata field - track length" + }, + "trackMetadataQuality": "Kualitas", + "@trackMetadataQuality": { + "description": "Metadata field - audio quality" + }, + "trackMetadataPath": "Lokasi File", + "@trackMetadataPath": { + "description": "Metadata field - file location" + }, + "trackMetadataDownloadedAt": "Diunduh", + "@trackMetadataDownloadedAt": { + "description": "Metadata field - download date" + }, + "trackMetadataService": "Layanan", + "@trackMetadataService": { + "description": "Metadata field - download service used" + }, + "trackMetadataPlay": "Putar", + "@trackMetadataPlay": { + "description": "Action button - play track" + }, + "trackMetadataShare": "Bagikan", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Hapus", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "trackMetadataRedownload": "Unduh ulang", + "@trackMetadataRedownload": { + "description": "Action button - download again" + }, + "trackMetadataOpenFolder": "Buka Folder", + "@trackMetadataOpenFolder": { + "description": "Action button - open containing folder" + }, + "setupTitle": "Selamat Datang di SpotiFLAC", + "@setupTitle": { + "description": "Setup wizard title" + }, + "setupSubtitle": "Mari mulai pengaturan", + "@setupSubtitle": { + "description": "Setup wizard subtitle" + }, + "setupStoragePermission": "Izin Penyimpanan", + "@setupStoragePermission": { + "description": "Storage permission step title" + }, + "setupStoragePermissionSubtitle": "Diperlukan untuk menyimpan file unduhan", + "@setupStoragePermissionSubtitle": { + "description": "Explanation for storage permission" + }, + "setupStoragePermissionGranted": "Izin diberikan", + "@setupStoragePermissionGranted": { + "description": "Status when permission granted" + }, + "setupStoragePermissionDenied": "Izin ditolak", + "@setupStoragePermissionDenied": { + "description": "Status when permission denied" + }, + "setupGrantPermission": "Berikan Izin", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupDownloadLocation": "Lokasi Unduhan", + "@setupDownloadLocation": { + "description": "Download folder step title" + }, + "setupChooseFolder": "Pilih Folder", + "@setupChooseFolder": { + "description": "Button to pick folder" + }, + "setupContinue": "Lanjutkan", + "@setupContinue": { + "description": "Continue to next step button" + }, + "setupSkip": "Lewati untuk sekarang", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Akses Penyimpanan Diperlukan", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessage": "SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.", + "@setupStorageAccessMessage": { + "description": "Explanation for storage access" + }, + "setupStorageAccessMessageAndroid11": "Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Buka Pengaturan", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "Izin ditolak. Harap berikan semua izin untuk melanjutkan.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "Izin {permissionType} Diperlukan", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "Izin {permissionType} diperlukan untuk pengalaman terbaik. Anda dapat mengubahnya nanti di Pengaturan.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupSelectDownloadFolder": "Pilih Folder Unduhan", + "@setupSelectDownloadFolder": { + "description": "Folder selection step title" + }, + "setupUseDefaultFolder": "Gunakan Folder Default?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Gunakan Default", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "Lokasi Unduhan", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "Folder Documents Aplikasi", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Direkomendasikan - dapat diakses via aplikasi Files", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Pilih dari Files", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "Pilih lokasi iCloud atau lainnya", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupDownloadInFlac": "Unduh lagu Spotify dalam format FLAC", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStepStorage": "Penyimpanan", + "@setupStepStorage": { + "description": "Setup step indicator - storage" + }, + "setupStepNotification": "Notifikasi", + "@setupStepNotification": { + "description": "Setup step indicator - notification" + }, + "setupStepFolder": "Folder", + "@setupStepFolder": { + "description": "Setup step indicator - folder" + }, + "setupStepSpotify": "Spotify", + "@setupStepSpotify": { + "description": "Setup step indicator - Spotify API" + }, + "setupStepPermission": "Izin", + "@setupStepPermission": { + "description": "Setup step indicator - permission" + }, + "setupStorageGranted": "Izin Penyimpanan Diberikan!", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Izin Penyimpanan Diperlukan", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "Izin Notifikasi Diberikan!", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Aktifkan Notifikasi", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupNotificationDescription": "Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.", + "@setupNotificationDescription": { + "description": "Explanation for notifications" + }, + "setupFolderSelected": "Folder Unduhan Dipilih!", + "@setupFolderSelected": { + "description": "Success message for folder selection" + }, + "setupFolderChoose": "Pilih Folder Unduhan", + "@setupFolderChoose": { + "description": "Button to choose folder" + }, + "setupFolderDescription": "Pilih folder tempat musik yang diunduh akan disimpan.", + "@setupFolderDescription": { + "description": "Explanation for folder selection" + }, + "setupChangeFolder": "Ubah Folder", + "@setupChangeFolder": { + "description": "Button to change selected folder" + }, + "setupSelectFolder": "Pilih Folder", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupSpotifyApiOptional": "Spotify API (Opsional)", + "@setupSpotifyApiOptional": { + "description": "Spotify API step title" + }, + "setupSpotifyApiDescription": "Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.", + "@setupSpotifyApiDescription": { + "description": "Explanation for Spotify API" + }, + "setupUseSpotifyApi": "Gunakan Spotify API", + "@setupUseSpotifyApi": { + "description": "Toggle to enable Spotify API" + }, + "setupEnterCredentialsBelow": "Masukkan kredensial Anda di bawah", + "@setupEnterCredentialsBelow": { + "description": "Prompt to enter credentials" + }, + "setupUsingDeezer": "Menggunakan Deezer (tidak perlu akun)", + "@setupUsingDeezer": { + "description": "Status when using Deezer" + }, + "setupEnterClientId": "Masukkan Spotify Client ID", + "@setupEnterClientId": { + "description": "Placeholder for client ID field" + }, + "setupEnterClientSecret": "Masukkan Spotify Client Secret", + "@setupEnterClientSecret": { + "description": "Placeholder for client secret field" + }, + "setupGetFreeCredentials": "Dapatkan kredensial API gratis dari Spotify Developer Dashboard.", + "@setupGetFreeCredentials": { + "description": "Info about getting Spotify credentials" + }, + "setupEnableNotifications": "Aktifkan Notifikasi", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupProceedToNextStep": "Anda dapat melanjutkan ke langkah berikutnya.", + "@setupProceedToNextStep": { + "description": "Message after completing a step" + }, + "setupNotificationProgressDescription": "Anda akan menerima notifikasi progres unduhan.", + "@setupNotificationProgressDescription": { + "description": "Info about notification usage" + }, + "setupNotificationBackgroundDescription": "Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Lewati untuk sekarang", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupBack": "Kembali", + "@setupBack": { + "description": "Back button text" + }, + "setupNext": "Lanjut", + "@setupNext": { + "description": "Next button text" + }, + "setupGetStarted": "Mulai", + "@setupGetStarted": { + "description": "Final setup button" + }, + "setupSkipAndStart": "Lewati & Mulai", + "@setupSkipAndStart": { + "description": "Skip setup and start app" + }, + "setupAllowAccessToManageFiles": "Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" + }, + "setupGetCredentialsFromSpotify": "Dapatkan kredensial dari developer.spotify.com", + "@setupGetCredentialsFromSpotify": { + "description": "Link text for Spotify developer portal" + }, + "dialogCancel": "Batal", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogOk": "OK", + "@dialogOk": { + "description": "Dialog button - confirm/acknowledge" + }, + "dialogSave": "Simpan", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Hapus", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Coba Lagi", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClose": "Tutup", + "@dialogClose": { + "description": "Dialog button - close dialog" + }, + "dialogYes": "Ya", + "@dialogYes": { + "description": "Dialog button - confirm yes" + }, + "dialogNo": "Tidak", + "@dialogNo": { + "description": "Dialog button - confirm no" + }, + "dialogClear": "Hapus", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogConfirm": "Konfirmasi", + "@dialogConfirm": { + "description": "Dialog button - confirm action" + }, + "dialogDone": "Selesai", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "Impor", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDiscard": "Buang", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Hapus", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Copot", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "Buang Perubahan?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogDownloadFailed": "Unduhan Gagal", + "@dialogDownloadFailed": { + "description": "Dialog title - download error" + }, + "dialogTrackLabel": "Lagu:", + "@dialogTrackLabel": { + "description": "Label for track name in error dialog" + }, + "dialogArtistLabel": "Artis:", + "@dialogArtistLabel": { + "description": "Label for artist name in error dialog" + }, + "dialogErrorLabel": "Error:", + "@dialogErrorLabel": { + "description": "Label for error message" + }, + "dialogClearAll": "Hapus Semua", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogClearAllDownloads": "Apakah Anda yakin ingin menghapus semua unduhan?", + "@dialogClearAllDownloads": { + "description": "Dialog message - clear downloads confirmation" + }, + "dialogRemoveFromDevice": "Hapus dari perangkat?", + "@dialogRemoveFromDevice": { + "description": "Dialog title - delete file confirmation" + }, + "dialogRemoveExtension": "Hapus Ekstensi", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "Copot Ekstensi?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "Apakah Anda yakin ingin menghapus {extensionName}?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "dialogClearHistoryTitle": "Hapus Riwayat", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" + }, + "dialogClearHistoryMessage": "Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" + }, + "dialogDeleteSelectedTitle": "Hapus yang Dipilih", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" + }, + "dialogDeleteSelectedMessage": "Hapus {count} {count, plural, =1{lagu} other{lagu}} dari riwayat?\n\nIni juga akan menghapus file dari penyimpanan.", + "@dialogDeleteSelectedMessage": { + "description": "Dialog message - delete selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogImportPlaylistTitle": "Impor Playlist", + "@dialogImportPlaylistTitle": { + "description": "Dialog title - import CSV playlist" + }, + "dialogImportPlaylistMessage": "Ditemukan {count} lagu di CSV. Tambahkan ke antrian unduhan?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@dialogImportPlaylistMessage": { + "description": "Dialog message - import playlist confirmation", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAddedToQueue": "Menambahkan \"{trackName}\" ke antrian", + "@snackbarAddedToQueue": { + "description": "Snackbar - track added to download queue", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarAddedTracksToQueue": "Menambahkan {count} lagu ke antrian", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAlreadyDownloaded": "\"{trackName}\" sudah diunduh", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarHistoryCleared": "Riwayat dihapus", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarCredentialsSaved": "Kredensial disimpan", + "@snackbarCredentialsSaved": { + "description": "Snackbar - Spotify credentials saved" + }, + "snackbarCredentialsCleared": "Kredensial dihapus", + "@snackbarCredentialsCleared": { + "description": "Snackbar - Spotify credentials removed" + }, + "snackbarDeletedTracks": "Menghapus {count} {count, plural, =1{lagu} other{lagu}}", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarCannotOpenFile": "Tidak dapat membuka file: {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarFillAllFields": "Harap isi semua field", + "@snackbarFillAllFields": { + "description": "Snackbar - validation error" + }, + "snackbarViewQueue": "Lihat Antrian", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" + }, + "snackbarFailedToLoad": "Gagal memuat: {error}", + "@snackbarFailedToLoad": { + "description": "Snackbar - loading error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarUrlCopied": "URL {platform} disalin ke clipboard", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } + }, + "snackbarFileNotFound": "File tidak ditemukan", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" + }, + "snackbarSelectExtFile": "Harap pilih file .spotiflac-ext", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" + }, + "snackbarProviderPrioritySaved": "Prioritas provider disimpan", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" + }, + "snackbarMetadataProviderSaved": "Prioritas provider metadata disimpan", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" + }, + "snackbarExtensionInstalled": "{extensionName} terpasang.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdated": "{extensionName} diperbarui.", + "@snackbarExtensionUpdated": { + "description": "Snackbar - extension updated successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToInstall": "Gagal memasang ekstensi", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" + }, + "snackbarFailedToUpdate": "Gagal memperbarui ekstensi", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" + }, + "errorRateLimited": "Dibatasi", + "@errorRateLimited": { + "description": "Error title - too many requests" + }, + "errorRateLimitedMessage": "Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" + }, + "errorFailedToLoad": "Gagal memuat {item}", + "@errorFailedToLoad": { + "description": "Error message - loading failed", + "placeholders": { + "item": { + "type": "String", + "description": "Item that failed to load (album/playlist/etc)" + } + } + }, + "errorNoTracksFound": "Tidak ada lagu ditemukan", + "@errorNoTracksFound": { + "description": "Error - search returned no results" + }, + "errorMissingExtensionSource": "Tidak dapat memuat {item}: sumber ekstensi tidak ada", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", + "placeholders": { + "item": { + "type": "String" + } + } + }, + "statusQueued": "Mengantri", + "@statusQueued": { + "description": "Download status - waiting in queue" + }, + "statusDownloading": "Mengunduh", + "@statusDownloading": { + "description": "Download status - in progress" + }, + "statusFinalizing": "Menyelesaikan", + "@statusFinalizing": { + "description": "Download status - writing metadata" + }, + "statusCompleted": "Selesai", + "@statusCompleted": { + "description": "Download status - finished" + }, + "statusFailed": "Gagal", + "@statusFailed": { + "description": "Download status - error occurred" + }, + "statusSkipped": "Dilewati", + "@statusSkipped": { + "description": "Download status - already exists" + }, + "statusPaused": "Dijeda", + "@statusPaused": { + "description": "Download status - paused" + }, + "actionPause": "Jeda", + "@actionPause": { + "description": "Action button - pause download" + }, + "actionResume": "Lanjutkan", + "@actionResume": { + "description": "Action button - resume download" + }, + "actionCancel": "Batal", + "@actionCancel": { + "description": "Action button - cancel operation" + }, + "actionStop": "Hentikan", + "@actionStop": { + "description": "Action button - stop operation" + }, + "actionSelect": "Pilih", + "@actionSelect": { + "description": "Action button - enter selection mode" + }, + "actionSelectAll": "Pilih Semua", + "@actionSelectAll": { + "description": "Action button - select all items" + }, + "actionDeselect": "Batal Pilih", + "@actionDeselect": { + "description": "Action button - deselect all" + }, + "actionPaste": "Tempel", + "@actionPaste": { + "description": "Action button - paste from clipboard" + }, + "actionImportCsv": "Impor CSV", + "@actionImportCsv": { + "description": "Action button - import CSV file" + }, + "actionRemoveCredentials": "Hapus Kredensial", + "@actionRemoveCredentials": { + "description": "Action button - delete Spotify credentials" + }, + "actionSaveCredentials": "Simpan Kredensial", + "@actionSaveCredentials": { + "description": "Action button - save Spotify credentials" + }, + "selectionSelected": "{count} dipilih", + "@selectionSelected": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionAllSelected": "Semua lagu dipilih", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionTapToSelect": "Ketuk lagu untuk memilih", + "@selectionTapToSelect": { + "description": "Hint - how to select items" + }, + "selectionDeleteTracks": "Hapus {count} {count, plural, =1{lagu} other{lagu}}", + "@selectionDeleteTracks": { + "description": "Delete button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionSelectToDelete": "Pilih lagu untuk dihapus", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Mengambil metadata... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "Membaca CSV...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Lagu", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Artis", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Album", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Playlist", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "tooltipPlay": "Putar", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "tooltipCancel": "Batal", + "@tooltipCancel": { + "description": "Tooltip - cancel button" + }, + "tooltipStop": "Hentikan", + "@tooltipStop": { + "description": "Tooltip - stop button" + }, + "tooltipRetry": "Coba Lagi", + "@tooltipRetry": { + "description": "Tooltip - retry button" + }, + "tooltipRemove": "Hapus", + "@tooltipRemove": { + "description": "Tooltip - remove button" + }, + "tooltipClear": "Hapus", + "@tooltipClear": { + "description": "Tooltip - clear button" + }, + "tooltipPaste": "Tempel", + "@tooltipPaste": { + "description": "Tooltip - paste button" + }, + "filenameFormat": "Format Nama File", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameFormatPreview": "Pratinjau: {preview}", + "@filenameFormatPreview": { + "description": "Preview of filename pattern", + "placeholders": { + "preview": { + "type": "String" + } + } + }, + "filenameAvailablePlaceholders": "Placeholder yang tersedia:", + "@filenameAvailablePlaceholders": { + "description": "Label for placeholder list" + }, + "filenameHint": "{artist} - {title}", + "@filenameHint": { + "description": "Default filename format hint" + }, + "folderOrganization": "Organisasi Folder", + "@folderOrganization": { + "description": "Setting title - folder structure" + }, + "folderOrganizationNone": "Tidak ada", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByArtist": "Berdasarkan Artis", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Berdasarkan Album", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Berdasarkan Artis & Album", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "Atur file yang diunduh ke dalam folder", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Semua file di folder unduhan", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Folder terpisah untuk setiap artis", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Folder terpisah untuk setiap album", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Folder bersarang untuk artis dan album", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Pembaruan Tersedia", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateNewVersion": "Versi {version} tersedia", + "@updateNewVersion": { + "description": "Update available message", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "updateDownload": "Unduh", + "@updateDownload": { + "description": "Update button - download update" + }, + "updateLater": "Nanti", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateChangelog": "Log Perubahan", + "@updateChangelog": { + "description": "Link to changelog" + }, + "updateStartingDownload": "Memulai unduhan...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "Unduhan gagal", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Gagal mengunduh pembaruan", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Versi baru sudah siap", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateCurrent": "Saat ini", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Baru", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "Mengunduh...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Yang Baru", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "Unduh & Pasang", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "Jangan ingatkan", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriority": "Prioritas Provider", + "@providerPriority": { + "description": "Setting title - download provider order" + }, + "providerPrioritySubtitle": "Seret untuk mengatur ulang provider unduhan", + "@providerPrioritySubtitle": { + "description": "Subtitle for provider priority" + }, + "providerPriorityTitle": "Prioritas Provider", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerBuiltIn": "Bawaan", + "@providerBuiltIn": { + "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + }, + "providerExtension": "Ekstensi", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriority": "Prioritas Provider Metadata", + "@metadataProviderPriority": { + "description": "Setting title - metadata provider order" + }, + "metadataProviderPrioritySubtitle": "Urutan yang digunakan saat mengambil metadata lagu", + "@metadataProviderPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "metadataProviderPriorityTitle": "Prioritas Metadata", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "metadataNoRateLimits": "Tidak ada batas rate", + "@metadataNoRateLimits": { + "description": "Deezer provider description" + }, + "metadataMayRateLimit": "Mungkin dibatasi rate", + "@metadataMayRateLimit": { + "description": "Spotify provider description" + }, + "logTitle": "Log", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopy": "Salin Log", + "@logCopy": { + "description": "Action - copy logs to clipboard" + }, + "logClear": "Hapus Log", + "@logClear": { + "description": "Action - delete all logs" + }, + "logShare": "Bagikan Log", + "@logShare": { + "description": "Action - share logs file" + }, + "logEmpty": "Belum ada log", + "@logEmpty": { + "description": "Empty state title" + }, + "logCopied": "Log disalin ke clipboard", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Cari log...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Level", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filter", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Bagikan log", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Hapus log", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Hapus Log", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "Apakah Anda yakin ingin menghapus semua log?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logIspBlocking": "PEMBLOKIRAN ISP TERDETEKSI", + "@logIspBlocking": { + "description": "Error category - ISP blocking" + }, + "logRateLimited": "DIBATASI", + "@logRateLimited": { + "description": "Error category - rate limiting" + }, + "logNetworkError": "ERROR JARINGAN", + "@logNetworkError": { + "description": "Error category - network issues" + }, + "logTrackNotFound": "LAGU TIDAK DITEMUKAN", + "@logTrackNotFound": { + "description": "Error category - missing tracks" + }, + "logFilterBySeverity": "Filter log berdasarkan tingkat keparahan", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "Belum ada log", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Log akan muncul di sini saat Anda menggunakan aplikasi", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, + "logIssueSummary": "Ringkasan Masalah", + "@logIssueSummary": { + "description": "Section header for error summary" + }, + "logIspBlockingDescription": "ISP Anda mungkin memblokir akses ke layanan unduhan", + "@logIspBlockingDescription": { + "description": "ISP blocking explanation" + }, + "logIspBlockingSuggestion": "Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8", + "@logIspBlockingSuggestion": { + "description": "ISP blocking fix suggestion" + }, + "logRateLimitedDescription": "Terlalu banyak permintaan ke layanan", + "@logRateLimitedDescription": { + "description": "Rate limit explanation" + }, + "logRateLimitedSuggestion": "Tunggu beberapa menit sebelum mencoba lagi", + "@logRateLimitedSuggestion": { + "description": "Rate limit fix suggestion" + }, + "logNetworkErrorDescription": "Masalah koneksi terdeteksi", + "@logNetworkErrorDescription": { + "description": "Network error explanation" + }, + "logNetworkErrorSuggestion": "Periksa koneksi internet Anda", + "@logNetworkErrorSuggestion": { + "description": "Network error fix suggestion" + }, + "logTrackNotFoundDescription": "Beberapa lagu tidak dapat ditemukan di layanan unduhan", + "@logTrackNotFoundDescription": { + "description": "Track not found explanation" + }, + "logTrackNotFoundSuggestion": "Lagu mungkin tidak tersedia dalam kualitas lossless", + "@logTrackNotFoundSuggestion": { + "description": "Track not found explanation" + }, + "logTotalErrors": "Total error: {count}", + "@logTotalErrors": { + "description": "Error count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffected": "Terpengaruh: {domains}", + "@logAffected": { + "description": "Affected domains display", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "logEntriesFiltered": "Entri ({count} difilter)", + "@logEntriesFiltered": { + "description": "Log count with filter active", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logEntries": "Entri ({count})", + "@logEntries": { + "description": "Total log count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "credentialsTitle": "Kredensial Spotify", + "@credentialsTitle": { + "description": "Credentials dialog title" + }, + "credentialsDescription": "Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.", + "@credentialsDescription": { + "description": "Credentials dialog explanation" + }, + "credentialsClientId": "Client ID", + "@credentialsClientId": { + "description": "Client ID field label - DO NOT TRANSLATE" + }, + "credentialsClientIdHint": "Tempel Client ID", + "@credentialsClientIdHint": { + "description": "Client ID placeholder" + }, + "credentialsClientSecret": "Client Secret", + "@credentialsClientSecret": { + "description": "Client Secret field label - DO NOT TRANSLATE" + }, + "credentialsClientSecretHint": "Tempel Client Secret", + "@credentialsClientSecretHint": { + "description": "Client Secret placeholder" + }, + "channelStable": "Stabil", + "@channelStable": { + "description": "Update channel - stable releases" + }, + "channelPreview": "Preview", + "@channelPreview": { + "description": "Update channel - beta/preview releases" + }, + "sectionSearchSource": "Sumber Pencarian", + "@sectionSearchSource": { + "description": "Settings section header" + }, + "sectionDownload": "Unduhan", + "@sectionDownload": { + "description": "Settings section header" + }, + "sectionPerformance": "Performa", + "@sectionPerformance": { + "description": "Settings section header" + }, + "sectionApp": "Aplikasi", + "@sectionApp": { + "description": "Settings section header" + }, + "sectionData": "Data", + "@sectionData": { + "description": "Settings section header" + }, + "sectionDebug": "Debug", + "@sectionDebug": { + "description": "Settings section header" + }, + "sectionService": "Layanan", + "@sectionService": { + "description": "Settings section header" + }, + "sectionAudioQuality": "Kualitas Audio", + "@sectionAudioQuality": { + "description": "Settings section header" + }, + "sectionFileSettings": "Pengaturan File", + "@sectionFileSettings": { + "description": "Settings section header" + }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "Warna", + "@sectionColor": { + "description": "Settings section header" + }, + "sectionTheme": "Tema", + "@sectionTheme": { + "description": "Settings section header" + }, + "sectionLayout": "Tata Letak", + "@sectionLayout": { + "description": "Settings section header" + }, + "sectionLanguage": "Bahasa", + "@sectionLanguage": { + "description": "Settings section header for language" + }, + "appearanceLanguage": "Bahasa Aplikasi", + "@appearanceLanguage": { + "description": "Language setting title" + }, + "appearanceLanguageSubtitle": "Pilih bahasa yang kamu inginkan", + "@appearanceLanguageSubtitle": { + "description": "Language setting subtitle" + }, + "settingsAppearanceSubtitle": "Tema, warna, tampilan", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" + }, + "settingsDownloadSubtitle": "Layanan, kualitas, format nama file", + "@settingsDownloadSubtitle": { + "description": "Download settings description" + }, + "settingsOptionsSubtitle": "Fallback, lirik, cover art, pembaruan", + "@settingsOptionsSubtitle": { + "description": "Options settings description" + }, + "settingsExtensionsSubtitle": "Kelola provider unduhan", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" + }, + "settingsLogsSubtitle": "Lihat log aplikasi untuk debugging", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Memuat link yang dibagikan...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Tekan kembali sekali lagi untuk keluar", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "tracksHeader": "Lagu", + "@tracksHeader": { + "description": "Section header for track list" + }, + "downloadAllCount": "Unduh Semua ({count})", + "@downloadAllCount": { + "description": "Download all button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tracksCount": "{count, plural, =1{1 lagu} other{{count} lagu}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackCopyFilePath": "Salin lokasi file", + "@trackCopyFilePath": { + "description": "Action - copy file path" + }, + "trackRemoveFromDevice": "Hapus dari perangkat", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" + }, + "trackLoadLyrics": "Muat Lirik", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" + }, + "trackMetadata": "Metadata", + "@trackMetadata": { + "description": "Tab title - track metadata" + }, + "trackFileInfo": "Info File", + "@trackFileInfo": { + "description": "Tab title - file information" + }, + "trackLyrics": "Lirik", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "File tidak ditemukan", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Buka di Deezer", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Buka di Spotify", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Nama lagu", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Artis", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Artis album", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Album", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Nomor lagu", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Nomor disc", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Durasi", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Kualitas audio", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "trackReleaseDate": "Tanggal rilis", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "Diunduh", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Salin lirik", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsNotAvailable": "Lirik tidak tersedia untuk lagu ini", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsTimeout": "Permintaan timeout. Coba lagi nanti.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Gagal memuat lirik", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Disalin ke clipboard", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "Hapus dari perangkat?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "trackCannotOpen": "Tidak dapat membuka: {message}", + "@trackCannotOpen": { + "description": "Error opening file", + "placeholders": { + "message": { + "type": "String" + } + } + }, + "dateToday": "Hari ini", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Kemarin", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "{count} hari lalu", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "{count} minggu lalu", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "{count} bulan lalu", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "concurrentSequential": "Berurutan", + "@concurrentSequential": { + "description": "Download mode - one at a time" + }, + "concurrentParallel2": "2 Paralel", + "@concurrentParallel2": { + "description": "Download mode - 2 simultaneous" + }, + "concurrentParallel3": "3 Paralel", + "@concurrentParallel3": { + "description": "Download mode - 3 simultaneous" + }, + "tapToSeeError": "Ketuk untuk melihat detail error", + "@tapToSeeError": { + "description": "Tooltip for failed download" + }, + "storeFilterAll": "Semua", + "@storeFilterAll": { + "description": "Store filter - all extensions" + }, + "storeFilterMetadata": "Metadata", + "@storeFilterMetadata": { + "description": "Store filter - metadata providers" + }, + "storeFilterDownload": "Unduhan", + "@storeFilterDownload": { + "description": "Store filter - download providers" + }, + "storeFilterUtility": "Utilitas", + "@storeFilterUtility": { + "description": "Store filter - utility extensions" + }, + "storeFilterLyrics": "Lirik", + "@storeFilterLyrics": { + "description": "Store filter - lyrics providers" + }, + "storeFilterIntegration": "Integrasi", + "@storeFilterIntegration": { + "description": "Store filter - integrations" + }, + "storeClearFilters": "Hapus filter", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeNoResults": "Tidak ada ekstensi ditemukan", + "@storeNoResults": { + "description": "Empty state when no extensions match filters" + }, + "extensionProviderPriority": "Prioritas Provider", + "@extensionProviderPriority": { + "description": "Extension capability - provider priority" + }, + "extensionInstallButton": "Pasang Ekstensi", + "@extensionInstallButton": { + "description": "Button to install extension" + }, + "extensionDefaultProvider": "Default (Deezer/Spotify)", + "@extensionDefaultProvider": { + "description": "Default search provider option" + }, + "extensionDefaultProviderSubtitle": "Gunakan pencarian bawaan", + "@extensionDefaultProviderSubtitle": { + "description": "Subtitle for default provider" + }, + "extensionAuthor": "Pembuat", + "@extensionAuthor": { + "description": "Extension detail - author" + }, + "extensionId": "ID", + "@extensionId": { + "description": "Extension detail - unique ID" + }, + "extensionError": "Error", + "@extensionError": { + "description": "Extension detail - error message" + }, + "extensionCapabilities": "Kemampuan", + "@extensionCapabilities": { + "description": "Section header - extension features" + }, + "extensionMetadataProvider": "Provider Metadata", + "@extensionMetadataProvider": { + "description": "Capability - provides metadata" + }, + "extensionDownloadProvider": "Provider Unduhan", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" + }, + "extensionLyricsProvider": "Provider Lirik", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" + }, + "extensionUrlHandler": "Penanganan URL", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" + }, + "extensionQualityOptions": "Opsi Kualitas", + "@extensionQualityOptions": { + "description": "Capability - quality selection" + }, + "extensionPostProcessingHooks": "Hook Pasca-Pemrosesan", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" + }, + "extensionPermissions": "Izin", + "@extensionPermissions": { + "description": "Section header - required permissions" + }, + "extensionSettings": "Pengaturan", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Hapus Ekstensi", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Diperbarui", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Versi App Minimum", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Pencocokan Lagu Kustom", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "Pasca-Pemrosesan", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} hook tersedia", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "{count} pola", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Strategi: {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { + "type": "String" + } + } + }, + "extensionsProviderPrioritySection": "Prioritas Provider", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" + }, + "extensionsInstalledSection": "Ekstensi Terpasang", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "Tidak ada ekstensi terpasang", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Pasang file .spotiflac-ext untuk menambahkan provider baru", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Pasang Ekstensi", + "@extensionsInstallButton": { + "description": "Button to install extension from file" + }, + "extensionsInfoTip": "Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.", + "@extensionsInfoTip": { + "description": "Security warning about extensions" + }, + "extensionsInstalledSuccess": "Ekstensi berhasil dipasang", + "@extensionsInstalledSuccess": { + "description": "Success message after install" + }, + "extensionsDownloadPriority": "Prioritas Unduhan", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" + }, + "extensionsDownloadPrioritySubtitle": "Atur urutan layanan unduhan", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" + }, + "extensionsNoDownloadProvider": "Tidak ada ekstensi dengan provider unduhan", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Prioritas Metadata", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Atur urutan sumber pencarian & metadata", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "Tidak ada ekstensi dengan provider metadata", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Provider Pencarian", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "Tidak ada ekstensi dengan pencarian kustom", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Pilih layanan yang digunakan untuk mencari lagu", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Pencarian kustom", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" + }, + "extensionsErrorLoading": "Error memuat ekstensi", + "@extensionsErrorLoading": { + "description": "Error message when extension fails to load" + }, + "qualityFlacLossless": "FLAC Lossless", + "@qualityFlacLossless": { + "description": "Quality option - CD quality FLAC" + }, + "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", + "@qualityFlacLosslessSubtitle": { + "description": "Technical spec for lossless" + }, + "qualityHiResFlac": "Hi-Res FLAC", + "@qualityHiResFlac": { + "description": "Quality option - high resolution FLAC" + }, + "qualityHiResFlacSubtitle": "24-bit / hingga 96kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" + }, + "qualityHiResFlacMax": "Hi-Res FLAC Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24-bit / hingga 192kHz", + "@qualityHiResFlacMaxSubtitle": { + "description": "Technical spec for hi-res max" + }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, + "qualityNote": "Kualitas sebenarnya tergantung ketersediaan lagu dari layanan", + "@qualityNote": { + "description": "Note about quality availability" + }, + "downloadAskBeforeDownload": "Tanya Sebelum Unduh", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" + }, + "downloadDirectory": "Direktori Unduhan", + "@downloadDirectory": { + "description": "Setting - download folder" + }, + "downloadSeparateSinglesFolder": "Folder Singles Terpisah", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" + }, + "downloadAlbumFolderStructure": "Struktur Folder Album", + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" + }, + "downloadSaveFormat": "Simpan Format", + "@downloadSaveFormat": { + "description": "Setting - output file format" + }, + "downloadSelectService": "Pilih Layanan", + "@downloadSelectService": { + "description": "Dialog title - choose download service" + }, + "downloadSelectQuality": "Pilih Kualitas", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" + }, + "downloadFrom": "Unduh Dari", + "@downloadFrom": { + "description": "Label - download source" + }, + "downloadDefaultQualityLabel": "Kualitas Default", + "@downloadDefaultQualityLabel": { + "description": "Label - default quality setting" + }, + "downloadBestAvailable": "Terbaik tersedia", + "@downloadBestAvailable": { + "description": "Quality option - highest available" + }, + "folderNone": "Tidak ada", + "@folderNone": { + "description": "Folder option - no organization" + }, + "folderNoneSubtitle": "Simpan semua file langsung ke folder unduhan", + "@folderNoneSubtitle": { + "description": "Subtitle for no folder organization" + }, + "folderArtist": "Artis", + "@folderArtist": { + "description": "Folder option - by artist" + }, + "folderArtistSubtitle": "Nama Artis/namafile", + "@folderArtistSubtitle": { + "description": "Folder structure example" + }, + "folderAlbum": "Album", + "@folderAlbum": { + "description": "Folder option - by album" + }, + "folderAlbumSubtitle": "Nama Album/namafile", + "@folderAlbumSubtitle": { + "description": "Folder structure example" + }, + "folderArtistAlbum": "Artis/Album", + "@folderArtistAlbum": { + "description": "Folder option - nested" + }, + "folderArtistAlbumSubtitle": "Nama Artis/Nama Album/namafile", + "@folderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "serviceTidal": "Tidal", + "@serviceTidal": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceQobuz": "Qobuz", + "@serviceQobuz": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceAmazon": "Amazon", + "@serviceAmazon": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceDeezer": "Deezer", + "@serviceDeezer": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceSpotify": "Spotify", + "@serviceSpotify": { + "description": "Service name - DO NOT TRANSLATE" + }, + "appearanceAmoledDark": "AMOLED Gelap", + "@appearanceAmoledDark": { + "description": "Theme option - pure black" + }, + "appearanceAmoledDarkSubtitle": "Latar belakang hitam murni", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" + }, + "appearanceChooseAccentColor": "Pilih Warna Aksen", + "@appearanceChooseAccentColor": { + "description": "Color picker dialog title" + }, + "appearanceChooseTheme": "Mode Tema", + "@appearanceChooseTheme": { + "description": "Theme picker dialog title" + }, + "queueTitle": "Antrian Unduhan", + "@queueTitle": { + "description": "Queue screen title" + }, + "queueClearAll": "Hapus Semua", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "Apakah Anda yakin ingin menghapus semua unduhan?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "queueEmpty": "Tidak ada unduhan dalam antrian", + "@queueEmpty": { + "description": "Empty queue state title" + }, + "queueEmptySubtitle": "Tambahkan lagu dari layar beranda", + "@queueEmptySubtitle": { + "description": "Empty queue state subtitle" + }, + "queueClearCompleted": "Hapus yang selesai", + "@queueClearCompleted": { + "description": "Button - clear finished downloads" + }, + "queueDownloadFailed": "Unduhan Gagal", + "@queueDownloadFailed": { + "description": "Error dialog title" + }, + "queueTrackLabel": "Lagu:", + "@queueTrackLabel": { + "description": "Label in error dialog" + }, + "queueArtistLabel": "Artis:", + "@queueArtistLabel": { + "description": "Label in error dialog" + }, + "queueErrorLabel": "Error:", + "@queueErrorLabel": { + "description": "Label in error dialog" + }, + "queueUnknownError": "Error tidak diketahui", + "@queueUnknownError": { + "description": "Fallback error message" + }, + "albumFolderArtistAlbum": "Artis / Album", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Albums/Nama Artis/Nama Album/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artis / [Tahun] Album", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Albums/Nama Artis/[2005] Nama Album/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Album Saja", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Albums/Nama Album/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "[Tahun] Album", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Albums/[2005] Nama Album/", + "@albumFolderYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "downloadedAlbumDeleteSelected": "Hapus yang Dipilih", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "Hapus {count} {count, plural, =1{lagu} other{lagu}} dari album ini?\n\nIni juga akan menghapus file dari penyimpanan.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTracksHeader": "Lagu", + "@downloadedAlbumTracksHeader": { + "description": "Section header for tracks" + }, + "downloadedAlbumDownloadedCount": "{count} diunduh", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} dipilih", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumAllSelected": "Semua lagu dipilih", + "@downloadedAlbumAllSelected": { + "description": "Status - all items selected" + }, + "downloadedAlbumTapToSelect": "Ketuk lagu untuk memilih", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "Hapus {count} {count, plural, =1{lagu} other{lagu}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Pilih lagu untuk dihapus", + "@downloadedAlbumSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "utilityFunctions": "Fungsi Utilitas", + "@utilityFunctions": { + "description": "Extension capability - utility functions" + }, + "recentTypeArtist": "Artis", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Album", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Lagu", + "@recentTypeSong": { + "description": "Recent access item type - song/track" + }, + "recentTypePlaylist": "Playlist", + "@recentTypePlaylist": { + "description": "Recent access item type - playlist" + }, + "recentPlaylistInfo": "Playlist: {name}", + "@recentPlaylistInfo": { + "description": "Snackbar message when tapping playlist in recent access", + "placeholders": { + "name": { + "type": "String", + "description": "Playlist name" + } + } + }, + "errorGeneric": "Error: {message}", + "@errorGeneric": { + "description": "Generic error message format", + "placeholders": { + "message": { + "type": "String", + "description": "Error message" + } + } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Unduh Semua", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, "discographyNoAlbums": "No albums available", "@discographyNoAlbums": { "description": "Error - no albums found for artist" @@ -2999,5 +2999,24 @@ "tutorialExample": "CONTOH", "@tutorialExample": { "description": "Example label in tutorial" - } -} \ No newline at end of file + }, + + "libraryForceFullScan": "Pindai Ulang Penuh", + "@libraryForceFullScan": {"description": "Button to force a complete rescan of library"}, + "libraryForceFullScanSubtitle": "Pindai ulang semua file, abaikan cache", + "@libraryForceFullScanSubtitle": {"description": "Subtitle for force full scan button"}, + + "cleanupOrphanedDownloads": "Bersihkan Entri Unduhan Tidak Valid", + "@cleanupOrphanedDownloads": {"description": "Button to remove history entries for deleted files"}, + "cleanupOrphanedDownloadsSubtitle": "Hapus entri riwayat untuk file yang tidak ada lagi", + "@cleanupOrphanedDownloadsSubtitle": {"description": "Subtitle for orphaned cleanup button"}, + "cleanupOrphanedDownloadsResult": "Menghapus {count} entri unduhan tidak valid dari riwayat", + "@cleanupOrphanedDownloadsResult": { + "description": "Snackbar message after orphan cleanup", + "placeholders": { + "count": {"type": "int"} + } + }, + "cleanupOrphanedDownloadsNone": "Tidak ada entri unduhan tidak valid", + "@cleanupOrphanedDownloadsNone": {"description": "Snackbar when no orphans found"} +}