Files
pluriwave/lib/l10n/app_id.arb
T
FreeTLab 9cfa5ac17d
Build & Deploy PluriWave / Análisis de código (push) Successful in 42s
Build & Deploy PluriWave / Build APK + AAB release (push) Failing after 4m23s
fix(iap): address code review defects in freemium/IAP change
Fixes 9 of 10 review findings (10th requires a manual Play Console
step, no code change):

1. app.dart/banner_anuncio_superior.dart: move the top SafeArea inside
   BannerAnuncioSuperior so it only reserves status-bar height when an
   ad actually renders, restoring edge-to-edge layout for premium and
   free-unloaded users.
2. servicio_anuncios.dart: bound every interstitial await (load,
   presentation, and the injected implementation itself) with
   injectable timeouts so a callback that never fires can no longer
   hang a caller.
3. estado_entitlement.dart/hoja_premium.dart: expose a typed
   resultadoUsuario signal for purchase/restore failures and
   restore-found-nothing, with dedicated localized messages
   (compraError, restauracionSinCompras) across all 13 locales --
   never the raw developer/exception string.
4. main.dart/servicio_consentimiento.dart: add a GDPR/UMP consent flow
   (ConsentInformation/ConsentForm) that gates Mobile Ads SDK init on
   canRequestAds(); premium users never see a consent form; failures
   degrade to no ads instead of crashing or blocking startup.
6. servicio_anuncios.dart: track real ad presentation
   (onAdShowedFullScreenContent) so a failed-to-show interstitial no
   longer consumes a session cap slot.
7. banner_anuncio_superior.dart: add an explicit load-attempted guard
   so repeated didChangeDependencies (e.g. entitlement notifyListeners
   during a purchase) can only ever trigger one banner load attempt.
8. servicio_anuncios.dart: make esPremium a required constructor
   parameter, matching the hardened contract already applied to
   EstadoAlarmas/EstadoGrabacion/EstadoRadio.
9. hoja_premium.dart: add a dedicated premiumActivo localized string
   instead of reusing the equalizer's equalizerActive translation,
   across all 13 locales.

All fixes implemented RED-first (failing test before production
code). Full suite: 1261 passed, 2 pre-existing skips, 0 failures.
flutter analyze: 5 pre-existing issues only, 0 new.

[version set]
2026-08-12 16:10:46 +02:00

909 lines
36 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"@@locale": "id",
"appTitle": "PluriWave",
"navHome": "Dengar",
"navSearch": "Cari",
"navFavorites": "Favorit",
"navAlarms": "Alarm",
"navSettings": "Pengaturan",
"actionOk": "Oke",
"sleepTimer": "Timer tidur",
"sleepTimerDescription": "Mematikan radio secara lembut dengan hitung mundur yang tepat.",
"cancelTimer": "Batalkan timer",
"optionOther": "Lainnya",
"customDurationTitle": "Durasi khusus",
"durationGreaterThanZero": "Pilih durasi yang lebih besar dari nol.",
"hoursLabel": "Jam",
"minutesLabel": "Menit",
"secondsLabel": "Detik",
"durationHoursMinutesSeconds": "{hours} jam {minutes} mnt {seconds} dtk",
"@durationHoursMinutesSeconds": {
"placeholders": {
"hours": {},
"minutes": {},
"seconds": {}
}
},
"durationMinutesSeconds": "{minutes} mnt {seconds} dtk",
"@durationMinutesSeconds": {
"placeholders": {
"minutes": {},
"seconds": {}
}
},
"durationMinutesOnly": "{minutes} mnt",
"@durationMinutesOnly": {
"placeholders": {
"minutes": {}
}
},
"durationSecondsOnly": "{seconds} dtk",
"@durationSecondsOnly": {
"placeholders": {
"seconds": {}
}
},
"saveQuickAccess": "Simpan sebagai akses cepat",
"startTimer": "Mulai timer",
"skipCurrentAlarmExecution": "Eksekusi {alarmName} kali ini dilewati.",
"@skipCurrentAlarmExecution": {
"placeholders": {
"alarmName": {}
}
},
"settingsTitle": "Pengaturan",
"settingsSubtitle": "Kontrol halus untuk suara, cadangan, dan stasiun khusus.",
"languageSectionTitle": "Bahasa",
"languageSectionDescription": "Pilih bagaimana bahasa aplikasi ditampilkan.",
"languageSystemDefault": "Sistem",
"languageSpanish": "Spanyol",
"languageEnglish": "Inggris",
"languageUpdated": "Bahasa diperbarui: {languageName}",
"@languageUpdated": {
"placeholders": {
"languageName": {}
}
},
"languageUpdatedSystem": "Bahasa diperbarui: Sistem",
"timerSectionTitle": "Timer tidur",
"timerSectionAdd": "Tambah",
"timerSectionDescription": "Sesuaikan pintasan cepat yang muncul saat radio dimatikan otomatis.",
"timerSectionRestoreRecommended": "Pulihkan waktu yang disarankan",
"newQuickAccessTitle": "Akses cepat baru",
"saveQuickAccessButton": "Simpan akses cepat",
"settingsSafeStatus": "Aman",
"recordingsSectionTitle": "Rekaman",
"recordingsFolderDialogTitle": "Pilih folder rekaman",
"recordingsPathUpdated": "Jalur rekaman diperbarui",
"recordingsPathSaveError": "Tidak dapat menyimpan jalur: {error}",
"recordingsDefaultFolderRestored": "Folder internal bawaan akan digunakan",
"recordingsFolderTitle": "Folder rekaman",
"recordingsPathCalculating": "Menghitung jalur...",
"recordingsChangePath": "Ubah jalur",
"recordingsUseDefaultPath": "Gunakan jalur bawaan",
"recordingsOriginalStreamHint": "Radio disimpan dari stream asli, tanpa kompresi ulang.",
"equalizerActive": "Aktif",
"equalizerDisabled": "Nonaktif",
"equalizerEnable": "Aktifkan equalizer",
"equalizerRealtimeSubtitle": "Perubahan diterapkan secara langsung ke stasiun saat ini.",
"equalizerPendingSubtitle": "Perubahan disimpan dan akan diterapkan saat Android mengaktifkan efek.",
"equalizerPerStationTitle": "Gunakan EQ khusus untuk favorit ini",
"equalizerPerStationActive": "Aktif untuk {stationName}",
"equalizerPerStationMain": "Menggunakan EQ utama untuk {stationName}",
"preferredStationTitle": "Stasiun pilihan",
"preferredStationDescription": "Dipilih lebih dulu saat membuat alarm dan dapat dimulai sebagai pemutaran cepat.",
"preferredStationNoStationsTitle": "Belum ada stasiun yang tersedia",
"preferredStationNoStationsSubtitle": "Simpan favorit atau muat stasiun untuk memilih stasiun pilihan.",
"preferredStationAutomaticFallback": "Cadangan otomatis",
"preferredStationDefaultFavorite": "Favorit bawaan",
"preferredStationCurrent": "Pilihan saat ini: {stationName}",
"preferredStationAutoUsing": "Tidak ada favorit: otomatis menggunakan {stationName}",
"preferredStationPlay": "Putar pilihan",
"customStationsTitle": "Stasiun khusus",
"customStationsAdd": "Tambah",
"customStationsEmpty": "Tidak ada stasiun khusus.",
"playAction": "Putar",
"deleteAction": "Hapus",
"addStationTitle": "Tambah stasiun",
"stationNameLabel": "Nama *",
"unnamedStation": "Stasiun tanpa nama",
"requiredField": "Kolom wajib",
"streamUrlLabel": "URL stream *",
"invalidUrl": "URL tidak valid",
"countryOptionalLabel": "Negara (opsional)",
"saveStation": "Simpan stasiun",
"backupSectionTitle": "Cadangan",
"backupExportTitle": "Ekspor pengaturan",
"backupExportSubtitle": "Favorit, stasiun khusus, dan preset EQ",
"backupImportTitle": "Impor pengaturan",
"backupImportSubtitle": "Pulihkan dari berkas cadangan",
"backupShareSubject": "PluriWave — cadangan",
"backupShareText": "Pengaturan PluriWave diekspor pada {date}",
"backupExportError": "Kesalahan saat mengekspor: {error}",
"backupImportConfirmMessage": "Ini akan menambahkan favorit, stasiun, dan preset dari berkas. Lanjutkan?",
"backupImportSuccess": "Pengaturan berhasil diimpor",
"backupImportError": "Kesalahan saat mengimpor: {error}",
"appVersionLoading": "Memuat versi...",
"appVersionSubtitle": "{version} - Radio dunia",
"savedFavoritesTitle": "Favorit tersimpan",
"stationFilterTitle": "Filter stasiun",
"stationFilterSubtitle": "Hanya stasiun yang terverifikasi aktif",
"backgroundAudioTitle": "Audio latar belakang",
"backgroundAudioSubtitle": "Tetap berjalan saat layar dimatikan",
"dash": "—",
"@recordingsPathSaveError": {
"placeholders": {
"error": {}
}
},
"@equalizerPerStationActive": {
"placeholders": {
"stationName": {}
}
},
"@equalizerPerStationMain": {
"placeholders": {
"stationName": {}
}
},
"@preferredStationCurrent": {
"placeholders": {
"stationName": {}
}
},
"@preferredStationAutoUsing": {
"placeholders": {
"stationName": {}
}
},
"@backupShareText": {
"placeholders": {
"date": {}
}
},
"@backupExportError": {
"placeholders": {
"error": {}
}
},
"@backupImportError": {
"placeholders": {
"error": {}
}
},
"@appVersionSubtitle": {
"placeholders": {
"version": {}
}
},
"cancelAction": "Batal",
"equalizerTitle": "Equalizer",
"recordingsOpenFolder": "Buka folder",
"recordingsOpenFolderError": "Tidak dapat membuka folder: {error}",
"recordingsMaxSizeTitle": "Ukuran rekaman maksimum",
"recordingsMaxSizeSubtitle": "Batas saat ini: {size} MB",
"recordingsMaxSizeDialogTitle": "Ukuran maksimum per rekaman",
"recordingsMaxSizeMbLabel": "Megabyte maksimum",
"recordingsMaxSizeSaved": "Batas rekaman diperbarui menjadi {size} MB",
"@recordingsOpenFolderError": {
"placeholders": {
"error": {}
}
},
"@recordingsMaxSizeSubtitle": {
"placeholders": {
"size": {
"type": "int"
}
}
},
"@recordingsMaxSizeSaved": {
"placeholders": {
"size": {
"type": "int"
}
}
},
"stationOrderTitle": "Urutan stasiun",
"stationOrderByName": "Berdasarkan nama",
"stationOrderByQuality": "Berdasarkan kualitas",
"stationOrderScopeDescription": "Berlaku untuk favorit, pencarian, stasiun terdekat, dan daftar cepat.",
"favoriteGroupsTitle": "Daftar favorit",
"favoriteGroupsDescription": "Buat daftar pendek untuk mengatur stasiun tersimpan.",
"favoriteGroupsAdd": "Tambah daftar",
"favoriteGroupsEdit": "Edit daftar",
"favoriteGroupsDelete": "Hapus daftar",
"favoriteGroupsNameLabel": "Nama daftar",
"favoriteGroupsNameTooLong": "Maksimum 28 karakter.",
"favoriteGroupsUnassigned": "Belum ditetapkan",
"favoriteGroupsProtectedHint": "Daftar bawaan: tidak dapat diedit atau dihapus.",
"favoriteGroupsCreated": "Daftar dibuat",
"favoriteGroupsUpdated": "Daftar diperbarui",
"favoriteGroupsDeleted": "Daftar dihapus; stasiunnya kembali ke Belum ditetapkan.",
"favoriteGroupsAssign": "Pindahkan ke daftar",
"favoriteGroupsAssignSubtitle": "Daftar saat ini: {groupName}",
"favoriteGroupsAssigned": "{stationName} dipindahkan ke {groupName}",
"favoritesTitle": "Favorit",
"favoritesEmptyTitle": "Belum ada favorit",
"favoritesEmptySubtitle": "Ketuk hati di stasiun mana pun untuk menyimpannya ke koleksi Anda.",
"favoritesHeaderSubtitle": "Atur koleksi Anda dengan daftar dan dekatkan radio penting.",
"favoritesCollection": "Koleksi",
"favoritesSavedCount": "{count} tersimpan",
"favoritesRemoveTooltip": "Hapus dari favorit",
"favoritesRemovedMessage": "{stationName} dihapus dari favorit",
"@favoriteGroupsAssignSubtitle": {
"placeholders": {
"groupName": {}
}
},
"@favoriteGroupsAssigned": {
"placeholders": {
"stationName": {},
"groupName": {}
}
},
"@favoritesSavedCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@favoritesRemovedMessage": {
"placeholders": {
"stationName": {}
}
},
"alarmPostponedCurrentExecution": "Alarm ditunda untuk eksekusi ini.",
"searchScreenTitle": "Cari sinyal",
"searchScreenSubtitle": "Temukan radio berdasarkan nama, negara, atau bahasa dengan filter cepat dan kontras tinggi.",
"searchFiltersLabel": "Filter",
"searchHint": "Radio Horizonte, jazz, berita...",
"searchCountryFilterLabel": "Negara",
"searchLanguageFilterLabel": "Bahasa",
"searchMinQualityFilterLabel": "Kualitas minimum",
"searchLoadingStationsLabel": "MENCARI STASIUN…",
"searchEmptyTitle": "Cari stasiun",
"searchNoResultsTitle": "Tidak ada hasil",
"searchNoResultsForQueryTitle": "Tidak ada hasil untuk \"{query}\"",
"@searchNoResultsForQueryTitle": {"placeholders": {"query": {}}},
"searchEmptySubtitle": "Gunakan bilah atas atau chip untuk menemukan sinyal dari seluruh dunia.",
"searchNoResultsSubtitle": "Coba hapus filter atau tulis nama lain untuk menemukan sinyal aktif.",
"countrySpain": "Spanyol",
"countryUsa": "Amerika Serikat",
"countryMexico": "Meksiko",
"countryArgentina": "Argentina",
"countryUk": "Inggris Raya",
"countryFrance": "Prancis",
"countryGermany": "Jerman",
"countryItaly": "Italia",
"countryBrazil": "Brasil",
"countryJapan": "Jepang",
"languageNameSpanish": "Spanyol",
"languageNameEnglish": "Inggris",
"languageNameFrench": "Prancis",
"languageNameGerman": "Jerman",
"languageNamePortuguese": "Portugis",
"languageNameItalian": "Italia",
"languageNameJapanese": "Jepang",
"languageNameArabic": "Arab",
"languageNameRussian": "Rusia",
"homeScreenSubtitle": "Radio global langsung dengan sinyal bersih, favorit cerdas, dan pengalaman visual bergaya kuis.",
"exploreStations": "Jelajahi stasiun",
"stationsCount": "{count} radio",
"@stationsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"qualityHd": "Kualitas HD",
"nearYou": "Di dekat Anda",
"nearYouInCountry": "Di dekat Anda · {country}",
"@nearYouInCountry": {
"placeholders": {
"country": {}
}
},
"detectAction": "Deteksi",
"liveRadar": "Radar langsung",
"genresTitle": "Genre",
"exploreByTitle": "Jelajahi berdasarkan",
"exploreTrendingTitle": "Tren",
"exploreTrendingSubtitle": "Hari ini",
"exploreNewTitle": "Baru",
"exploreNewSubtitle": "Minggu ini",
"offlineBannerTitle": "Tidak ada koneksi",
"retryAction": "Coba lagi",
"noStationsAvailable": "Tidak ada stasiun tersedia",
"noStationsAvailableSubtitle": "Coba segarkan atau pilih genre lain untuk menangkap sinyal kembali.",
"genrePop": "Pop",
"genreRock": "Rock",
"genreJazz": "Jazz",
"genreClassical": "Klasik",
"genreElectronic": "Elektronik",
"genreNews": "Berita",
"genreTalk": "Obrolan",
"genreHipHop": "Hip-hop",
"genreCountry": "Country",
"genreMetal": "Metal",
"genreReggae": "Reggae",
"genreLatin": "Latin",
"alarmScreenTitle": "Bangun dengan musik",
"alarmScreenSubtitle": "Alarm dengan radio, suara aman, liburan cerdas, dan eksekusi berikutnya selalu terlihat.",
"createAlarmAction": "Buat alarm",
"alarmsCount": "{count} alarm",
"@alarmsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"activeAlarmsWithoutNextTitle": "Alarm aktif tanpa eksekusi berikutnya",
"noActiveAlarms": "Tidak ada alarm aktif",
"nextAlarmTitle": "Alarm berikutnya",
"activeAlarmsWithoutNextSubtitle": "Ada {count} alarm aktif, tetapi saat ini tidak memiliki tanggal valid di masa depan. Periksa tanggal, hari, dan liburan.",
"@activeAlarmsWithoutNextSubtitle": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"createAlarmHint": "Buat alarm dan PluriWave akan menghitung eksekusi berikutnya secara otomatis.",
"alarmVacationPlay": "Berbunyi saat liburan",
"alarmVacationPause": "Jeda saat liburan",
"alarmFadeInLabel": "Fade-in {seconds}d",
"@alarmFadeInLabel": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"alarmNextExecution": "Eksekusi berikutnya: {date}",
"@alarmNextExecution": {
"placeholders": {
"date": {}
}
},
"alarmNoNextExecution": "Tidak memiliki eksekusi aktif berikutnya.",
"alarmSkippedExecution": "Satu eksekusi dilewati: {date}.",
"@alarmSkippedExecution": {
"placeholders": {
"date": {}
}
},
"editAction": "Edit",
"skipNextAction": "Lewati berikutnya",
"deleteTooltip": "Hapus",
"alarmSkippedNoNextSnackbar": "Alarm dilewati. Tidak ada eksekusi berikutnya.",
"alarmSkippedReturnsSnackbar": "Alarm dilewati. Akan kembali pada {date}.",
"@alarmSkippedReturnsSnackbar": {
"placeholders": {
"date": {}
}
},
"alarmVacationPausedNoNext": "Dijeda karena liburan ({vacationName}) dan tanpa eksekusi berikutnya.",
"@alarmVacationPausedNoNext": {
"placeholders": {
"vacationName": {}
}
},
"alarmVacationPausedReturns": "Dijeda karena liburan ({vacationName}) dan akan kembali pada {date}.",
"@alarmVacationPausedReturns": {
"placeholders": {
"vacationName": {},
"date": {}
}
},
"alarmVacationReturns": "Dengan liburan aktif, akan berbunyi lagi pada {date}.",
"@alarmVacationReturns": {
"placeholders": {
"date": {}
}
},
"defaultAlarmName": "Alarm musik",
"newAlarmTitle": "Alarm baru",
"editAlarmTitle": "Edit alarm",
"nameField": "Nama",
"timeField": "Waktu",
"dateField": "Tanggal",
"onceOption": "Sekali",
"dailyOption": "Harian",
"weekdaysOption": "Hari",
"soundAndVolumeSection": "Suara dan volume",
"alarmFadeInTitle": "Fade-in alarm",
"alarmFadeInOff": "0 d (tanpa transisi)",
"alarmFadeInSummary": "{seconds} d (dari 5% ke volume terpilih)",
"@alarmFadeInSummary": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"internalSafeSoundLabel": "Suara internal aman",
"soundWarmSunrise": "Matahari terbit hangat",
"soundSoftBell": "Lonceng lembut",
"soundDigitalPulse": "Denyut digital",
"favoriteStationLabel": "Stasiun favorit",
"noStationUseInternalSound": "Tanpa stasiun: gunakan suara internal",
"alarmFallbackStationLabel": "Stasiun cadangan",
"alarmStationPickerSearchHint": "Cari stasiun berdasarkan nama",
"alarmSnoozeDurationTitle": "Durasi tunda",
"snoozeAction": "Tunda",
"alarmSnoozeOptionLabel": "{minutes} mnt",
"@alarmSnoozeOptionLabel": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"alarmSnoozeUsualLabel": "biasa",
"saveFavoritesAlarmHint": "Simpan stasiun ke Favorit untuk digunakan sebagai alarm musik.",
"useCurrentStationAction": "Gunakan stasiun saat ini",
"playDuringVacations": "Bunyi saat liburan",
"playDuringVacationsHint": "Jika dimatikan, eksekusi berikutnya akan melompat ke hari valid pertama.",
"saveAlarmAction": "Simpan alarm",
"chooseOneWeekdayError": "Pilih setidaknya satu hari dalam seminggu.",
"androidReliabilityReview": "Tinjau keandalan Android",
"statusOk": "Oke",
"statusPending": "tertunda",
"androidReliabilityStatus": "Keandalan: tepat {exact} · notifikasi {notifications} · layar {screen}",
"@androidReliabilityStatus": {
"placeholders": {
"exact": {},
"notifications": {},
"screen": {}
}
},
"vacationRangesTitle": "Rentang liburan",
"addAction": "Tambah",
"vacationRangesHint": "Jika sebuah alarm memiliki \"Jeda saat liburan\", rentang ini dilewati otomatis.",
"noVacationRangesLoaded": "Tidak ada rentang dimuat.",
"deleteRangeTooltip": "Hapus rentang",
"vacationsDefaultName": "Liburan",
"newVacationRangeTitle": "Rentang liburan baru",
"editVacationRangeTitle": "Edit rentang liburan",
"vacationDeleteConfirmTitle": "Hapus rentang liburan?",
"vacationDeleteConfirmMessage": "Tindakan ini tidak dapat dibatalkan.",
"startField": "Mulai",
"endField": "Akhir",
"saveRangeAction": "Simpan rentang",
"noAlarmsYetTitle": "Belum ada alarm.",
"noAlarmsYetSubtitle": "Buat satu untuk merancang bangun tidur musikal Anda.",
"ringingInternalAudioActive": "Berbunyi dengan audio internal aman.",
"ringingPreparingInternalAudio": "Menyiapkan audio internal aman.",
"stopAlarmAction": "Hentikan alarm",
"alarmStopFailedMessage": "Kami tidak dapat memastikan alarm berhenti. Coba lagi.",
"alarmForceStopAction": "Paksa berhenti",
"alarmMissedNotificationTitle": "Alarm terlewat",
"alarmMissedNotificationText": "{name} dibisukan secara otomatis setelah 10 menit.",
"@alarmMissedNotificationText": {
"placeholders": {
"name": {}
}
},
"pauseAction": "Jeda",
"miniPlayerOpenLabel": "Buka pemutar untuk {stationName}",
"@miniPlayerOpenLabel": {
"placeholders": {
"stationName": {}
}
},
"playerIconLabel": "Pemutar",
"playbackStatusConnecting": "Menghubungkan...",
"playbackStatusLive": "Siaran langsung",
"playbackStatusPaused": "Dijeda",
"playbackStatusReconnecting": "Menyambung ulang...",
"playbackStatusConnectionError": "Kesalahan koneksi",
"playbackStatusStopped": "Dihentikan",
"stationSemanticLabel": "Stasiun {stationName}",
"@stationSemanticLabel": {
"placeholders": {
"stationName": {}
}
},
"favoritesAddTooltip": "Tambahkan ke favorit",
"favoritesAddedMessage": "{stationName} ditambahkan ke favorit",
"@favoritesAddedMessage": {
"placeholders": {
"stationName": {}
}
},
"stationIconLabel": "Ikon stasiun",
"liveNow": "Sedang siaran langsung",
"equalizerBandLabel": "Pita {band}",
"@equalizerBandLabel": {
"placeholders": {
"band": {}
}
},
"equalizerBandValue": "{value} desibel",
"@equalizerBandValue": {
"placeholders": {
"value": {}
}
},
"equalizerPresetFlat": "Datar",
"equalizerPresetRock": "Rock",
"equalizerPresetPop": "Pop",
"equalizerPresetBassBoost": "Penguat bass",
"equalizerPresetJazz": "Jazz",
"equalizerPresetVoice": "Suara",
"equalizerPresetCustom": "Kustom",
"onboardingTitle": "Selamat datang di PluriWave",
"onboardingNewsTitle": "Yang baru",
"onboardingStartAction": "Mulai",
"onboardingCloseTooltip": "Tutup",
"radioRecordingError": "Kesalahan saat merekam radio: {error}",
"@radioRecordingError": {
"placeholders": {
"error": {}
}
},
"radioApiConnectionError": "Tidak ada koneksi ke antarmuka pemrograman aplikasi radio",
"radioSearchError": "Kesalahan pencarian. Periksa koneksi Anda.",
"radioLoadMoreStationsError": "Tidak dapat memuat lebih banyak stasiun.",
"radioNearbyStationsError": "Kami tidak dapat mendeteksi stasiun terdekat. Gunakan filter berdasarkan negara.",
"radioCannotPlayStation": "Tidak dapat memutar \"{stationName}\"",
"@radioCannotPlayStation": {
"placeholders": {
"stationName": {}
}
},
"recordingSelectStationFirst": "Pilih stasiun sebelum merekam.",
"recordingStartError": "Tidak dapat memulai rekaman: {error}",
"@recordingStartError": {
"placeholders": {
"error": {}
}
},
"unsupportedConfigVersion": "Versi konfigurasi tidak didukung",
"audioErrorGeneric": "Kesalahan pemutaran",
"audioErrorNoInternet": "Tidak ada koneksi internet",
"audioErrorInvalidUrl": "Alamat radio tidak valid",
"audioErrorNotFound": "Radio tidak tersedia (kesalahan 404)",
"audioErrorTimeout": "Waktu koneksi habis",
"audioErrorCannotConnect": "Tidak dapat terhubung ke radio",
"audioErrorUnsupportedFormat": "Format aliran tidak didukung",
"audioErrorDecode": "Kesalahan saat mendekode aliran audio",
"audioErrorCleartext": "Radio ini menggunakan HTTP tanpa enkripsi, dan itu tidak diizinkan",
"audioErrorSsl": "Sertifikat SSL radio tidak valid",
"audioErrorCannotPlay": "Radio ini tidak dapat diputar",
"audioErrorUnexpectedPlayback": "Kesalahan tak terduga saat memutar",
"androidExactAlarmScheduleError": "Android tidak dapat menjadwalkan alarm tepat. Periksa izin alarm tepat.",
"recordingPathEmptyError": "Jalur rekaman tidak boleh kosong",
"recordingMaxSizeInvalidError": "Ukuran maksimum harus lebih besar dari nol",
"recordingAlreadyActiveError": "Sudah ada rekaman yang sedang berlangsung",
"alarmRingingFallbackActive": "Memutar dengan audio internal yang aman.",
"alarmRingingPreparingFallback": "Menyiapkan audio internal yang aman.",
"alarmRingingTryingStation": "Mencoba memutar stasiun Anda dengan kualitas tertinggi yang tersedia.",
"alarmScheduleDaily": "Setiap pagi",
"alarmScheduleOnce": "Sekali · {date}",
"@alarmScheduleOnce": {
"placeholders": {
"date": {}
}
},
"alarmScheduleWeekdays": "Hari: {days}",
"@alarmScheduleWeekdays": {
"placeholders": {
"days": {}
}
},
"alarmRepeatSectionLabel": "ULANGI",
"alarmVolumeLabel": "Volume",
"androidReliabilityTitle": "Tinjau keandalan Android",
"closeAction": "Tutup",
"customOption": "Kustom",
"endLabel": "Selesai",
"equalizerDisable": "Nonaktifkan equalizer",
"helpTitle": "Bantuan dan tutorial",
"helpSubtitle": "9 layar · lihat lagi kapan saja",
"tutorialSkipAction": "Lewati",
"tutorialNextAction": "Berikutnya",
"tutorialPage1Headline": "Simpan stasiun Anda dan kelompokkan",
"tutorialPage1Body": "Ketuk ikon hati untuk menyimpan stasiun. Di «Stasiun Anda» Anda bisa membuat grup seperti «Setiap pagi» atau «Mobil» dan mengurutkannya ulang dengan menyeret.",
"tutorialPage2Headline": "Satu equalizer umum, dan satu lagi per stasiun",
"tutorialPage2Body": "Di Pengaturan, Anda menentukan equalizer umum. Dan dari pemutaran stasiun tertentu, Anda bisa memberinya pengaturan sendiri, yang lebih diutamakan daripada pengaturan umum.",
"tutorialPage3Headline": "Rekam apa yang sedang Anda dengarkan",
"tutorialPage3Body": "Dari baki alat pemutar, «Rekam» menyimpan stream asli. Temukan rekaman Anda di Pengaturan Rekaman.",
"tutorialPage4Headline": "Alarm yang menyesuaikan diri dengan Anda",
"tutorialPage4Body": "Bangun dengan stasiun favorit Anda, tunda 3, 5, atau 10 menit, dan tambahkan rentang liburan agar sebagian alarm melewati dirinya sendiri.",
"tutorialPage5Headline": "Favorit Anda, juga di mobil",
"tutorialPage5Body": "Sambungkan ponsel Anda dengan Android Auto dan temukan Favorit, Semua stasiun, Stasiun Anda, dan Musik Lokal Anda, dengan tombol besar yang dirancang untuk berkendara.",
"tutorialPage6Headline": "Tersambung ulang dengan sendirinya",
"tutorialPage6Body": "Jika sinyal terputus, PluriWave mencoba lagi secara otomatis dan tetap menampilkan favorit tersimpan Anda meski tanpa koneksi.",
"tutorialPage7Headline": "Pilih berapa lama menunda",
"tutorialPage7Body": "Saat alarm berbunyi, tidak ada satu «tunda» saja: Anda memilih 3, 5, atau 10 menit sesuai yang Anda butuhkan saat itu.",
"tutorialPage8Headline": "Tidak menemukannya? Tambahkan sendiri",
"tutorialPage8Body": "Di «Stasiun Anda» → Tambah stasiun khusus, tempel URL stream stasiun yang tidak ada di hasil pencarian. Stasiun ini disimpan di «Stasiun Anda», juga tersedia di mobil.",
"tutorialPage9Headline": "Selesai, Anda sudah tahu yang penting",
"tutorialPage9BannerBody": "Untuk melihat tutorial ini lagi kapan saja: Pengaturan → Informasi → Bantuan dan tutorial.",
"indefiniteOption": "Tidak terbatas",
"invalidNumber": "Nomor tidak valid",
"nameLabel": "Nama",
"notPlaying": "Tidak memutar",
"oneTimeOption": "Sekali",
"pausePlaybackTooltip": "Jeda pemutaran",
"qualityOriginal": "Kualitas asli: {quality}",
"@qualityOriginal": {
"placeholders": {
"quality": {}
}
},
"qualityUnknown": "Kualitas tidak dilaporkan",
"recordAction": "Rekam",
"recordDurationTitle": "Durasi rekaman",
"recordRadioSubtitle": "Pilih berapa lama ingin merekam.",
"recordRadioTitle": "Rekam radio",
"recordingActiveTitle": "Merekam radio",
"recordingDirectTitle": "Perekaman langsung",
"recordingsOpenFolderPlainError": "Tidak dapat membuka folder rekaman",
"recordingsOpenLatest": "Buka rekaman terbaru",
"recordingsOpenLatestError": "Tidak dapat membuka rekaman terbaru",
"startLabel": "Mulai",
"startPlaybackTooltip": "Mulai pemutaran",
"stopAction": "Stop",
"stopPlaybackTooltip": "Hentikan pemutaran",
"weekdayShortMonday": "Sen",
"weekdayShortTuesday": "Sel",
"weekdayShortWednesday": "Rab",
"weekdayShortThursday": "Kam",
"weekdayShortFriday": "Jum",
"weekdayShortSaturday": "Sab",
"weekdayShortSunday": "Min",
"stationCount": "{count, plural, other{{count} stasiun}}",
"alarmIconLabel": "Alarm musik",
"vacationIconLabel": "Mode liburan",
"streamUrlHint": "https://stream.example.com:8000/radio",
"advancedEqSectionTitle": "Opsi EQ Lanjutan",
"advancedEqEnableToggle": "Aktifkan EQ per perangkat",
"advancedEqEnableToggleSubtitle": "Terapkan preset EQ yang berbeda secara otomatis saat keluaran audio Anda berubah.",
"advancedEqKnownDevicesTitle": "Perangkat audio yang dikenal",
"advancedEqKnownDevicesEmpty": "Belum ada perangkat audio yang tercatat. Hubungkan perangkat untuk memulai.",
"advancedEqDevicePresetLabel": "Preset: {presetName}",
"@advancedEqDevicePresetLabel": {
"placeholders": {
"presetName": {}
}
},
"preNoticeCountdown": "Mulai dalam {minutes} menit",
"snoozeCountdown": "Berbunyi dalam {minutes} mnt",
"@snoozeCountdown": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"snoozeAgainAction": "Tunda lagi",
"alarmRingingNotificationTitle": "Alarm PluriWave",
"alarmFireChannelName": "Alarm berbunyi",
"alarmFireChannelDescription": "Suara dan layar mendesak saat alarm musik harus berbunyi",
"alarmPreNoticeChannelName": "Pengingat alarm",
"alarmPreNoticeChannelDescription": "Notifikasi senyap sebelum alarm",
"openFolderChooserTitle": "Buka folder",
"openRecordingChooserTitle": "Buka rekaman",
"@preNoticeCountdown": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"eqDeviceEditTitle": "Edit perangkat",
"eqDeviceNameLabel": "Nama perangkat",
"eqDeviceNameHint": "Mis: Speaker ruang tamu",
"eqDeviceNameConfirm": "Simpan",
"eqDeviceConnected": "Terhubung",
"eqDeviceActiveOutput": "Audio keluar melalui perangkat ini",
"eqDeviceRemove": "Hapus perangkat",
"eqDeviceRemoved": "{device} dihapus",
"@eqDeviceRemoved": {
"placeholders": {
"device": {}
}
},
"localMusicSectionTitle": "Musik lokal (Android Auto)",
"localMusicSectionDescription": "Pilih folder di perangkat ini untuk menjelajahi dan memutar file audio di dalamnya dari mobil.",
"localMusicFolderNotConfigured": "Belum ada folder dipilih",
"localMusicFolderTitle": "Folder musik lokal",
"localMusicChoosePath": "Pilih folder",
"localMusicChangePath": "Ubah folder",
"localMusicFolderUpdated": "Folder musik lokal diperbarui",
"localMusicFolderSaveError": "Tidak dapat menyimpan folder: {error}",
"@localMusicFolderSaveError": {
"placeholders": {
"error": {}
}
},
"localMusicFolderGenericName": "Folder terpilih",
"addVacationRangeCta": "Tambahkan periode",
"alarmAdvancedSectionTitle": "Lanjutan",
"alarmDeleteConfirmMessage": "Tindakan ini tidak dapat dibatalkan.",
"alarmDeleteConfirmTitle": "Hapus alarm?",
"alarmHeroSkipAction": "Lewati",
"alarmInlineHourLabel": "Jam",
"alarmInlineMinuteLabel": "Menit",
"alarmVolumeRisingStatus": "Menaikkan volume",
"countriesAllTitle": "Semua negara",
"countriesScreenTitle": "Negara",
"countriesSearchHint": "Negara atau kode...",
"countriesYourLanguagesTitle": "Bahasa Anda",
"customStationsAddCta": "Tambahkan stasiun khusus",
"equalizerActiveOutputDefault": "Speaker perangkat ini",
"equalizerActiveOutputLabel": "Output aktif",
"equalizerBaseExplainer": "Ini adalah equalizer dasar: berlaku untuk semua stasiun yang belum punya pengaturan sendiri. EQ khusus suatu stasiun diatur dari layar pemutarannya sendiri dan mengesampingkan yang ini.",
"equalizerSaveAsPresetAction": "Simpan sebagai Preset",
"equalizerResetToFlatAction": "Setel ulang ke datar",
"equalizerSavePresetConfirm": "Simpan",
"equalizerSavePresetDialogTitle": "Simpan sebagai Preset",
"equalizerSavePresetEmptyNameError": "Masukkan nama untuk Preset.",
"equalizerSavePresetNameLabel": "Nama Preset",
"equalizerStationsWithOwnEqEmpty": "Belum ada stasiun yang punya EQ sendiri.",
"equalizerStationsWithOwnEqSubtitle": "Mengabaikan equalizer dasar ini",
"equalizerStationsWithOwnEqTitle": "Stasiun dengan EQ sendiri",
"favoriteGroupsChipLabel": "{groupName} · {count}",
"@favoriteGroupsChipLabel": {
"placeholders": {
"groupName": {},
"count": {
"type": "int"
}
}
},
"favoriteGroupsManage": "Kelola daftar",
"favoritesFilterAllLabel": "Semua",
"infoSectionTitle": "Info",
"nothingPlayingSubtitle": "Pilih stasiun dari Stasiun Anda atau cari salah satu untuk mulai.",
"nothingPlayingTitle": "Belum ada yang diputar",
"openFullPlayerTooltip": "Buka pemutar lengkap",
"playerQualityChangeAction": "Ubah",
"playerToolEqLabel": "EQ sendiri",
"radioCountriesError": "Negara tidak dapat dimuat.",
"recordingActionDelete": "Hapus",
"recordingActionRename": "Ganti nama",
"recordingActionShare": "Bagikan",
"recordingDeleteConfirmMessage": "Tindakan ini tidak dapat dibatalkan.",
"recordingDeleteConfirmTitle": "Hapus rekaman?",
"recordingRenameDialogTitle": "Ganti nama rekaman",
"recordingRenameEmptyError": "Masukkan nama",
"recordingRenameLabel": "Nama",
"recordingsLibraryEmptySubtitle": "Rekaman yang Anda simpan akan muncul di sini.",
"recordingsLibraryStorageFolderCaption": "Music/PluriWave · yang terlama dihapus saat mencapai batas",
"recordingsLibraryEmptyTitle": "Belum ada rekaman",
"recordingsLibrarySettingsTooltip": "Pengaturan rekaman",
"recordingsLibraryStorageCaption": "{usedMb} MB dari {totalMb} MB terpakai",
"@recordingsLibraryStorageCaption": {
"placeholders": {
"usedMb": {
"type": "int"
},
"totalMb": {
"type": "int"
}
}
},
"recordingsLibraryTitle": "Rekaman saya",
"searchClearFiltersAction": "{count, plural, =1{Hapus filter} other{Hapus {count} filter}}",
"searchResultsCount": "{count, plural, other{{count} hasil}}",
"seeAllAction": "Lihat semua",
"settingsGroupApplicationTitle": "APLIKASI",
"settingsGroupAudioTitle": "AUDIO",
"settingsGroupRecordingsTitle": "REKAMAN & MUSIK",
"settingsGroupStationsTitle": "STASIUN",
"stationOrderByPopularity": "Berdasarkan popularitas",
"vacationImpactContinuesLabel": "Tetap berbunyi: {times}",
"@vacationImpactContinuesLabel": {
"placeholders": {
"times": {}
}
},
"vacationImpactPausedLabel": "Dijeda: {times}",
"@vacationImpactPausedLabel": {
"placeholders": {
"times": {}
}
},
"vacationExplainerBanner": "Selama periode ini, alarm yang ditandai \"jeda saat liburan\" tidak akan berbunyi. Alarm yang ditandai \"selalu berbunyi\" tidak terpengaruh.",
"vacationNoActiveRangeHint": "Tidak ada periode liburan aktif saat ini.",
"vacationPastSectionTitle": "Periode lampau",
"vacationRangesCount": "{count} periode",
"@vacationRangesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"vacationSummaryActiveCountdown": "Sedang berlangsung · {days} hari lagi",
"@vacationSummaryActiveCountdown": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"vacationSummaryUpcomingCountdown": "Periode berikutnya dalam {days} hari",
"@vacationSummaryUpcomingCountdown": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"vacationUpcomingSectionTitle": "TERJADWAL",
"welcomeBody": "53.412 stasiun dari 238 negara. Simpan favorit Anda, bawa ke mobil, dan bangun bersamanya.",
"welcomeBullet1Subtitle": "Plus satu Preset per perangkat output",
"welcomeBullet1Title": "Equalizer per stasiun",
"welcomeBullet2Subtitle": "Favorit dan musik lokal Anda di mobil",
"welcomeBullet2Title": "Android Auto",
"welcomeBullet3Subtitle": "Dengan kenaikan volume bertahap dan mode liburan",
"welcomeBullet3Title": "Alarm musik",
"welcomeCtaLabel": "Mulai mendengarkan",
"welcomeHeadline": "Duniamu, secara langsung",
"yourStationsTitle": "Stasiun Anda",
"nowListeningLabel": "Sedang mendengarkan",
"popularNowTitle": "Populer sekarang",
"eqCustomActionEnableLabel": "Aktifkan equalizer",
"eqCustomActionDisableLabel": "Nonaktifkan equalizer",
"eqCustomActionPresetLabel": "Prasetel: {preset}",
"@eqCustomActionPresetLabel": {
"placeholders": {
"preset": {
"type": "String"
}
}
},
"alarmCardVacationPausedBadge": "Dijeda karena liburan",
"alarmCardSchedulingFailedMessage": "Alarm ini tidak dapat didaftarkan ke sistem, sehingga mungkin tidak berbunyi.",
"alarmCardPreNoticeFailedMessage": "Alarm ini sudah dijadwalkan, tetapi pengingat awalnya tidak dapat diatur.",
"alarmDiagnosticsExactAlarmsTitle": "Penjadwalan alarm presisi",
"alarmDiagnosticsExactAlarmsHint": "Membuat alarm berbunyi tepat pada menit yang kamu atur, meski ponsel dalam mode tidur.",
"alarmDiagnosticsNotificationsTitle": "Notifikasi",
"alarmDiagnosticsNotificationsHint": "Diperlukan untuk menampilkan alarm dan pemberitahuan dini.",
"alarmDiagnosticsFullScreenTitle": "Tampilan alarm layar penuh",
"alarmDiagnosticsFullScreenHint": "Membuat layar alarm muncul otomatis, meski ponsel terkunci.",
"alarmDiagnosticsBatteryTitle": "Optimisasi baterai",
"alarmDiagnosticsBatteryHint": "Mencegah sistem menutup PluriWave di latar belakang, sehingga alarm tetap bisa berbunyi.",
"alarmDiagnosticsNativeCountTitle": "Alarm yang terdaftar di Android",
"alarmDiagnosticsNativeCountValue": "Terdaftar saat ini: {count}",
"@alarmDiagnosticsNativeCountValue": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"alarmDiagnosticsNativeCountAttentionHint": "Kamu punya alarm yang aktif, tapi belum ada yang terdaftar di sistem. Buka lagi PluriWave, atau perbaiki dulu poin-poin di atas.",
"alarmDiagnosticsManufacturerLabel": "Produsen",
"alarmDiagnosticsSdkLabel": "Versi Android (SDK)",
"alarmDiagnosticsNeedsAttentionStatus": "Perlu perhatian",
"alarmDiagnosticsAutostartTitle": "Satu langkah manual lagi di ponsel ini",
"alarmDiagnosticsAutostartBody": "Ponsel {manufacturer} sering menutup aplikasi yang berjalan di latar belakang untuk menghemat baterai. Tidak ada pengaturan yang bisa diaktifkan PluriWave sendiri — kamu perlu mengaktifkan sendiri Autostart (kadang disebut \"Mulai otomatis\" atau \"Aktivitas latar belakang\") untuk PluriWave. Cari di Pengaturan, di bagian Aplikasi atau Baterai, atau di aplikasi Keamanan bawaan ponsel.",
"@alarmDiagnosticsAutostartBody": {
"placeholders": {
"manufacturer": {
"type": "String"
}
}
},
"alarmDiagnosticsFixAction": "Perbaiki",
"alarmDiagnosticsIntentUnavailable": "Tidak bisa membuka layar pengaturan itu di ponsel ini. Coba cari secara manual di Pengaturan.",
"alarmDiagnosticsUnavailableHint": "Kami belum bisa memeriksa pengaturan alarmmu.",
"autoEqDisableOption": "Nonaktifkan",
"funcionPremium": "Fitur Premium",
"limiteAlarmasAlcanzado": "Anda telah mencapai batas gratis 5 alarm.",
"desbloquearPremium": "Buka Premium",
"restaurarCompras": "Pulihkan pembelian",
"compraError": "Pembelian tidak dapat diselesaikan. Silakan coba lagi.",
"restauracionSinCompras": "Kami tidak menemukan pembelian sebelumnya di akun ini.",
"premiumActivo": "Premium aktif"
}