diff --git a/CHANGELOG.md b/CHANGELOG.md index d57f4443..03436abd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,6 @@ ## [3.2.1] - 2026-01-22 -> **Note:** Next release will use `year.month.day` format (e.g., 26.2.1) and is scheduled for early February. Developer is taking a short break! - ### Added - **Artist/Album + Singles Folder Structure**: Singles go inside artist folder (`Artist/Album/`, `Artist/Singles/`) diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 20e466b7..c2032016 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -2849,32 +2849,32 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { 'Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.'; @override - String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; + String get setupDownloadInFlac => 'Baixe faixas do Spotify em FLAC'; @override - String get setupStepStorage => 'Storage'; + String get setupStepStorage => 'Armazenamento'; @override - String get setupStepNotification => 'Notification'; + String get setupStepNotification => 'Notificação'; @override - String get setupStepFolder => 'Folder'; + String get setupStepFolder => 'Pasta'; @override String get setupStepSpotify => 'Spotify'; @override - String get setupStepPermission => 'Permission'; + String get setupStepPermission => 'Permissão'; @override - String get setupStorageGranted => 'Storage Permission Granted!'; + String get setupStorageGranted => 'Permissão de Armazenamento Concedida!'; @override - String get setupStorageRequired => 'Storage Permission Required'; + String get setupStorageRequired => 'Permissão de Armazenamento Necessária'; @override String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + 'O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.'; @override String get setupNotificationGranted => 'Permissão de Notificações Concedida!'; @@ -3038,171 +3038,172 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { 'Você tem certeza que deseja limpar todos os downloads?'; @override - String get dialogRemoveFromDevice => 'Remove from device?'; + String get dialogRemoveFromDevice => 'Remover do dispositivo?'; @override - String get dialogRemoveExtension => 'Remove Extension'; + String get dialogRemoveExtension => 'Remover Extensão'; @override String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + 'Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.'; @override - String get dialogUninstallExtension => 'Uninstall Extension?'; + String get dialogUninstallExtension => 'Desinstalar Extensão?'; @override String dialogUninstallExtensionMessage(String extensionName) { - return 'Are you sure you want to remove $extensionName?'; + return 'Tem certeza de que deseja remover $extensionName?'; } @override - String get dialogClearHistoryTitle => 'Clear History'; + String get dialogClearHistoryTitle => 'Limpar Histórico'; @override String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + 'Tem certeza de que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.'; @override - String get dialogDeleteSelectedTitle => 'Delete Selected'; + String get dialogDeleteSelectedTitle => 'Apagar Selecionados'; @override String dialogDeleteSelectedMessage(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'faixas', + one: 'faixa', ); - return 'Delete $count $_temp0 from history?\n\nThis will also delete the files from storage.'; + return 'Apagar $count $_temp0 do histórico?\n\nIsso também apagará os arquivos do armazenamento.'; } @override - String get dialogImportPlaylistTitle => 'Import Playlist'; + String get dialogImportPlaylistTitle => 'Importar Playlist'; @override String dialogImportPlaylistMessage(int count) { - return 'Found $count tracks in CSV. Add them to download queue?'; + return 'Encontradas $count faixas no CSV. Adicionar à fila de download?'; } @override String snackbarAddedToQueue(String trackName) { - return 'Added \"$trackName\" to queue'; + return '\"$trackName\" adicionada à fila'; } @override String snackbarAddedTracksToQueue(int count) { - return 'Added $count tracks to queue'; + return '$count faixas adicionadas à fila'; } @override String snackbarAlreadyDownloaded(String trackName) { - return '\"$trackName\" already downloaded'; + return '\"$trackName\" já foi baixada'; } @override - String get snackbarHistoryCleared => 'History cleared'; + String get snackbarHistoryCleared => 'Histórico limpo'; @override - String get snackbarCredentialsSaved => 'Credentials saved'; + String get snackbarCredentialsSaved => 'Credenciais salvas'; @override - String get snackbarCredentialsCleared => 'Credentials cleared'; + String get snackbarCredentialsCleared => 'Credenciais removidas'; @override String snackbarDeletedTracks(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'faixas apagadas', + one: 'faixa apagada', ); - return 'Deleted $count $_temp0'; + return '$count $_temp0'; } @override String snackbarCannotOpenFile(String error) { - return 'Cannot open file: $error'; + return 'Não foi possível abrir o arquivo: $error'; } @override - String get snackbarFillAllFields => 'Please fill all fields'; + String get snackbarFillAllFields => 'Por favor, preencha todos os campos'; @override - String get snackbarViewQueue => 'View Queue'; + String get snackbarViewQueue => 'Ver Fila'; @override String snackbarFailedToLoad(String error) { - return 'Failed to load: $error'; + return 'Falha ao carregar: $error'; } @override String snackbarUrlCopied(String platform) { - return '$platform URL copied to clipboard'; + return 'URL do $platform copiada para a área de transferência'; } @override - String get snackbarFileNotFound => 'File not found'; + String get snackbarFileNotFound => 'Arquivo não encontrado'; @override - String get snackbarSelectExtFile => 'Please select a .spotiflac-ext file'; + String get snackbarSelectExtFile => + 'Por favor, selecione um arquivo .spotiflac-ext'; @override - String get snackbarProviderPrioritySaved => 'Provider priority saved'; + String get snackbarProviderPrioritySaved => 'Prioridade de provedor salva'; @override String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + 'Prioridade de provedor de metadados salva'; @override String snackbarExtensionInstalled(String extensionName) { - return '$extensionName installed.'; + return '$extensionName instalada.'; } @override String snackbarExtensionUpdated(String extensionName) { - return '$extensionName updated.'; + return '$extensionName atualizada.'; } @override - String get snackbarFailedToInstall => 'Failed to install extension'; + String get snackbarFailedToInstall => 'Falha ao instalar extensão'; @override - String get snackbarFailedToUpdate => 'Failed to update extension'; + String get snackbarFailedToUpdate => 'Falha ao atualizar extensão'; @override - String get errorRateLimited => 'Rate Limited'; + String get errorRateLimited => 'Taxa Limitada'; @override String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + 'Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.'; @override String errorFailedToLoad(String item) { - return 'Failed to load $item'; + return 'Falha ao carregar $item'; } @override - String get errorNoTracksFound => 'No tracks found'; + String get errorNoTracksFound => 'Nenhuma faixa encontrada'; @override String errorMissingExtensionSource(String item) { - return 'Cannot load $item: missing extension source'; + return 'Não foi possível carregar $item: fonte de extensão ausente'; } @override - String get statusQueued => 'Queued'; + String get statusQueued => 'Na Fila'; @override - String get statusDownloading => 'Downloading'; + String get statusDownloading => 'Baixando'; @override - String get statusFinalizing => 'Finalizing'; + String get statusFinalizing => 'Finalizando'; @override - String get statusCompleted => 'Completed'; + String get statusCompleted => 'Concluído'; @override - String get statusFailed => 'Failed'; + String get statusFailed => 'Falhou'; @override String get statusSkipped => 'Ignorado'; @@ -3539,42 +3540,43 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get logNetworkErrorDescription => 'Problemas de conexão detectados'; @override - String get logNetworkErrorSuggestion => 'Check your internet connection'; + String get logNetworkErrorSuggestion => + 'Verifique a sua conexão com a internet'; @override String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + 'Algumas faixas não foram encontradas nos serviços de download'; @override String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + 'A faixa pode não estar disponível em qualidade lossless'; @override String logTotalErrors(int count) { - return 'Total errors: $count'; + return 'Total de erros: $count'; } @override String logAffected(String domains) { - return 'Affected: $domains'; + return 'Afetados: $domains'; } @override String logEntriesFiltered(int count) { - return 'Entries ($count filtered)'; + return 'Entradas ($count filtradas)'; } @override String logEntries(int count) { - return 'Entries ($count)'; + return 'Entradas ($count)'; } @override - String get credentialsTitle => 'Spotify Credentials'; + String get credentialsTitle => 'Credenciais do Spotify'; @override String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + 'Insira o seu Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.'; @override String get credentialsClientId => 'Client ID'; @@ -3739,136 +3741,138 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get trackDownloaded => 'Baixado'; @override - String get trackCopyLyrics => 'Copy lyrics'; + String get trackCopyLyrics => 'Copiar letras'; @override - String get trackLyricsNotAvailable => 'Lyrics not available for this track'; + String get trackLyricsNotAvailable => + 'Letras não disponíveis para esta faixa'; @override - String get trackLyricsTimeout => 'Request timed out. Try again later.'; + String get trackLyricsTimeout => + 'A solicitação expirou. Tente novamente mais tarde.'; @override - String get trackLyricsLoadFailed => 'Failed to load lyrics'; + String get trackLyricsLoadFailed => 'Falha ao carregar letras'; @override - String get trackCopiedToClipboard => 'Copied to clipboard'; + String get trackCopiedToClipboard => 'Copiado para a área de transferência'; @override - String get trackDeleteConfirmTitle => 'Remove from device?'; + String get trackDeleteConfirmTitle => 'Remover do dispositivo?'; @override String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + 'Isso apagará permanentemente o arquivo baixado e o removerá do seu histórico.'; @override String trackCannotOpen(String message) { - return 'Cannot open: $message'; + return 'Não foi possível abrir: $message'; } @override - String get dateToday => 'Today'; + String get dateToday => 'Hoje'; @override - String get dateYesterday => 'Yesterday'; + String get dateYesterday => 'Ontem'; @override String dateDaysAgo(int count) { - return '$count days ago'; + return 'Há $count dias'; } @override String dateWeeksAgo(int count) { - return '$count weeks ago'; + return 'Há $count semanas'; } @override String dateMonthsAgo(int count) { - return '$count months ago'; + return 'Há $count meses'; } @override - String get concurrentSequential => 'Sequential'; + String get concurrentSequential => 'Sequencial'; @override - String get concurrentParallel2 => '2 Parallel'; + String get concurrentParallel2 => '2 Paralelos'; @override - String get concurrentParallel3 => '3 Parallel'; + String get concurrentParallel3 => '3 Paralelos'; @override - String get tapToSeeError => 'Tap to see error details'; + String get tapToSeeError => 'Toque para ver detalhes do erro'; @override - String get storeFilterAll => 'All'; + String get storeFilterAll => 'Todos'; @override - String get storeFilterMetadata => 'Metadata'; + String get storeFilterMetadata => 'Metadados'; @override String get storeFilterDownload => 'Download'; @override - String get storeFilterUtility => 'Utility'; + String get storeFilterUtility => 'Utilitário'; @override - String get storeFilterLyrics => 'Lyrics'; + String get storeFilterLyrics => 'Letras'; @override - String get storeFilterIntegration => 'Integration'; + String get storeFilterIntegration => 'Integração'; @override - String get storeClearFilters => 'Clear filters'; + String get storeClearFilters => 'Limpar filtros'; @override - String get storeNoResults => 'No extensions found'; + String get storeNoResults => 'Nenhuma extensão encontrada'; @override - String get extensionProviderPriority => 'Provider Priority'; + String get extensionProviderPriority => 'Prioridade de Provedor'; @override - String get extensionInstallButton => 'Install Extension'; + String get extensionInstallButton => 'Instalar Extensão'; @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + String get extensionDefaultProvider => 'Padrão (Deezer/Spotify)'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => 'Usar pesquisa integrada'; @override - String get extensionAuthor => 'Author'; + String get extensionAuthor => 'Autor'; @override String get extensionId => 'ID'; @override - String get extensionError => 'Error'; + String get extensionError => 'Erro'; @override - String get extensionCapabilities => 'Capabilities'; + String get extensionCapabilities => 'Capacidades'; @override - String get extensionMetadataProvider => 'Metadata Provider'; + String get extensionMetadataProvider => 'Provedor de Metadados'; @override - String get extensionDownloadProvider => 'Download Provider'; + String get extensionDownloadProvider => 'Provedor de Download'; @override - String get extensionLyricsProvider => 'Lyrics Provider'; + String get extensionLyricsProvider => 'Provedor de Letras'; @override - String get extensionUrlHandler => 'URL Handler'; + String get extensionUrlHandler => 'Manipulador de URL'; @override - String get extensionQualityOptions => 'Quality Options'; + String get extensionQualityOptions => 'Opções de Qualidade'; @override - String get extensionPostProcessingHooks => 'Post-Processing Hooks'; + String get extensionPostProcessingHooks => 'Ganchos de Pós-Processamento'; @override - String get extensionPermissions => 'Permissions'; + String get extensionPermissions => 'Permissões'; @override - String get extensionSettings => 'Settings'; + String get extensionSettings => 'Configurações'; @override String get extensionRemoveButton => 'Remover Extensão'; @@ -4019,25 +4023,27 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get folderNone => 'Nenhum'; @override - String get folderNoneSubtitle => 'Save all files directly to download folder'; + String get folderNoneSubtitle => + 'Salvar todos os arquivos diretamente na pasta de download'; @override - String get folderArtist => 'Artist'; + String get folderArtist => 'Artista'; @override - String get folderArtistSubtitle => 'Artist Name/filename'; + String get folderArtistSubtitle => 'Nome do Artista/nome do arquivo'; @override - String get folderAlbum => 'Album'; + String get folderAlbum => 'Álbum'; @override - String get folderAlbumSubtitle => 'Album Name/filename'; + String get folderAlbumSubtitle => 'Nome do Álbum/nome do arquivo'; @override - String get folderArtistAlbum => 'Artist/Album'; + String get folderArtistAlbum => 'Artista/Álbum'; @override - String get folderArtistAlbumSubtitle => 'Artist Name/Album Name/filename'; + String get folderArtistAlbumSubtitle => + 'Nome do Artista/Nome do Álbum/nome do arquivo'; @override String get serviceTidal => 'Tidal'; @@ -4055,134 +4061,135 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get serviceSpotify => 'Spotify'; @override - String get appearanceAmoledDark => 'AMOLED Dark'; + String get appearanceAmoledDark => 'AMOLED Escuro'; @override - String get appearanceAmoledDarkSubtitle => 'Pure black background'; + String get appearanceAmoledDarkSubtitle => 'Fundo preto puro'; @override - String get appearanceChooseAccentColor => 'Choose Accent Color'; + String get appearanceChooseAccentColor => 'Escolher Cor de Destaque'; @override - String get appearanceChooseTheme => 'Theme Mode'; + String get appearanceChooseTheme => 'Modo de Tema'; @override - String get queueTitle => 'Download Queue'; + String get queueTitle => 'Fila de Download'; @override - String get queueClearAll => 'Clear All'; + String get queueClearAll => 'Limpar Tudo'; @override String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + 'Tem certeza de que deseja limpar todos os downloads?'; @override - String get queueEmpty => 'No downloads in queue'; + String get queueEmpty => 'Nenhum download na fila'; @override - String get queueEmptySubtitle => 'Add tracks from the home screen'; + String get queueEmptySubtitle => 'Adicione faixas a partir da tela inicial'; @override - String get queueClearCompleted => 'Clear completed'; + String get queueClearCompleted => 'Limpar concluídos'; @override - String get queueDownloadFailed => 'Download Failed'; + String get queueDownloadFailed => 'Download Falhou'; @override - String get queueTrackLabel => 'Track:'; + String get queueTrackLabel => 'Faixa:'; @override - String get queueArtistLabel => 'Artist:'; + String get queueArtistLabel => 'Artista:'; @override - String get queueErrorLabel => 'Error:'; + String get queueErrorLabel => 'Erro:'; @override - String get queueUnknownError => 'Unknown error'; + String get queueUnknownError => 'Erro desconhecido'; @override - String get albumFolderArtistAlbum => 'Artist / Album'; + String get albumFolderArtistAlbum => 'Artista / Álbum'; @override - String get albumFolderArtistAlbumSubtitle => 'Albums/Artist Name/Album Name/'; + String get albumFolderArtistAlbumSubtitle => + 'Álbuns/Nome do Artista/Nome do Álbum/'; @override - String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; + String get albumFolderArtistYearAlbum => 'Artista / [Ano] Álbum'; @override String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + 'Álbuns/Nome do Artista/[2005] Nome do Álbum/'; @override - String get albumFolderAlbumOnly => 'Album Only'; + String get albumFolderAlbumOnly => 'Apenas Álbum'; @override - String get albumFolderAlbumOnlySubtitle => 'Albums/Album Name/'; + String get albumFolderAlbumOnlySubtitle => 'Álbuns/Nome do Álbum/'; @override - String get albumFolderYearAlbum => '[Year] Album'; + String get albumFolderYearAlbum => '[Ano] Álbum'; @override - String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Album Name/'; + String get albumFolderYearAlbumSubtitle => 'Álbuns/[2005] Nome do Álbum/'; @override - String get downloadedAlbumDeleteSelected => 'Delete Selected'; + String get downloadedAlbumDeleteSelected => 'Apagar Selecionados'; @override String downloadedAlbumDeleteMessage(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'faixas', + one: 'faixa', ); - return 'Delete $count $_temp0 from this album?\n\nThis will also delete the files from storage.'; + return 'Apagar $count $_temp0 deste álbum?\n\nIsso também apagará os arquivos do armazenamento.'; } @override - String get downloadedAlbumTracksHeader => 'Tracks'; + String get downloadedAlbumTracksHeader => 'Faixas'; @override String downloadedAlbumDownloadedCount(int count) { - return '$count downloaded'; + return '$count baixadas'; } @override String downloadedAlbumSelectedCount(int count) { - return '$count selected'; + return '$count selecionadas'; } @override - String get downloadedAlbumAllSelected => 'All tracks selected'; + String get downloadedAlbumAllSelected => 'Todas as faixas selecionadas'; @override - String get downloadedAlbumTapToSelect => 'Tap tracks to select'; + String get downloadedAlbumTapToSelect => 'Toque nas faixas para selecionar'; @override String downloadedAlbumDeleteCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'faixas', + one: 'faixa', ); - return 'Delete $count $_temp0'; + return 'Apagar $count $_temp0'; } @override - String get downloadedAlbumSelectToDelete => 'Select tracks to delete'; + String get downloadedAlbumSelectToDelete => 'Selecione faixas para apagar'; @override - String get utilityFunctions => 'Utility Functions'; + String get utilityFunctions => 'Funções Utilitárias'; @override - String get recentTypeArtist => 'Artist'; + String get recentTypeArtist => 'Artista'; @override - String get recentTypeAlbum => 'Album'; + String get recentTypeAlbum => 'Álbum'; @override - String get recentTypeSong => 'Song'; + String get recentTypeSong => 'Música'; @override String get recentTypePlaylist => 'Playlist'; @@ -4194,6 +4201,6 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { @override String errorGeneric(String message) { - return 'Error: $message'; + return 'Erro: $message'; } } diff --git a/lib/l10n/app_localizations_tr.dart b/lib/l10n/app_localizations_tr.dart index c4a9ebfb..4048b530 100644 --- a/lib/l10n/app_localizations_tr.dart +++ b/lib/l10n/app_localizations_tr.dart @@ -13,67 +13,68 @@ class AppLocalizationsTr extends AppLocalizations { @override String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; @override - String get navHome => 'Home'; + String get navHome => 'Ara'; @override - String get navHistory => 'History'; + String get navHistory => 'Geçmiş'; @override - String get navSettings => 'Settings'; + String get navSettings => 'Ayarlar'; @override - String get navStore => 'Store'; + String get navStore => 'Dükkan'; @override - String get homeTitle => 'Home'; + String get homeTitle => 'Ara'; @override - String get homeSearchHint => 'Paste Spotify URL or search...'; + String get homeSearchHint => 'Spotify URL\'i yapıştır veya ara...'; @override String homeSearchHintExtension(String extensionName) { - return 'Search with $extensionName...'; + return '$extensionName ile arat...'; } @override - String get homeSubtitle => 'Paste a Spotify link or search by name'; + String get homeSubtitle => 'Spotify linki yapıştır veya isimle arat'; @override - String get homeSupports => 'Supports: Track, Album, Playlist, Artist URLs'; + String get homeSupports => + 'Desteklenen linkler: Şarkı, Albüm, Çalma Listesi, Sanatçı linkleri'; @override - String get homeRecent => 'Recent'; + String get homeRecent => 'En son'; @override - String get historyTitle => 'History'; + String get historyTitle => 'Geçmiş'; @override String historyDownloading(int count) { - return 'Downloading ($count)'; + return '($count) tane indiriliyor'; } @override - String get historyDownloaded => 'Downloaded'; + String get historyDownloaded => 'İndirildi'; @override - String get historyFilterAll => 'All'; + String get historyFilterAll => 'Tümü'; @override - String get historyFilterAlbums => 'Albums'; + String get historyFilterAlbums => 'Albümler'; @override - String get historyFilterSingles => 'Singles'; + String get historyFilterSingles => 'Single\'lar'; @override String historyTracksCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: '$count tracks', - one: '1 track', + other: '$count şarkı', + one: '1 şarkı', ); return '$_temp0'; } @@ -83,96 +84,98 @@ class AppLocalizationsTr extends AppLocalizations { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: '$count albums', - one: '1 album', + other: '$count albüm', + one: '1 albüm', ); return '$_temp0'; } @override - String get historyNoDownloads => 'No download history'; + String get historyNoDownloads => 'İndirme geçmişi yok'; @override - String get historyNoDownloadsSubtitle => 'Downloaded tracks will appear here'; + String get historyNoDownloadsSubtitle => + 'İndirilen şarkılar burada gözükecek'; @override - String get historyNoAlbums => 'No album downloads'; + String get historyNoAlbums => 'İndirilen albüm yok'; @override String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + 'Albümleri burada görmek için bir albümden birden fazla şarkı indir'; @override - String get historyNoSingles => 'No single downloads'; + String get historyNoSingles => 'Single indirilmemiş'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single şarkılar burada gözükecek'; @override - String get historySearchHint => 'Search history...'; + String get historySearchHint => 'Arama geçmişi...'; @override - String get settingsTitle => 'Settings'; + String get settingsTitle => 'Ayarlar'; @override - String get settingsDownload => 'Download'; + String get settingsDownload => 'İndirme'; @override - String get settingsAppearance => 'Appearance'; + String get settingsAppearance => 'Görünüm'; @override - String get settingsOptions => 'Options'; + String get settingsOptions => 'Seçenekler'; @override - String get settingsExtensions => 'Extensions'; + String get settingsExtensions => 'Eklentiler'; @override - String get settingsAbout => 'About'; + String get settingsAbout => 'Hakkında'; @override - String get downloadTitle => 'Download'; + String get downloadTitle => 'İndirme'; @override - String get downloadLocation => 'Download Location'; + String get downloadLocation => 'İndirme Konumu'; @override - String get downloadLocationSubtitle => 'Choose where to save files'; + String get downloadLocationSubtitle => + 'Dosyaları nereye kaydedeceğinizi seçin'; @override - String get downloadLocationDefault => 'Default location'; + String get downloadLocationDefault => 'Varsayılan dizin'; @override - String get downloadDefaultService => 'Default Service'; + String get downloadDefaultService => 'Varsayılan Hizmet'; @override - String get downloadDefaultServiceSubtitle => 'Service used for downloads'; + String get downloadDefaultServiceSubtitle => + 'İndirmeler için kullanılan hizmet'; @override - String get downloadDefaultQuality => 'Default Quality'; + String get downloadDefaultQuality => 'Varsayılan Kalite'; @override - String get downloadAskQuality => 'Ask Quality Before Download'; + String get downloadAskQuality => 'İndirmeden Önce Kaliteyi Sor'; @override String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + 'Her indirmeden önce kalite seçim ekranını göster'; @override - String get downloadFilenameFormat => 'Filename Format'; + String get downloadFilenameFormat => 'Dosya adı formatı'; @override - String get downloadFolderOrganization => 'Folder Organization'; + String get downloadFolderOrganization => 'Dosya Organizasyonu'; @override - String get downloadSeparateSingles => 'Separate Singles'; + String get downloadSeparateSingles => 'Single\'ları Ayır'; @override String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + 'Single şarkıları ayrı dosyaya koy'; @override - String get qualityBest => 'Best Available'; + String get qualityBest => 'Mevcut en iyi'; @override String get qualityFlac => 'FLAC'; @@ -184,149 +187,150 @@ class AppLocalizationsTr extends AppLocalizations { String get quality128 => '128 kbps'; @override - String get appearanceTitle => 'Appearance'; + String get appearanceTitle => 'Görünüm'; @override - String get appearanceTheme => 'Theme'; + String get appearanceTheme => 'Tema'; @override - String get appearanceThemeSystem => 'System'; + String get appearanceThemeSystem => 'Sistem'; @override - String get appearanceThemeLight => 'Light'; + String get appearanceThemeLight => 'Açık'; @override - String get appearanceThemeDark => 'Dark'; + String get appearanceThemeDark => 'Koyu'; @override - String get appearanceDynamicColor => 'Dynamic Color'; + String get appearanceDynamicColor => 'Dinamik Renk'; @override - String get appearanceDynamicColorSubtitle => 'Use colors from your wallpaper'; + String get appearanceDynamicColorSubtitle => + 'Duvar kağıdının renklerini kullan'; @override - String get appearanceAccentColor => 'Accent Color'; + String get appearanceAccentColor => 'Vurgu Rengi'; @override - String get appearanceHistoryView => 'History View'; + String get appearanceHistoryView => 'Geçmiş Düzeni'; @override - String get appearanceHistoryViewList => 'List'; + String get appearanceHistoryViewList => 'Liste'; @override - String get appearanceHistoryViewGrid => 'Grid'; + String get appearanceHistoryViewGrid => 'Izgara'; @override - String get optionsTitle => 'Options'; + String get optionsTitle => 'Seçenekler'; @override - String get optionsSearchSource => 'Search Source'; + String get optionsSearchSource => 'Arama Kaynağı'; @override - String get optionsPrimaryProvider => 'Primary Provider'; + String get optionsPrimaryProvider => 'Ana Kaynek'; @override String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + 'Şarkı ismi aratılırken kullanılan kaynak.'; @override String optionsUsingExtension(String extensionName) { - return 'Using extension: $extensionName'; + return 'Kullanılan eklenti: $extensionName'; } @override String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + 'Dahili kaynaklara dönmek için Deezer veya Spotify\'a tıkla'; @override - String get optionsAutoFallback => 'Auto Fallback'; + String get optionsAutoFallback => 'Diğerlerini dene'; @override String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + 'İndirme başarısız olursa diğer hizmetleri dene'; @override - String get optionsUseExtensionProviders => 'Use Extension Providers'; + String get optionsUseExtensionProviders => 'Eklenti sağlayıcılarını kullan'; @override - String get optionsUseExtensionProvidersOn => 'Extensions will be tried first'; + String get optionsUseExtensionProvidersOn => 'Eklentiler ilk denenecek'; @override - String get optionsUseExtensionProvidersOff => 'Using built-in providers only'; + String get optionsUseExtensionProvidersOff => + 'Sadece dahili sağlayıcıları kullan'; @override - String get optionsEmbedLyrics => 'Embed Lyrics'; + String get optionsEmbedLyrics => 'Şarkı Sözlerini Göm'; @override String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + 'Senkronize şarkı sözlerini FLAC dosyalarına göm'; @override - String get optionsMaxQualityCover => 'Max Quality Cover'; + String get optionsMaxQualityCover => 'En Yüksek Kapak Kalitesi'; @override String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + 'En yüksek kalitedeki albüm kapaklarını indir'; @override - String get optionsConcurrentDownloads => 'Concurrent Downloads'; + String get optionsConcurrentDownloads => 'Eş Zamanlı İndirmeler'; @override - String get optionsConcurrentSequential => 'Sequential (1 at a time)'; + String get optionsConcurrentSequential => 'Sıralı (Birer birer)'; @override String optionsConcurrentParallel(int count) { - return '$count parallel downloads'; + return 'Aynı anda $count indirme'; } @override String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + 'Aynı anda birden fazla indirme sınırlamaya takılabilir'; @override - String get optionsExtensionStore => 'Extension Store'; + String get optionsExtensionStore => 'Eklenti Dükkanı'; @override - String get optionsExtensionStoreSubtitle => 'Show Store tab in navigation'; + String get optionsExtensionStoreSubtitle => 'Dükkan sekmesini altta göster'; @override - String get optionsCheckUpdates => 'Check for Updates'; + String get optionsCheckUpdates => 'Güncelleştirmeleri Denetle'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Yeni sürüm çıktığında bildir'; @override - String get optionsUpdateChannel => 'Update Channel'; + String get optionsUpdateChannel => 'Güncelleme Kanalı'; @override - String get optionsUpdateChannelStable => 'Stable releases only'; + String get optionsUpdateChannelStable => 'Sadece stabil sürümler'; @override - String get optionsUpdateChannelPreview => 'Get preview releases'; + String get optionsUpdateChannelPreview => 'Önizleme sürümlerini al'; @override String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + 'Önizleme sürümleri hatalar veya tamamlanmamış özellikler içerebilir'; @override - String get optionsClearHistory => 'Clear Download History'; + String get optionsClearHistory => 'İndirme Geçmişini Temizle'; @override String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + 'İndirilen bütün şarkıları geçmişten temizle'; @override - String get optionsDetailedLogging => 'Detailed Logging'; + String get optionsDetailedLogging => 'Detaylı Günlükleme'; @override - String get optionsDetailedLoggingOn => 'Detailed logs are being recorded'; + String get optionsDetailedLoggingOn => 'Detaylı günlük kayıt ediliyor'; @override - String get optionsDetailedLoggingOff => 'Enable for bug reports'; + String get optionsDetailedLoggingOff => 'Hata bildirmek için aç'; @override - String get optionsSpotifyCredentials => 'Spotify Credentials'; + String get optionsSpotifyCredentials => 'Spotify Kimlik Bilgileri'; @override String optionsSpotifyCredentialsConfigured(String clientId) { @@ -334,827 +338,830 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; + String get optionsSpotifyCredentialsRequired => + 'Zorunlu - değiştirmek için tıkla'; @override String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + 'Spotify\'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com\'dan alabilirsin'; @override - String get extensionsTitle => 'Extensions'; + String get extensionsTitle => 'Eklentiler'; @override - String get extensionsInstalled => 'Installed Extensions'; + String get extensionsInstalled => 'Kurulu Eklentiler'; @override - String get extensionsNone => 'No extensions installed'; + String get extensionsNone => 'Hiçbir eklenti kurulmamış'; @override - String get extensionsNoneSubtitle => 'Install extensions from the Store tab'; + String get extensionsNoneSubtitle => 'Dükkan sekmesinden eklenti indir'; @override - String get extensionsEnabled => 'Enabled'; + String get extensionsEnabled => 'Etkin'; @override - String get extensionsDisabled => 'Disabled'; + String get extensionsDisabled => 'Devre Dışı'; @override String extensionsVersion(String version) { - return 'Version $version'; + return 'Versiyon $version'; } @override String extensionsAuthor(String author) { - return 'by $author'; + return '$author tarafından'; } @override - String get extensionsUninstall => 'Uninstall'; + String get extensionsUninstall => 'Kaldır'; @override - String get extensionsSetAsSearch => 'Set as Search Provider'; + String get extensionsSetAsSearch => 'Arama Sağlayıcı olarak Ayarla'; @override - String get storeTitle => 'Extension Store'; + String get storeTitle => 'Eklenti Dükkanı'; @override - String get storeSearch => 'Search extensions...'; + String get storeSearch => 'Eklenti ara...'; @override - String get storeInstall => 'Install'; + String get storeInstall => 'Kur'; @override - String get storeInstalled => 'Installed'; + String get storeInstalled => 'Kuruldu'; @override - String get storeUpdate => 'Update'; + String get storeUpdate => 'Güncelle'; @override - String get aboutTitle => 'About'; + String get aboutTitle => 'Hakkında'; @override - String get aboutContributors => 'Contributors'; + String get aboutContributors => 'Katkıda Bulunanlar'; @override - String get aboutMobileDeveloper => 'Mobile version developer'; + String get aboutMobileDeveloper => 'Mobil versiyon geliştiricisi'; @override - String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; + String get aboutOriginalCreator => 'Orijinal SpotiFLAC\'ın kurucusu'; @override String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + 'Uygulama logomuzu yaratmış yetenekli sanatçımız!'; @override - String get aboutTranslators => 'Translators'; + String get aboutTranslators => 'Çevirmenler'; @override - String get aboutSpecialThanks => 'Special Thanks'; + String get aboutSpecialThanks => 'Özel teşekkür'; @override - String get aboutLinks => 'Links'; + String get aboutLinks => 'Linkler'; @override - String get aboutMobileSource => 'Mobile source code'; + String get aboutMobileSource => 'Mobil kaynak kodu'; @override - String get aboutPCSource => 'PC source code'; + String get aboutPCSource => 'PC kaynak kodu'; @override - String get aboutReportIssue => 'Report an issue'; + String get aboutReportIssue => 'Sorun bildir'; @override - String get aboutReportIssueSubtitle => 'Report any problems you encounter'; + String get aboutReportIssueSubtitle => + 'Karşılaştığın herhangi bir problemi bildir'; @override - String get aboutFeatureRequest => 'Feature request'; + String get aboutFeatureRequest => 'Özellik isteği'; @override - String get aboutFeatureRequestSubtitle => 'Suggest new features for the app'; + String get aboutFeatureRequestSubtitle => + 'Uygulama için yeni özellikler isteyin'; @override - String get aboutTelegramChannel => 'Telegram Channel'; + String get aboutTelegramChannel => 'Telegram Kanalı'; @override - String get aboutTelegramChannelSubtitle => 'Announcements and updates'; + String get aboutTelegramChannelSubtitle => 'Duyurular ve güncellemeler'; @override - String get aboutTelegramChat => 'Telegram Community'; + String get aboutTelegramChat => 'Telegram Grubu'; @override - String get aboutTelegramChatSubtitle => 'Chat with other users'; + String get aboutTelegramChatSubtitle => 'Diğer kullanıcılarla sohbet et'; @override - String get aboutSocial => 'Social'; + String get aboutSocial => 'Sosyal ağlar'; @override - String get aboutSupport => 'Support'; + String get aboutSupport => 'Destek'; @override - String get aboutBuyMeCoffee => 'Buy me a coffee'; + String get aboutBuyMeCoffee => 'Bana bir kahve ısmarla'; @override - String get aboutBuyMeCoffeeSubtitle => 'Support development on Ko-fi'; + String get aboutBuyMeCoffeeSubtitle => 'Ko-fi üzerinden uygulamayı destekle'; @override - String get aboutApp => 'App'; + String get aboutApp => 'Uygulama'; @override - String get aboutVersion => 'Version'; + String get aboutVersion => 'Versiyon'; @override String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + 'QQDL ve HiFi API\'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!'; @override String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + 'Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + 'Amazom Music indirmeleri için harika bir API. Ücretsiz yaptığın için teşekkürler!'; @override String get aboutDabMusic => 'DAB Music'; @override String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + 'En iyi Qobuz streaming API\'ı. Yüksek kalite indirmeler bunun sayesinde!'; @override String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; @override - String get albumTitle => 'Album'; + String get albumTitle => 'Albüm'; @override String albumTracks(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: '$count tracks', - one: '1 track', + other: '$count şarkı', + one: '1 şarkı', ); return '$_temp0'; } @override - String get albumDownloadAll => 'Download All'; + String get albumDownloadAll => 'Tümünü İndir'; @override - String get albumDownloadRemaining => 'Download Remaining'; + String get albumDownloadRemaining => 'Kalanını İndir'; @override - String get playlistTitle => 'Playlist'; + String get playlistTitle => 'Çalma Listesi'; @override - String get artistTitle => 'Artist'; + String get artistTitle => 'Sanatçı'; @override - String get artistAlbums => 'Albums'; + String get artistAlbums => 'Albümler'; @override - String get artistSingles => 'Singles & EPs'; + String get artistSingles => 'Single\'lar ve EP\'ler'; @override - String get artistCompilations => 'Compilations'; + String get artistCompilations => 'Derlemeler'; @override String artistReleases(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: '$count releases', - one: '1 release', + other: '$count yayın', + one: '1 yayın', ); return '$_temp0'; } @override - String get artistPopular => 'Popular'; + String get artistPopular => 'Popüler'; @override String artistMonthlyListeners(String count) { - return '$count monthly listeners'; + return 'Aylık $count dinleyici'; } @override - String get trackMetadataTitle => 'Track Info'; + String get trackMetadataTitle => 'Şarkı Bilgisi'; @override - String get trackMetadataArtist => 'Artist'; + String get trackMetadataArtist => 'Sanatçı'; @override - String get trackMetadataAlbum => 'Album'; + String get trackMetadataAlbum => 'Albüm'; @override - String get trackMetadataDuration => 'Duration'; + String get trackMetadataDuration => 'Süre'; @override - String get trackMetadataQuality => 'Quality'; + String get trackMetadataQuality => 'Kalite'; @override - String get trackMetadataPath => 'File Path'; + String get trackMetadataPath => 'Dosya Yolu'; @override - String get trackMetadataDownloadedAt => 'Downloaded'; + String get trackMetadataDownloadedAt => 'İndirme tarihi'; @override - String get trackMetadataService => 'Service'; + String get trackMetadataService => 'Hizmet'; @override - String get trackMetadataPlay => 'Play'; + String get trackMetadataPlay => 'Oynat'; @override - String get trackMetadataShare => 'Share'; + String get trackMetadataShare => 'Paylaş'; @override - String get trackMetadataDelete => 'Delete'; + String get trackMetadataDelete => 'Sil'; @override - String get trackMetadataRedownload => 'Re-download'; + String get trackMetadataRedownload => 'Yeniden İndir'; @override - String get trackMetadataOpenFolder => 'Open Folder'; + String get trackMetadataOpenFolder => 'Klasörü Aç'; @override - String get setupTitle => 'Welcome to SpotiFLAC'; + String get setupTitle => 'SpotiFLAC\'e Hoşgeldiniz'; @override - String get setupSubtitle => 'Let\'s get you started'; + String get setupSubtitle => 'Hadi başlayalım'; @override - String get setupStoragePermission => 'Storage Permission'; + String get setupStoragePermission => 'Depolama İzni'; @override String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + 'İndirilen dosyaları kaydetmek için gerekli'; @override - String get setupStoragePermissionGranted => 'Permission granted'; + String get setupStoragePermissionGranted => 'İzin verildi'; @override - String get setupStoragePermissionDenied => 'Permission denied'; + String get setupStoragePermissionDenied => 'İzin reddedildi'; @override - String get setupGrantPermission => 'Grant Permission'; + String get setupGrantPermission => 'İzin Ver'; @override - String get setupDownloadLocation => 'Download Location'; + String get setupDownloadLocation => 'İndirme Konumu'; @override - String get setupChooseFolder => 'Choose Folder'; + String get setupChooseFolder => 'Klasör Seç'; @override - String get setupContinue => 'Continue'; + String get setupContinue => 'Devam'; @override - String get setupSkip => 'Skip for now'; + String get setupSkip => 'Şimdilik atla'; @override - String get setupStorageAccessRequired => 'Storage Access Required'; + String get setupStorageAccessRequired => 'Depolama Erişimi Gerekli'; @override String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + 'SpotiFLAC\'ın şarkıları seçili klasörünüze kaydetmek için \"Bütün dosyalara eriş\" iznine ihtiyacı var.'; @override String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + 'Android 11 ve sonrasında şarkıların seçili klasörünüze kaydedilebilmesi için \"Bütün dosyalara eriş\" iznine ihtiyaç var.'; @override - String get setupOpenSettings => 'Open Settings'; + String get setupOpenSettings => 'Ayarları Aç'; @override String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + 'İzin reddedildi. Devam etmek için lütfen bütün izinleri verin.'; @override String setupPermissionRequired(String permissionType) { - return '$permissionType Permission Required'; + return '$permissionType İzni Zorunlu'; } @override String setupPermissionRequiredMessage(String permissionType) { - return '$permissionType permission is required for the best experience. You can change this later in Settings.'; + return 'En iyi deneyim için $permissionType izni zorunludur. Bunu ayarlardan daha sonra değiştirebilirsiniz.'; } @override - String get setupSelectDownloadFolder => 'Select Download Folder'; + String get setupSelectDownloadFolder => 'İndirilecek Klasörü Seç'; @override - String get setupUseDefaultFolder => 'Use Default Folder?'; + String get setupUseDefaultFolder => 'Varsayılan Klasörü Kullan?'; @override String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + 'Klasör seçilmedi. Varsayılan \"Music\" klasörünü kullanmak ister misiniz?'; @override - String get setupUseDefault => 'Use Default'; + String get setupUseDefault => 'Varsayılanı Kullan'; @override - String get setupDownloadLocationTitle => 'Download Location'; + String get setupDownloadLocationTitle => 'İndirme Konumu'; @override String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + 'iOS\'ta indirilenler uygulamanın \"Documents\" dosyasına kaydedilir. Onlara Dosyalar uygulamasından erişebilirsiniz.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + 'Tavsiye edilen - Dosyalar uygulamasından erişilebilir'; @override - String get setupChooseFromFiles => 'Choose from Files'; + String get setupChooseFromFiles => 'Dosyalar\'dan Seç'; @override - String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; + String get setupChooseFromFilesSubtitle => 'iCloud veya başka konum seç'; @override String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + 'iOS\'un sınırlaması: Boş klasörler seçilemiyor. İçinde en az bir dosya bulunan bir klasör seçin.'; @override - String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; + String get setupDownloadInFlac => 'Spotify şarkılarını FLAC olarak indirin'; @override - String get setupStepStorage => 'Storage'; + String get setupStepStorage => 'Depolama'; @override - String get setupStepNotification => 'Notification'; + String get setupStepNotification => 'Bildirim'; @override - String get setupStepFolder => 'Folder'; + String get setupStepFolder => 'Klasör'; @override String get setupStepSpotify => 'Spotify'; @override - String get setupStepPermission => 'Permission'; + String get setupStepPermission => 'İzin'; @override - String get setupStorageGranted => 'Storage Permission Granted!'; + String get setupStorageGranted => 'Depolama İzni Verildi!'; @override - String get setupStorageRequired => 'Storage Permission Required'; + String get setupStorageRequired => 'Depolama İzni Gerekli'; @override String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + 'SpotiFLAC\'ın şarkılarınızı kaydetmek için depolama iznine ihtiyacı var.'; @override - String get setupNotificationGranted => 'Notification Permission Granted!'; + String get setupNotificationGranted => 'Bildirim İzni Verildi!'; @override - String get setupNotificationEnable => 'Enable Notifications'; + String get setupNotificationEnable => 'Bildirimleri Etkinleştir'; @override String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + 'İndirmeler bittiğinde veya bakılması gereken bir şey olduğunda haberdar olun.'; @override - String get setupFolderSelected => 'Download Folder Selected!'; + String get setupFolderSelected => 'İndirilecek Klasör Seçildi!'; @override - String get setupFolderChoose => 'Choose Download Folder'; + String get setupFolderChoose => 'İndirilecek Klasörü Seç'; @override String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + 'İndirdiğin şarkıların kaydedileceği klasörü seç.'; @override - String get setupChangeFolder => 'Change Folder'; + String get setupChangeFolder => 'Klasörü Değiştir'; @override - String get setupSelectFolder => 'Select Folder'; + String get setupSelectFolder => 'Klasör Seç'; @override - String get setupSpotifyApiOptional => 'Spotify API (Optional)'; + String get setupSpotifyApiOptional => 'Spotify API (İsteğe Bağlı)'; @override String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + 'Daha iyi arama sonuçları ve Spotify\'a özel içeriklere erişmek için Spotify API kimlik bilgilerini gir.'; @override - String get setupUseSpotifyApi => 'Use Spotify API'; + String get setupUseSpotifyApi => 'Spotify API\'ı kullan'; @override - String get setupEnterCredentialsBelow => 'Enter your credentials below'; + String get setupEnterCredentialsBelow => 'Kimlik bilgilerini aşağıya gir'; @override - String get setupUsingDeezer => 'Using Deezer (no account needed)'; + String get setupUsingDeezer => 'Deezer kullanılıyor (hesap gerekli değil)'; @override - String get setupEnterClientId => 'Enter Spotify Client ID'; + String get setupEnterClientId => 'Spotify Client ID gir'; @override - String get setupEnterClientSecret => 'Enter Spotify Client Secret'; + String get setupEnterClientSecret => 'Spotify Client Secret gir'; @override String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + 'Spotify Developer Dashboard\'tan API kimlik bilgilerini ücretsiz alın.'; @override - String get setupEnableNotifications => 'Enable Notifications'; + String get setupEnableNotifications => 'Bildirimleri Etkinleştir'; @override - String get setupProceedToNextStep => 'You can now proceed to the next step.'; + String get setupProceedToNextStep => 'Bir sonraki adıma geçebilirsin.'; @override String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + 'İndirme ilerlemelerinin bildirimlerini alacaksın.'; @override String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + 'İndirmelerin durumu hakkında bildirim al. Bunu açmak uygulama arka plandayken indirmelerinizi takip etmenizi sağlar.'; @override - String get setupSkipForNow => 'Skip for now'; + String get setupSkipForNow => 'Şimdilik atla'; @override - String get setupBack => 'Back'; + String get setupBack => 'Geri'; @override - String get setupNext => 'Next'; + String get setupNext => 'Sıradaki'; @override - String get setupGetStarted => 'Get Started'; + String get setupGetStarted => 'Başla'; @override - String get setupSkipAndStart => 'Skip & Start'; + String get setupSkipAndStart => 'Kurulumu atla'; @override String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + 'Lütfen bir sonraki ekranda \"Bütün dosyalara eriş\" iznini sağlayın.'; @override String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + 'Kimlik bilgilerini developer.spotify.com\'dan alın'; @override - String get dialogCancel => 'Cancel'; + String get dialogCancel => 'İptal'; @override - String get dialogOk => 'OK'; + String get dialogOk => 'Tamam'; @override - String get dialogSave => 'Save'; + String get dialogSave => 'Kaydet'; @override - String get dialogDelete => 'Delete'; + String get dialogDelete => 'Sil'; @override - String get dialogRetry => 'Retry'; + String get dialogRetry => 'Yeniden dene'; @override - String get dialogClose => 'Close'; + String get dialogClose => 'Kapat'; @override - String get dialogYes => 'Yes'; + String get dialogYes => 'Evet'; @override - String get dialogNo => 'No'; + String get dialogNo => 'Hayır'; @override - String get dialogClear => 'Clear'; + String get dialogClear => 'Temizle'; @override - String get dialogConfirm => 'Confirm'; + String get dialogConfirm => 'Onayla'; @override - String get dialogDone => 'Done'; + String get dialogDone => 'Tamamlandı'; @override - String get dialogImport => 'Import'; + String get dialogImport => 'İçe aktar'; @override - String get dialogDiscard => 'Discard'; + String get dialogDiscard => 'Vazgeç'; @override - String get dialogRemove => 'Remove'; + String get dialogRemove => 'Kaldır'; @override - String get dialogUninstall => 'Uninstall'; + String get dialogUninstall => 'Kaldır'; @override - String get dialogDiscardChanges => 'Discard Changes?'; + String get dialogDiscardChanges => 'Değişiklikleri İptal Et?'; @override String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + 'Kaydedilmeyen değişiklikler mevcut. Bu değişiklikleri iptal etmek istiyor musunuz?'; @override - String get dialogDownloadFailed => 'Download Failed'; + String get dialogDownloadFailed => 'İndirme Başarısız'; @override - String get dialogTrackLabel => 'Track:'; + String get dialogTrackLabel => 'Şarkı:'; @override - String get dialogArtistLabel => 'Artist:'; + String get dialogArtistLabel => 'Sanatçı:'; @override - String get dialogErrorLabel => 'Error:'; + String get dialogErrorLabel => 'Hata:'; @override - String get dialogClearAll => 'Clear All'; + String get dialogClearAll => 'Tümünü Temizle'; @override String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + 'Bütün indirmeleri temizlemek istediğinize emin misiniz?'; @override - String get dialogRemoveFromDevice => 'Remove from device?'; + String get dialogRemoveFromDevice => 'Cihazdan kaldır?'; @override - String get dialogRemoveExtension => 'Remove Extension'; + String get dialogRemoveExtension => 'Eklentiyi Kaldır'; @override String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + 'Bu eklentiyi kaldırmak istediğine emin misin? Bu işlem geri alınamaz.'; @override - String get dialogUninstallExtension => 'Uninstall Extension?'; + String get dialogUninstallExtension => 'Eklentiyi Kaldır?'; @override String dialogUninstallExtensionMessage(String extensionName) { - return 'Are you sure you want to remove $extensionName?'; + return '$extensionName eklentisini kaldırmak istediğine emin misin?'; } @override - String get dialogClearHistoryTitle => 'Clear History'; + String get dialogClearHistoryTitle => 'Geçmişi Temizle'; @override String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + 'Tüm indirme geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.'; @override - String get dialogDeleteSelectedTitle => 'Delete Selected'; + String get dialogDeleteSelectedTitle => 'Seçileni Sil'; @override String dialogDeleteSelectedMessage(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'şarkıyı', + one: 'şarkıyı', ); - return 'Delete $count $_temp0 from history?\n\nThis will also delete the files from storage.'; + return '$count $_temp0 geçmişten silmeye emin misiniz?\n\nBu işlem seçilenleri cihazınızdan da silecektir.'; } @override - String get dialogImportPlaylistTitle => 'Import Playlist'; + String get dialogImportPlaylistTitle => 'Çalma listesini içe aktar'; @override String dialogImportPlaylistMessage(int count) { - return 'Found $count tracks in CSV. Add them to download queue?'; + return 'CSV\'de $count şarkı bulundu. İndirme kuyruğuna ekle?'; } @override String csvImportTracks(int count) { - return '$count tracks from CSV'; + return 'CSV\'den $count şarkı'; } @override String snackbarAddedToQueue(String trackName) { - return 'Added \"$trackName\" to queue'; + return '\"$trackName\" kuyruğa eklendi'; } @override String snackbarAddedTracksToQueue(int count) { - return 'Added $count tracks to queue'; + return '$count şarkı kuyruğa eklendi'; } @override String snackbarAlreadyDownloaded(String trackName) { - return '\"$trackName\" already downloaded'; + return '\"$trackName\" zaten indirilmiş'; } @override - String get snackbarHistoryCleared => 'History cleared'; + String get snackbarHistoryCleared => 'Geçmiş temizlendi'; @override - String get snackbarCredentialsSaved => 'Credentials saved'; + String get snackbarCredentialsSaved => 'Kimlik bilgileri kaydedildi'; @override - String get snackbarCredentialsCleared => 'Credentials cleared'; + String get snackbarCredentialsCleared => 'Kimlik bilgileri temizlendi'; @override String snackbarDeletedTracks(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'şarkı', + one: 'şarkı', ); - return 'Deleted $count $_temp0'; + return '$count $_temp0 silindi'; } @override String snackbarCannotOpenFile(String error) { - return 'Cannot open file: $error'; + return 'Dosya açılamadı: $error'; } @override - String get snackbarFillAllFields => 'Please fill all fields'; + String get snackbarFillAllFields => 'Lütfen tüm alanları doldurun'; @override - String get snackbarViewQueue => 'View Queue'; + String get snackbarViewQueue => 'Kuyruğu Görüntüle'; @override String snackbarFailedToLoad(String error) { - return 'Failed to load: $error'; + return 'Yüklenemedi: $error'; } @override String snackbarUrlCopied(String platform) { - return '$platform URL copied to clipboard'; + return '$platform Bağlantı panoya kopyalandı'; } @override - String get snackbarFileNotFound => 'File not found'; + String get snackbarFileNotFound => 'Dosya bulunamadı'; @override - String get snackbarSelectExtFile => 'Please select a .spotiflac-ext file'; + String get snackbarSelectExtFile => 'Lütfen .spotiflac-ext dosyasını seçin'; @override - String get snackbarProviderPrioritySaved => 'Provider priority saved'; + String get snackbarProviderPrioritySaved => 'Sağlayıcı önceliği kaydedildi'; @override String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + 'Metadata sağlayıcı önceliği kaydedildi'; @override String snackbarExtensionInstalled(String extensionName) { - return '$extensionName installed.'; + return '$extensionName yüklendi.'; } @override String snackbarExtensionUpdated(String extensionName) { - return '$extensionName updated.'; + return '$extensionName güncellendi.'; } @override - String get snackbarFailedToInstall => 'Failed to install extension'; + String get snackbarFailedToInstall => 'Eklenti yüklenirken hata oluştu'; @override - String get snackbarFailedToUpdate => 'Failed to update extension'; + String get snackbarFailedToUpdate => 'Eklenti güncellenirken hata oluştu'; @override - String get errorRateLimited => 'Rate Limited'; + String get errorRateLimited => 'Aşırı istek gönderildi'; @override String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + 'Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.'; @override String errorFailedToLoad(String item) { - return 'Failed to load $item'; + return '$item yüklenirken hata oluştu'; } @override - String get errorNoTracksFound => 'No tracks found'; + String get errorNoTracksFound => 'Parça bulunamadı'; @override String errorMissingExtensionSource(String item) { - return 'Cannot load $item: missing extension source'; + return '$item yüklenemedi: Eksik eklenti kaynağı'; } @override - String get statusQueued => 'Queued'; + String get statusQueued => 'Sıraya alındı'; @override - String get statusDownloading => 'Downloading'; + String get statusDownloading => 'İndiriliyor'; @override - String get statusFinalizing => 'Finalizing'; + String get statusFinalizing => 'Tamamlanıyor'; @override - String get statusCompleted => 'Completed'; + String get statusCompleted => 'Tamamlandı'; @override - String get statusFailed => 'Failed'; + String get statusFailed => 'Başarısız'; @override - String get statusSkipped => 'Skipped'; + String get statusSkipped => 'Atlandı'; @override - String get statusPaused => 'Paused'; + String get statusPaused => 'Durduruldu'; @override - String get actionPause => 'Pause'; + String get actionPause => 'Duraklat'; @override - String get actionResume => 'Resume'; + String get actionResume => 'Devam et'; @override - String get actionCancel => 'Cancel'; + String get actionCancel => 'Vazgeç'; @override - String get actionStop => 'Stop'; + String get actionStop => 'Durdur'; @override - String get actionSelect => 'Select'; + String get actionSelect => 'Seç'; @override - String get actionSelectAll => 'Select All'; + String get actionSelectAll => 'Tümünü Seç'; @override - String get actionDeselect => 'Deselect'; + String get actionDeselect => 'Seçimi kaldır'; @override - String get actionPaste => 'Paste'; + String get actionPaste => 'Yapıştır'; @override - String get actionImportCsv => 'Import CSV'; + String get actionImportCsv => 'CSV İçe Aktar'; @override - String get actionRemoveCredentials => 'Remove Credentials'; + String get actionRemoveCredentials => 'Özellikleri kaldır'; @override - String get actionSaveCredentials => 'Save Credentials'; + String get actionSaveCredentials => 'Özellikleri kaydet'; @override String selectionSelected(int count) { - return '$count selected'; + return '$count seçildi'; } @override - String get selectionAllSelected => 'All tracks selected'; + String get selectionAllSelected => 'Tüm parçalar seçildi'; @override - String get selectionTapToSelect => 'Tap tracks to select'; + String get selectionTapToSelect => 'Seçmek için parçalara dokunun'; @override String selectionDeleteTracks(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: 'tracks', - one: 'track', + other: 'şarkıyı', + one: 'şarkıyı', ); - return 'Delete $count $_temp0'; + return '$count $_temp0 sil'; } @override - String get selectionSelectToDelete => 'Select tracks to delete'; + String get selectionSelectToDelete => 'Silinecek parçaları seçin'; @override String progressFetchingMetadata(int current, int total) { - return 'Fetching metadata... $current/$total'; + return 'Meta verileri alınıyor... $current/$total'; } @override - String get progressReadingCsv => 'Reading CSV...'; + String get progressReadingCsv => 'CSV okunuyor...'; @override - String get searchSongs => 'Songs'; + String get searchSongs => 'Şarkılar'; @override - String get searchArtists => 'Artists'; + String get searchArtists => 'Sanatçılar'; @override - String get searchAlbums => 'Albums'; + String get searchAlbums => 'Albümler'; @override - String get searchPlaylists => 'Playlists'; + String get searchPlaylists => 'Çalma Listeleri'; @override - String get tooltipPlay => 'Play'; + String get tooltipPlay => 'Oynat'; @override - String get tooltipCancel => 'Cancel'; + String get tooltipCancel => 'Vazgeç'; @override - String get tooltipStop => 'Stop'; + String get tooltipStop => 'Durdur'; @override - String get tooltipRetry => 'Retry'; + String get tooltipRetry => 'Yeniden dene'; @override - String get tooltipRemove => 'Remove'; + String get tooltipRemove => 'Kaldır'; @override - String get tooltipClear => 'Clear'; + String get tooltipClear => 'Temizle'; @override - String get tooltipPaste => 'Paste'; + String get tooltipPaste => 'Yapıştır'; @override - String get filenameFormat => 'Filename Format'; + String get filenameFormat => 'Dosya adı formatı'; @override String filenameFormatPreview(String preview) { - return 'Preview: $preview'; + return 'Önizleme: $preview'; } @override - String get filenameAvailablePlaceholders => 'Available placeholders:'; + String get filenameAvailablePlaceholders => 'Kullanılabilir yer tutucular:'; @override String filenameHint(Object artist, Object title) { @@ -1162,171 +1169,173 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get folderOrganization => 'Folder Organization'; + String get folderOrganization => 'Klasör Organizasyonu'; @override - String get folderOrganizationNone => 'No organization'; + String get folderOrganizationNone => 'Organizasyon yok'; @override - String get folderOrganizationByArtist => 'By Artist'; + String get folderOrganizationByArtist => 'Sanatçıya Göre'; @override - String get folderOrganizationByAlbum => 'By Album'; + String get folderOrganizationByAlbum => 'Albüme Göre'; @override - String get folderOrganizationByArtistAlbum => 'Artist/Album'; + String get folderOrganizationByArtistAlbum => 'Sanatçı/Albüm'; @override String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + 'İndirilenleri klasörlerle organize et'; @override - String get folderOrganizationNoneSubtitle => 'All files in download folder'; + String get folderOrganizationNoneSubtitle => + 'Her şey indirilen dosyasına kaydedilecek'; @override String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + 'Her sanatçı için ayrı klasör'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Her albüm için ayrı klasör'; @override String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + 'Sanatçı klasörlerinin içinde Albüm klasörleri'; @override - String get updateAvailable => 'Update Available'; + String get updateAvailable => 'Güncelleme Mevcut'; @override String updateNewVersion(String version) { - return 'Version $version is available'; + return '$version sürümü mevcut'; } @override - String get updateDownload => 'Download'; + String get updateDownload => 'İndir'; @override - String get updateLater => 'Later'; + String get updateLater => 'Daha Sonra'; @override - String get updateChangelog => 'Changelog'; + String get updateChangelog => 'Değişiklikler'; @override - String get updateStartingDownload => 'Starting download...'; + String get updateStartingDownload => 'İndirme başlıyor...'; @override - String get updateDownloadFailed => 'Download failed'; + String get updateDownloadFailed => 'İndirme başarısız'; @override - String get updateFailedMessage => 'Failed to download update'; + String get updateFailedMessage => 'Güncelleme indirilemedi'; @override - String get updateNewVersionReady => 'A new version is ready'; + String get updateNewVersionReady => 'Yeni bir sürüm hazır'; @override - String get updateCurrent => 'Current'; + String get updateCurrent => 'Şimdiki'; @override - String get updateNew => 'New'; + String get updateNew => 'Yeni'; @override - String get updateDownloading => 'Downloading...'; + String get updateDownloading => 'İndiriliyor...'; @override - String get updateWhatsNew => 'What\'s New'; + String get updateWhatsNew => 'Yenilikler'; @override - String get updateDownloadInstall => 'Download & Install'; + String get updateDownloadInstall => 'İndir & Yükle'; @override - String get updateDontRemind => 'Don\'t remind'; + String get updateDontRemind => 'Bir daha sorma'; @override - String get providerPriority => 'Provider Priority'; + String get providerPriority => 'İndirme hizmetleri öncelik sırası'; @override - String get providerPrioritySubtitle => 'Drag to reorder download providers'; + String get providerPrioritySubtitle => + 'İndirme hizmetlerini sıralamak için kaydır'; @override - String get providerPriorityTitle => 'Provider Priority'; + String get providerPriorityTitle => 'İndirme hizmetleri öncelik sırası'; @override String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + 'İndirme hizmetlerini sıralamak için kaydır. Uygulama şarkı indirirken hizmetleri yukarıdan aşağıya doğru deneyecektir.'; @override String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + 'Eğer bir şarkı ilk hizmette mevcut değilse uygulama otomatik olarak bir sonrakini deneyecektir.'; @override - String get providerBuiltIn => 'Built-in'; + String get providerBuiltIn => 'Dahili'; @override - String get providerExtension => 'Extension'; + String get providerExtension => 'Eklenti'; @override - String get metadataProviderPriority => 'Metadata Provider Priority'; + String get metadataProviderPriority => 'Metadata Sağlayıcı Önceliği'; @override String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + 'Şarkı metadata\'sı alınırken kullanılan sıra'; @override - String get metadataProviderPriorityTitle => 'Metadata Priority'; + String get metadataProviderPriorityTitle => 'Metadata Önceliği'; @override String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + 'Metadata sağlayıcılarını sıralamak için kaydır. Uygulama şarkı ararken ve metadata alırken sağlayıcıları yukarıdan aşağıya doğru deneyecektir.'; @override String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + 'Deezer\'ın istek sınırı yok ve birincil olarak önerilir. Spotify çok fazla istekten sonra sınırlama yapabilir.'; @override - String get metadataNoRateLimits => 'No rate limits'; + String get metadataNoRateLimits => 'İstek sınırı yok'; @override - String get metadataMayRateLimit => 'May rate limit'; + String get metadataMayRateLimit => 'Sınırlama yapabilir'; @override - String get logTitle => 'Logs'; + String get logTitle => 'Kayıtlar'; @override - String get logCopy => 'Copy Logs'; + String get logCopy => 'Kayıtları Kopyala'; @override - String get logClear => 'Clear Logs'; + String get logClear => 'Kayıtları temizle'; @override - String get logShare => 'Share Logs'; + String get logShare => 'Kayıtları Paylaş'; @override - String get logEmpty => 'No logs yet'; + String get logEmpty => 'Henüz kayıt yok'; @override - String get logCopied => 'Logs copied to clipboard'; + String get logCopied => 'Kayıtlar panoya kopyalandı'; @override - String get logSearchHint => 'Search logs...'; + String get logSearchHint => 'Kayıtları Ara...'; @override - String get logFilterLevel => 'Level'; + String get logFilterLevel => 'Seviye'; @override - String get logFilterSection => 'Filter'; + String get logFilterSection => 'Filtre'; @override - String get logShareLogs => 'Share logs'; + String get logShareLogs => 'Kayıtları paylaş'; @override - String get logClearLogs => 'Clear logs'; + String get logClearLogs => 'Kayıtları temizle'; @override - String get logClearLogsTitle => 'Clear Logs'; + String get logClearLogsTitle => 'Kayıtları temizle'; @override - String get logClearLogsMessage => 'Are you sure you want to clear all logs?'; + String get logClearLogsMessage => + 'Tüm kayıtları temizlemek istediğinize emin misiniz?'; @override String get logIspBlocking => 'ISP BLOCKING DETECTED'; @@ -1341,45 +1350,46 @@ class AppLocalizationsTr extends AppLocalizations { String get logTrackNotFound => 'TRACK NOT FOUND'; @override - String get logFilterBySeverity => 'Filter logs by severity'; + String get logFilterBySeverity => 'Kayıtları önem derecesine göre filtrele'; @override - String get logNoLogsYet => 'No logs yet'; + String get logNoLogsYet => 'Henüz kayıt yok'; @override - String get logNoLogsYetSubtitle => 'Logs will appear here as you use the app'; + String get logNoLogsYetSubtitle => + 'Uygulamayı kullandıkça kayıtlar burada görünecek'; @override - String get logIssueSummary => 'Issue Summary'; + String get logIssueSummary => 'Sorun Özeti'; @override String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + 'İnternet sağlayıcınız indirme hizmetlerine erişimi engelliyor olabilir'; @override String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + 'VPN kullanmayı veya DNS\'i 1.1.1.1 ya da 8.8.8.8 olarak değiştirmeyi deneyin'; @override - String get logRateLimitedDescription => 'Too many requests to the service'; + String get logRateLimitedDescription => 'Hizmete çok fazla istek gönderildi'; @override String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + 'Tekrar denemeden önce birkaç dakika bekleyin'; @override - String get logNetworkErrorDescription => 'Connection issues detected'; + String get logNetworkErrorDescription => 'Bağlantı sorunları tespit edildi'; @override - String get logNetworkErrorSuggestion => 'Check your internet connection'; + String get logNetworkErrorSuggestion => 'İnternet bağlantınızı kontrol edin'; @override String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + 'Bazı şarkılar indirme hizmetlerinde bulunamadı'; @override String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + 'Şarkı kayıpsız kalitede mevcut olmayabilir'; @override String logTotalErrors(int count) { @@ -1402,131 +1412,134 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get credentialsTitle => 'Spotify Credentials'; + String get credentialsTitle => 'Spotify Kimlik Bilgileri'; @override String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + 'Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.'; @override String get credentialsClientId => 'Client ID'; @override - String get credentialsClientIdHint => 'Paste Client ID'; + String get credentialsClientIdHint => 'Client ID yapıştır'; @override String get credentialsClientSecret => 'Client Secret'; @override - String get credentialsClientSecretHint => 'Paste Client Secret'; + String get credentialsClientSecretHint => 'Client Secret yapıştır'; @override - String get channelStable => 'Stable'; + String get channelStable => 'Kararlı'; @override - String get channelPreview => 'Preview'; + String get channelPreview => 'Önizleme'; @override - String get sectionSearchSource => 'Search Source'; + String get sectionSearchSource => 'Arama Kaynağı'; @override - String get sectionDownload => 'Download'; + String get sectionDownload => 'İndirme'; @override - String get sectionPerformance => 'Performance'; + String get sectionPerformance => 'Performans'; @override - String get sectionApp => 'App'; + String get sectionApp => 'Uygulama'; @override - String get sectionData => 'Data'; + String get sectionData => 'Veri'; @override - String get sectionDebug => 'Debug'; + String get sectionDebug => 'Hata Ayıklama'; @override - String get sectionService => 'Service'; + String get sectionService => 'Hizmet'; @override - String get sectionAudioQuality => 'Audio Quality'; + String get sectionAudioQuality => 'Ses Kalitesi'; @override - String get sectionFileSettings => 'File Settings'; + String get sectionFileSettings => 'Dosya Ayarları'; @override - String get sectionLyrics => 'Lyrics'; + String get sectionLyrics => 'Şarkı Sözleri'; @override - String get lyricsMode => 'Lyrics Mode'; + String get lyricsMode => 'Şarkı Sözü Modu'; @override String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + 'Şarkı sözlerinin indirmelerle nasıl kaydedileceğini seçin'; @override - String get lyricsModeEmbed => 'Embed in file'; + String get lyricsModeEmbed => 'Dosyaya göm'; @override - String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata'; + String get lyricsModeEmbedSubtitle => + 'Şarkı sözleri FLAC metadata içinde saklanır'; @override - String get lyricsModeExternal => 'External .lrc file'; + String get lyricsModeExternal => 'Harici .lrc dosyası'; @override String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + 'Samsung Music gibi oynatıcılar için ayrı .lrc dosyası'; @override - String get lyricsModeBoth => 'Both'; + String get lyricsModeBoth => 'Her ikisi'; @override - String get lyricsModeBothSubtitle => 'Embed and save .lrc file'; + String get lyricsModeBothSubtitle => 'Göm ve .lrc dosyası kaydet'; @override - String get sectionColor => 'Color'; + String get sectionColor => 'Renk'; @override - String get sectionTheme => 'Theme'; + String get sectionTheme => 'Tema'; @override - String get sectionLayout => 'Layout'; + String get sectionLayout => 'Düzen'; @override - String get sectionLanguage => 'Language'; + String get sectionLanguage => 'Dil'; @override - String get appearanceLanguage => 'App Language'; + String get appearanceLanguage => 'Uygulama Dili'; @override - String get appearanceLanguageSubtitle => 'Choose your preferred language'; + String get appearanceLanguageSubtitle => 'Tercih ettiğiniz dili seçin'; @override - String get settingsAppearanceSubtitle => 'Theme, colors, display'; + String get settingsAppearanceSubtitle => 'Tema, renkler, görünüm'; @override - String get settingsDownloadSubtitle => 'Service, quality, filename format'; + String get settingsDownloadSubtitle => 'Hizmet, kalite, dosya adı formatı'; @override - String get settingsOptionsSubtitle => 'Fallback, lyrics, cover art, updates'; + String get settingsOptionsSubtitle => + 'Yedek, şarkı sözleri, kapak resmi, güncellemeler'; @override - String get settingsExtensionsSubtitle => 'Manage download providers'; + String get settingsExtensionsSubtitle => 'İndirme sağlayıcılarını yönet'; @override - String get settingsLogsSubtitle => 'View app logs for debugging'; + String get settingsLogsSubtitle => + 'Hata ayıklama için uygulama kayıtlarını görüntüle'; @override - String get loadingSharedLink => 'Loading shared link...'; + String get loadingSharedLink => 'Paylaşılan bağlantı yükleniyor...'; @override - String get pressBackAgainToExit => 'Press back again to exit'; + String get pressBackAgainToExit => 'Çıkmak için tekrar geri basın'; @override - String get tracksHeader => 'Tracks'; + String get tracksHeader => 'Şarkılar'; @override String downloadAllCount(int count) { - return 'Download All ($count)'; + return 'Tümünü İndir ($count)'; } @override @@ -1534,108 +1547,109 @@ class AppLocalizationsTr extends AppLocalizations { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, - other: '$count tracks', - one: '1 track', + other: '$count şarkı', + one: '1 şarkı', ); return '$_temp0'; } @override - String get trackCopyFilePath => 'Copy file path'; + String get trackCopyFilePath => 'Dosya yolunu kopyala'; @override - String get trackRemoveFromDevice => 'Remove from device'; + String get trackRemoveFromDevice => 'Cihazdan kaldır'; @override - String get trackLoadLyrics => 'Load Lyrics'; + String get trackLoadLyrics => 'Şarkı Sözlerini Yükle'; @override String get trackMetadata => 'Metadata'; @override - String get trackFileInfo => 'File Info'; + String get trackFileInfo => 'Dosya Bilgisi'; @override - String get trackLyrics => 'Lyrics'; + String get trackLyrics => 'Şarkı Sözleri'; @override - String get trackFileNotFound => 'File not found'; + String get trackFileNotFound => 'Dosya bulunamadı'; @override - String get trackOpenInDeezer => 'Open in Deezer'; + String get trackOpenInDeezer => 'Deezer\'da aç'; @override - String get trackOpenInSpotify => 'Open in Spotify'; + String get trackOpenInSpotify => 'Spotify\'da aç'; @override - String get trackTrackName => 'Track name'; + String get trackTrackName => 'Şarkı adı'; @override - String get trackArtist => 'Artist'; + String get trackArtist => 'Sanatçı'; @override - String get trackAlbumArtist => 'Album artist'; + String get trackAlbumArtist => 'Albüm sanatçısı'; @override - String get trackAlbum => 'Album'; + String get trackAlbum => 'Albüm'; @override - String get trackTrackNumber => 'Track number'; + String get trackTrackNumber => 'Şarkı numarası'; @override - String get trackDiscNumber => 'Disc number'; + String get trackDiscNumber => 'Disk numarası'; @override - String get trackDuration => 'Duration'; + String get trackDuration => 'Süre'; @override - String get trackAudioQuality => 'Audio quality'; + String get trackAudioQuality => 'Ses kalitesi'; @override - String get trackReleaseDate => 'Release date'; + String get trackReleaseDate => 'Yayın tarihi'; @override - String get trackGenre => 'Genre'; + String get trackGenre => 'Tür'; @override - String get trackLabel => 'Label'; + String get trackLabel => 'Plak şirketi'; @override - String get trackCopyright => 'Copyright'; + String get trackCopyright => 'Telif hakkı'; @override - String get trackDownloaded => 'Downloaded'; + String get trackDownloaded => 'İndirildi'; @override - String get trackCopyLyrics => 'Copy lyrics'; + String get trackCopyLyrics => 'Şarkı sözlerini kopyala'; @override - String get trackLyricsNotAvailable => 'Lyrics not available for this track'; + String get trackLyricsNotAvailable => 'Bu şarkı için şarkı sözü mevcut değil'; @override - String get trackLyricsTimeout => 'Request timed out. Try again later.'; + String get trackLyricsTimeout => + 'İstek zaman aşımına uğradı. Daha sonra tekrar deneyin.'; @override - String get trackLyricsLoadFailed => 'Failed to load lyrics'; + String get trackLyricsLoadFailed => 'Şarkı sözleri yüklenemedi'; @override - String get trackEmbedLyrics => 'Embed Lyrics'; + String get trackEmbedLyrics => 'Şarkı Sözlerini Göm'; @override - String get trackLyricsEmbedded => 'Lyrics embedded successfully'; + String get trackLyricsEmbedded => 'Şarkı sözleri başarıyla gömüldü'; @override - String get trackInstrumental => 'Instrumental track'; + String get trackInstrumental => 'Enstrümantal şarkı'; @override - String get trackCopiedToClipboard => 'Copied to clipboard'; + String get trackCopiedToClipboard => 'Panoya kopyalandı'; @override - String get trackDeleteConfirmTitle => 'Remove from device?'; + String get trackDeleteConfirmTitle => 'Cihazdan kaldırılsın mı?'; @override String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + 'Bu işlem indirilen dosyayı kalıcı olarak silecek ve geçmişten kaldıracaktır.'; @override String trackCannotOpen(String message) { @@ -1643,199 +1657,200 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get dateToday => 'Today'; + String get dateToday => 'Bugün'; @override - String get dateYesterday => 'Yesterday'; + String get dateYesterday => 'Dün'; @override String dateDaysAgo(int count) { - return '$count days ago'; + return '$count gün önce'; } @override String dateWeeksAgo(int count) { - return '$count weeks ago'; + return '$count hafta önce'; } @override String dateMonthsAgo(int count) { - return '$count months ago'; + return '$count ay önce'; } @override - String get concurrentSequential => 'Sequential'; + String get concurrentSequential => 'Sıralı'; @override - String get concurrentParallel2 => '2 Parallel'; + String get concurrentParallel2 => '2 Paralel'; @override - String get concurrentParallel3 => '3 Parallel'; + String get concurrentParallel3 => '3 Paralel'; @override - String get tapToSeeError => 'Tap to see error details'; + String get tapToSeeError => 'Hata detaylarını görmek için dokun'; @override - String get storeFilterAll => 'All'; + String get storeFilterAll => 'Tümü'; @override String get storeFilterMetadata => 'Metadata'; @override - String get storeFilterDownload => 'Download'; + String get storeFilterDownload => 'İndirme'; @override - String get storeFilterUtility => 'Utility'; + String get storeFilterUtility => 'Araç'; @override - String get storeFilterLyrics => 'Lyrics'; + String get storeFilterLyrics => 'Şarkı Sözleri'; @override - String get storeFilterIntegration => 'Integration'; + String get storeFilterIntegration => 'Entegrasyon'; @override - String get storeClearFilters => 'Clear filters'; + String get storeClearFilters => 'Filtreleri temizle'; @override - String get storeNoResults => 'No extensions found'; + String get storeNoResults => 'Eklenti bulunamadı'; @override - String get extensionProviderPriority => 'Provider Priority'; + String get extensionProviderPriority => 'Sağlayıcı Önceliği'; @override - String get extensionInstallButton => 'Install Extension'; + String get extensionInstallButton => 'Eklenti Yükle'; @override - String get extensionDefaultProvider => 'Default (Deezer/Spotify)'; + String get extensionDefaultProvider => 'Varsayılan (Deezer/Spotify)'; @override - String get extensionDefaultProviderSubtitle => 'Use built-in search'; + String get extensionDefaultProviderSubtitle => 'Dahili aramayı kullan'; @override - String get extensionAuthor => 'Author'; + String get extensionAuthor => 'Yazar'; @override String get extensionId => 'ID'; @override - String get extensionError => 'Error'; + String get extensionError => 'Hata'; @override - String get extensionCapabilities => 'Capabilities'; + String get extensionCapabilities => 'Yetenekler'; @override - String get extensionMetadataProvider => 'Metadata Provider'; + String get extensionMetadataProvider => 'Metadata Sağlayıcı'; @override - String get extensionDownloadProvider => 'Download Provider'; + String get extensionDownloadProvider => 'İndirme Sağlayıcı'; @override - String get extensionLyricsProvider => 'Lyrics Provider'; + String get extensionLyricsProvider => 'Şarkı Sözü Sağlayıcı'; @override - String get extensionUrlHandler => 'URL Handler'; + String get extensionUrlHandler => 'URL İşleyici'; @override - String get extensionQualityOptions => 'Quality Options'; + String get extensionQualityOptions => 'Kalite Seçenekleri'; @override - String get extensionPostProcessingHooks => 'Post-Processing Hooks'; + String get extensionPostProcessingHooks => 'İşlem Sonrası Kancalar'; @override - String get extensionPermissions => 'Permissions'; + String get extensionPermissions => 'İzinler'; @override - String get extensionSettings => 'Settings'; + String get extensionSettings => 'Ayarlar'; @override - String get extensionRemoveButton => 'Remove Extension'; + String get extensionRemoveButton => 'Eklentiyi Kaldır'; @override - String get extensionUpdated => 'Updated'; + String get extensionUpdated => 'Güncellendi'; @override - String get extensionMinAppVersion => 'Min App Version'; + String get extensionMinAppVersion => 'Min Uygulama Sürümü'; @override - String get extensionCustomTrackMatching => 'Custom Track Matching'; + String get extensionCustomTrackMatching => 'Özel Şarkı Eşleştirme'; @override - String get extensionPostProcessing => 'Post-Processing'; + String get extensionPostProcessing => 'İşlem Sonrası'; @override String extensionHooksAvailable(int count) { - return '$count hook(s) available'; + return '$count kanca mevcut'; } @override String extensionPatternsCount(int count) { - return '$count pattern(s)'; + return '$count desen'; } @override String extensionStrategy(String strategy) { - return 'Strategy: $strategy'; + return 'Strateji: $strategy'; } @override - String get extensionsProviderPrioritySection => 'Provider Priority'; + String get extensionsProviderPrioritySection => 'Sağlayıcı Önceliği'; @override - String get extensionsInstalledSection => 'Installed Extensions'; + String get extensionsInstalledSection => 'Yüklü Eklentiler'; @override - String get extensionsNoExtensions => 'No extensions installed'; + String get extensionsNoExtensions => 'Yüklü eklenti yok'; @override String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + 'Yeni sağlayıcılar eklemek için .spotiflac-ext dosyalarını yükleyin'; @override - String get extensionsInstallButton => 'Install Extension'; + String get extensionsInstallButton => 'Eklenti Yükle'; @override String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + 'Eklentiler yeni metadata ve indirme sağlayıcıları ekleyebilir. Sadece güvenilir kaynaklardan eklenti yükleyin.'; @override - String get extensionsInstalledSuccess => 'Extension installed successfully'; + String get extensionsInstalledSuccess => 'Eklenti başarıyla yüklendi'; @override - String get extensionsDownloadPriority => 'Download Priority'; + String get extensionsDownloadPriority => 'İndirme Önceliği'; @override - String get extensionsDownloadPrioritySubtitle => 'Set download service order'; + String get extensionsDownloadPrioritySubtitle => + 'İndirme hizmeti sırasını ayarla'; @override String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + 'İndirme sağlayıcısı olan eklenti yok'; @override - String get extensionsMetadataPriority => 'Metadata Priority'; + String get extensionsMetadataPriority => 'Metadata Önceliği'; @override String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + 'Arama ve metadata kaynağı sırasını ayarla'; @override String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + 'Metadata sağlayıcısı olan eklenti yok'; @override - String get extensionsSearchProvider => 'Search Provider'; + String get extensionsSearchProvider => 'Arama Sağlayıcı'; @override - String get extensionsNoCustomSearch => 'No extensions with custom search'; + String get extensionsNoCustomSearch => 'Özel arama olan eklenti yok'; @override String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + 'Şarkı aramak için hangi hizmetin kullanılacağını seçin'; @override - String get extensionsCustomSearch => 'Custom search'; + String get extensionsCustomSearch => 'Özel arama'; @override - String get extensionsErrorLoading => 'Error loading extension'; + String get extensionsErrorLoading => 'Eklenti yüklenirken hata oluştu'; @override String get qualityFlacLossless => 'FLAC Lossless'; @@ -2167,17 +2182,17 @@ class AppLocalizationsTr extends AppLocalizations { @override String discographyAddedToQueue(int count) { - return 'Added $count tracks to queue'; + return '$count şarkı kuyruğa eklendi'; } @override String discographySkippedDownloaded(int added, int skipped) { - return '$added added, $skipped already downloaded'; + return '$added eklendi, $skipped zaten indirilmiş'; } @override - String get discographyNoAlbums => 'No albums available'; + String get discographyNoAlbums => 'Albüm mevcut değil'; @override - String get discographyFailedToFetch => 'Failed to fetch some albums'; + String get discographyFailedToFetch => 'Bazı albümler alınamadı'; } diff --git a/lib/l10n/arb/app_pt_PT.arb b/lib/l10n/arb/app_pt_PT.arb index 7f8d81a2..ac8659e6 100644 --- a/lib/l10n/arb/app_pt_PT.arb +++ b/lib/l10n/arb/app_pt_PT.arb @@ -835,19 +835,19 @@ "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupDownloadInFlac": "Download Spotify tracks in FLAC", + "setupDownloadInFlac": "Baixe faixas do Spotify em FLAC", "@setupDownloadInFlac": { "description": "App tagline in setup" }, - "setupStepStorage": "Storage", + "setupStepStorage": "Armazenamento", "@setupStepStorage": { "description": "Setup step indicator - storage" }, - "setupStepNotification": "Notification", + "setupStepNotification": "Notificação", "@setupStepNotification": { "description": "Setup step indicator - notification" }, - "setupStepFolder": "Folder", + "setupStepFolder": "Pasta", "@setupStepFolder": { "description": "Setup step indicator - folder" }, @@ -855,19 +855,19 @@ "@setupStepSpotify": { "description": "Setup step indicator - Spotify API" }, - "setupStepPermission": "Permission", + "setupStepPermission": "Permissão", "@setupStepPermission": { "description": "Setup step indicator - permission" }, - "setupStorageGranted": "Storage Permission Granted!", + "setupStorageGranted": "Permissão de Armazenamento Concedida!", "@setupStorageGranted": { "description": "Success message for storage permission" }, - "setupStorageRequired": "Storage Permission Required", + "setupStorageRequired": "Permissão de Armazenamento Necessária", "@setupStorageRequired": { "description": "Title when storage permission needed" }, - "setupStorageDescription": "SpotiFLAC needs storage permission to save your downloaded music files.", + "setupStorageDescription": "O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.", "@setupStorageDescription": { "description": "Explanation for storage permission" }, @@ -1071,23 +1071,23 @@ "@dialogClearAllDownloads": { "description": "Dialog message - clear downloads confirmation" }, - "dialogRemoveFromDevice": "Remove from device?", + "dialogRemoveFromDevice": "Remover do dispositivo?", "@dialogRemoveFromDevice": { "description": "Dialog title - delete file confirmation" }, - "dialogRemoveExtension": "Remove Extension", + "dialogRemoveExtension": "Remover Extensão", "@dialogRemoveExtension": { "description": "Dialog title - uninstall extension" }, - "dialogRemoveExtensionMessage": "Are you sure you want to remove this extension? This cannot be undone.", + "dialogRemoveExtensionMessage": "Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.", "@dialogRemoveExtensionMessage": { "description": "Dialog message - uninstall confirmation" }, - "dialogUninstallExtension": "Uninstall Extension?", + "dialogUninstallExtension": "Desinstalar Extensão?", "@dialogUninstallExtension": { "description": "Dialog title - uninstall extension" }, - "dialogUninstallExtensionMessage": "Are you sure you want to remove {extensionName}?", + "dialogUninstallExtensionMessage": "Tem certeza de que deseja remover {extensionName}?", "@dialogUninstallExtensionMessage": { "description": "Dialog message - uninstall specific extension", "placeholders": { @@ -1096,19 +1096,19 @@ } } }, - "dialogClearHistoryTitle": "Clear History", + "dialogClearHistoryTitle": "Limpar Histórico", "@dialogClearHistoryTitle": { "description": "Dialog title - clear download history" }, - "dialogClearHistoryMessage": "Are you sure you want to clear all download history? This cannot be undone.", + "dialogClearHistoryMessage": "Tem certeza de que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.", "@dialogClearHistoryMessage": { "description": "Dialog message - clear history confirmation" }, - "dialogDeleteSelectedTitle": "Delete Selected", + "dialogDeleteSelectedTitle": "Apagar Selecionados", "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, - "dialogDeleteSelectedMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from history?\n\nThis will also delete the files from storage.", + "dialogDeleteSelectedMessage": "Apagar {count} {count, plural, =1{faixa} other{faixas}} do histórico?\n\nIsso também apagará os arquivos do armazenamento.", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { @@ -1117,11 +1117,11 @@ } } }, - "dialogImportPlaylistTitle": "Import Playlist", + "dialogImportPlaylistTitle": "Importar Playlist", "@dialogImportPlaylistTitle": { "description": "Dialog title - import CSV playlist" }, - "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "dialogImportPlaylistMessage": "Encontradas {count} faixas no CSV. Adicionar à fila de download?", "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1130,7 +1130,7 @@ } } }, - "snackbarAddedToQueue": "Added \"{trackName}\" to queue", + "snackbarAddedToQueue": "\"{trackName}\" adicionada à fila", "@snackbarAddedToQueue": { "description": "Snackbar - track added to download queue", "placeholders": { @@ -1139,7 +1139,7 @@ } } }, - "snackbarAddedTracksToQueue": "Added {count} tracks to queue", + "snackbarAddedTracksToQueue": "{count} faixas adicionadas à fila", "@snackbarAddedTracksToQueue": { "description": "Snackbar - multiple tracks added to queue", "placeholders": { @@ -1148,7 +1148,7 @@ } } }, - "snackbarAlreadyDownloaded": "\"{trackName}\" already downloaded", + "snackbarAlreadyDownloaded": "\"{trackName}\" já foi baixada", "@snackbarAlreadyDownloaded": { "description": "Snackbar - track already exists", "placeholders": { @@ -1157,19 +1157,19 @@ } } }, - "snackbarHistoryCleared": "History cleared", + "snackbarHistoryCleared": "Histórico limpo", "@snackbarHistoryCleared": { "description": "Snackbar - history deleted" }, - "snackbarCredentialsSaved": "Credentials saved", + "snackbarCredentialsSaved": "Credenciais salvas", "@snackbarCredentialsSaved": { "description": "Snackbar - Spotify credentials saved" }, - "snackbarCredentialsCleared": "Credentials cleared", + "snackbarCredentialsCleared": "Credenciais removidas", "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}", + "snackbarDeletedTracks": "{count} {count, plural, =1{faixa apagada} other{faixas apagadas}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -1178,7 +1178,7 @@ } } }, - "snackbarCannotOpenFile": "Cannot open file: {error}", + "snackbarCannotOpenFile": "Não foi possível abrir o arquivo: {error}", "@snackbarCannotOpenFile": { "description": "Snackbar - file open error", "placeholders": { @@ -1187,15 +1187,15 @@ } } }, - "snackbarFillAllFields": "Please fill all fields", + "snackbarFillAllFields": "Por favor, preencha todos os campos", "@snackbarFillAllFields": { "description": "Snackbar - validation error" }, - "snackbarViewQueue": "View Queue", + "snackbarViewQueue": "Ver Fila", "@snackbarViewQueue": { "description": "Snackbar action - view download queue" }, - "snackbarFailedToLoad": "Failed to load: {error}", + "snackbarFailedToLoad": "Falha ao carregar: {error}", "@snackbarFailedToLoad": { "description": "Snackbar - loading error", "placeholders": { @@ -1204,7 +1204,7 @@ } } }, - "snackbarUrlCopied": "{platform} URL copied to clipboard", + "snackbarUrlCopied": "URL do {platform} copiada para a área de transferência", "@snackbarUrlCopied": { "description": "Snackbar - URL copied", "placeholders": { @@ -1214,23 +1214,23 @@ } } }, - "snackbarFileNotFound": "File not found", + "snackbarFileNotFound": "Arquivo não encontrado", "@snackbarFileNotFound": { "description": "Snackbar - file doesn't exist" }, - "snackbarSelectExtFile": "Please select a .spotiflac-ext file", + "snackbarSelectExtFile": "Por favor, selecione um arquivo .spotiflac-ext", "@snackbarSelectExtFile": { "description": "Snackbar - wrong file type selected" }, - "snackbarProviderPrioritySaved": "Provider priority saved", + "snackbarProviderPrioritySaved": "Prioridade de provedor salva", "@snackbarProviderPrioritySaved": { "description": "Snackbar - provider order saved" }, - "snackbarMetadataProviderSaved": "Metadata provider priority saved", + "snackbarMetadataProviderSaved": "Prioridade de provedor de metadados salva", "@snackbarMetadataProviderSaved": { "description": "Snackbar - metadata provider order saved" }, - "snackbarExtensionInstalled": "{extensionName} installed.", + "snackbarExtensionInstalled": "{extensionName} instalada.", "@snackbarExtensionInstalled": { "description": "Snackbar - extension installed successfully", "placeholders": { @@ -1239,7 +1239,7 @@ } } }, - "snackbarExtensionUpdated": "{extensionName} updated.", + "snackbarExtensionUpdated": "{extensionName} atualizada.", "@snackbarExtensionUpdated": { "description": "Snackbar - extension updated successfully", "placeholders": { @@ -1248,23 +1248,23 @@ } } }, - "snackbarFailedToInstall": "Failed to install extension", + "snackbarFailedToInstall": "Falha ao instalar extensão", "@snackbarFailedToInstall": { "description": "Snackbar - extension install error" }, - "snackbarFailedToUpdate": "Failed to update extension", + "snackbarFailedToUpdate": "Falha ao atualizar extensão", "@snackbarFailedToUpdate": { "description": "Snackbar - extension update error" }, - "errorRateLimited": "Rate Limited", + "errorRateLimited": "Taxa Limitada", "@errorRateLimited": { "description": "Error title - too many requests" }, - "errorRateLimitedMessage": "Too many requests. Please wait a moment before searching again.", + "errorRateLimitedMessage": "Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.", "@errorRateLimitedMessage": { "description": "Error message - rate limit explanation" }, - "errorFailedToLoad": "Failed to load {item}", + "errorFailedToLoad": "Falha ao carregar {item}", "@errorFailedToLoad": { "description": "Error message - loading failed", "placeholders": { @@ -1274,11 +1274,11 @@ } } }, - "errorNoTracksFound": "No tracks found", + "errorNoTracksFound": "Nenhuma faixa encontrada", "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorMissingExtensionSource": "Cannot load {item}: missing extension source", + "errorMissingExtensionSource": "Não foi possível carregar {item}: fonte de extensão ausente", "@errorMissingExtensionSource": { "description": "Error - extension source not available", "placeholders": { @@ -1287,23 +1287,23 @@ } } }, - "statusQueued": "Queued", + "statusQueued": "Na Fila", "@statusQueued": { "description": "Download status - waiting in queue" }, - "statusDownloading": "Downloading", + "statusDownloading": "Baixando", "@statusDownloading": { "description": "Download status - in progress" }, - "statusFinalizing": "Finalizing", + "statusFinalizing": "Finalizando", "@statusFinalizing": { "description": "Download status - writing metadata" }, - "statusCompleted": "Completed", + "statusCompleted": "Concluído", "@statusCompleted": { "description": "Download status - finished" }, - "statusFailed": "Failed", + "statusFailed": "Falhou", "@statusFailed": { "description": "Download status - error occurred" }, @@ -1735,19 +1735,19 @@ "@logNetworkErrorDescription": { "description": "Network error explanation" }, - "logNetworkErrorSuggestion": "Check your internet connection", + "logNetworkErrorSuggestion": "Verifique a sua conexão com a internet", "@logNetworkErrorSuggestion": { "description": "Network error fix suggestion" }, - "logTrackNotFoundDescription": "Some tracks could not be found on download services", + "logTrackNotFoundDescription": "Algumas faixas não foram encontradas nos serviços de download", "@logTrackNotFoundDescription": { "description": "Track not found explanation" }, - "logTrackNotFoundSuggestion": "The track may not be available in lossless quality", + "logTrackNotFoundSuggestion": "A faixa pode não estar disponível em qualidade lossless", "@logTrackNotFoundSuggestion": { "description": "Track not found explanation" }, - "logTotalErrors": "Total errors: {count}", + "logTotalErrors": "Total de erros: {count}", "@logTotalErrors": { "description": "Error count display", "placeholders": { @@ -1756,7 +1756,7 @@ } } }, - "logAffected": "Affected: {domains}", + "logAffected": "Afetados: {domains}", "@logAffected": { "description": "Affected domains display", "placeholders": { @@ -1765,7 +1765,7 @@ } } }, - "logEntriesFiltered": "Entries ({count} filtered)", + "logEntriesFiltered": "Entradas ({count} filtradas)", "@logEntriesFiltered": { "description": "Log count with filter active", "placeholders": { @@ -1774,7 +1774,7 @@ } } }, - "logEntries": "Entries ({count})", + "logEntries": "Entradas ({count})", "@logEntries": { "description": "Total log count", "placeholders": { @@ -1783,11 +1783,11 @@ } } }, - "credentialsTitle": "Spotify Credentials", + "credentialsTitle": "Credenciais do Spotify", "@credentialsTitle": { "description": "Credentials dialog title" }, - "credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.", + "credentialsDescription": "Insira o seu Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.", "@credentialsDescription": { "description": "Credentials dialog explanation" }, @@ -2001,35 +2001,35 @@ "@trackDownloaded": { "description": "Metadata label - download date" }, - "trackCopyLyrics": "Copy lyrics", + "trackCopyLyrics": "Copiar letras", "@trackCopyLyrics": { "description": "Action - copy lyrics to clipboard" }, - "trackLyricsNotAvailable": "Lyrics not available for this track", + "trackLyricsNotAvailable": "Letras não disponíveis para esta faixa", "@trackLyricsNotAvailable": { "description": "Message when lyrics not found" }, - "trackLyricsTimeout": "Request timed out. Try again later.", + "trackLyricsTimeout": "A solicitação expirou. Tente novamente mais tarde.", "@trackLyricsTimeout": { "description": "Message when lyrics request times out" }, - "trackLyricsLoadFailed": "Failed to load lyrics", + "trackLyricsLoadFailed": "Falha ao carregar letras", "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, - "trackCopiedToClipboard": "Copied to clipboard", + "trackCopiedToClipboard": "Copiado para a área de transferência", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" }, - "trackDeleteConfirmTitle": "Remove from device?", + "trackDeleteConfirmTitle": "Remover do dispositivo?", "@trackDeleteConfirmTitle": { "description": "Delete confirmation title" }, - "trackDeleteConfirmMessage": "This will permanently delete the downloaded file and remove it from your history.", + "trackDeleteConfirmMessage": "Isso apagará permanentemente o arquivo baixado e o removerá do seu histórico.", "@trackDeleteConfirmMessage": { "description": "Delete confirmation message" }, - "trackCannotOpen": "Cannot open: {message}", + "trackCannotOpen": "Não foi possível abrir: {message}", "@trackCannotOpen": { "description": "Error opening file", "placeholders": { @@ -2038,15 +2038,15 @@ } } }, - "dateToday": "Today", + "dateToday": "Hoje", "@dateToday": { "description": "Relative date - today" }, - "dateYesterday": "Yesterday", + "dateYesterday": "Ontem", "@dateYesterday": { "description": "Relative date - yesterday" }, - "dateDaysAgo": "{count} days ago", + "dateDaysAgo": "Há {count} dias", "@dateDaysAgo": { "description": "Relative date - days ago", "placeholders": { @@ -2055,7 +2055,7 @@ } } }, - "dateWeeksAgo": "{count} weeks ago", + "dateWeeksAgo": "Há {count} semanas", "@dateWeeksAgo": { "description": "Relative date - weeks ago", "placeholders": { @@ -2064,7 +2064,7 @@ } } }, - "dateMonthsAgo": "{count} months ago", + "dateMonthsAgo": "Há {count} meses", "@dateMonthsAgo": { "description": "Relative date - months ago", "placeholders": { @@ -2073,27 +2073,27 @@ } } }, - "concurrentSequential": "Sequential", + "concurrentSequential": "Sequencial", "@concurrentSequential": { "description": "Download mode - one at a time" }, - "concurrentParallel2": "2 Parallel", + "concurrentParallel2": "2 Paralelos", "@concurrentParallel2": { "description": "Download mode - 2 simultaneous" }, - "concurrentParallel3": "3 Parallel", + "concurrentParallel3": "3 Paralelos", "@concurrentParallel3": { "description": "Download mode - 3 simultaneous" }, - "tapToSeeError": "Tap to see error details", + "tapToSeeError": "Toque para ver detalhes do erro", "@tapToSeeError": { "description": "Tooltip for failed download" }, - "storeFilterAll": "All", + "storeFilterAll": "Todos", "@storeFilterAll": { "description": "Store filter - all extensions" }, - "storeFilterMetadata": "Metadata", + "storeFilterMetadata": "Metadados", "@storeFilterMetadata": { "description": "Store filter - metadata providers" }, @@ -2101,43 +2101,43 @@ "@storeFilterDownload": { "description": "Store filter - download providers" }, - "storeFilterUtility": "Utility", + "storeFilterUtility": "Utilitário", "@storeFilterUtility": { "description": "Store filter - utility extensions" }, - "storeFilterLyrics": "Lyrics", + "storeFilterLyrics": "Letras", "@storeFilterLyrics": { "description": "Store filter - lyrics providers" }, - "storeFilterIntegration": "Integration", + "storeFilterIntegration": "Integração", "@storeFilterIntegration": { "description": "Store filter - integrations" }, - "storeClearFilters": "Clear filters", + "storeClearFilters": "Limpar filtros", "@storeClearFilters": { "description": "Button to clear all filters" }, - "storeNoResults": "No extensions found", + "storeNoResults": "Nenhuma extensão encontrada", "@storeNoResults": { "description": "Empty state when no extensions match filters" }, - "extensionProviderPriority": "Provider Priority", + "extensionProviderPriority": "Prioridade de Provedor", "@extensionProviderPriority": { "description": "Extension capability - provider priority" }, - "extensionInstallButton": "Install Extension", + "extensionInstallButton": "Instalar Extensão", "@extensionInstallButton": { "description": "Button to install extension" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "Padrão (Deezer/Spotify)", "@extensionDefaultProvider": { "description": "Default search provider option" }, - "extensionDefaultProviderSubtitle": "Use built-in search", + "extensionDefaultProviderSubtitle": "Usar pesquisa integrada", "@extensionDefaultProviderSubtitle": { "description": "Subtitle for default provider" }, - "extensionAuthor": "Author", + "extensionAuthor": "Autor", "@extensionAuthor": { "description": "Extension detail - author" }, @@ -2145,43 +2145,43 @@ "@extensionId": { "description": "Extension detail - unique ID" }, - "extensionError": "Error", + "extensionError": "Erro", "@extensionError": { "description": "Extension detail - error message" }, - "extensionCapabilities": "Capabilities", + "extensionCapabilities": "Capacidades", "@extensionCapabilities": { "description": "Section header - extension features" }, - "extensionMetadataProvider": "Metadata Provider", + "extensionMetadataProvider": "Provedor de Metadados", "@extensionMetadataProvider": { "description": "Capability - provides metadata" }, - "extensionDownloadProvider": "Download Provider", + "extensionDownloadProvider": "Provedor de Download", "@extensionDownloadProvider": { "description": "Capability - provides downloads" }, - "extensionLyricsProvider": "Lyrics Provider", + "extensionLyricsProvider": "Provedor de Letras", "@extensionLyricsProvider": { "description": "Capability - provides lyrics" }, - "extensionUrlHandler": "URL Handler", + "extensionUrlHandler": "Manipulador de URL", "@extensionUrlHandler": { "description": "Capability - handles URLs" }, - "extensionQualityOptions": "Quality Options", + "extensionQualityOptions": "Opções de Qualidade", "@extensionQualityOptions": { "description": "Capability - quality selection" }, - "extensionPostProcessingHooks": "Post-Processing Hooks", + "extensionPostProcessingHooks": "Ganchos de Pós-Processamento", "@extensionPostProcessingHooks": { "description": "Capability - post-processing" }, - "extensionPermissions": "Permissions", + "extensionPermissions": "Permissões", "@extensionPermissions": { "description": "Section header - required permissions" }, - "extensionSettings": "Settings", + "extensionSettings": "Configurações", "@extensionSettings": { "description": "Section header - extension settings" }, @@ -2376,31 +2376,31 @@ "@folderNone": { "description": "Folder option - no organization" }, - "folderNoneSubtitle": "Save all files directly to download folder", + "folderNoneSubtitle": "Salvar todos os arquivos diretamente na pasta de download", "@folderNoneSubtitle": { "description": "Subtitle for no folder organization" }, - "folderArtist": "Artist", + "folderArtist": "Artista", "@folderArtist": { "description": "Folder option - by artist" }, - "folderArtistSubtitle": "Artist Name/filename", + "folderArtistSubtitle": "Nome do Artista/nome do arquivo", "@folderArtistSubtitle": { "description": "Folder structure example" }, - "folderAlbum": "Album", + "folderAlbum": "Álbum", "@folderAlbum": { "description": "Folder option - by album" }, - "folderAlbumSubtitle": "Album Name/filename", + "folderAlbumSubtitle": "Nome do Álbum/nome do arquivo", "@folderAlbumSubtitle": { "description": "Folder structure example" }, - "folderArtistAlbum": "Artist/Album", + "folderArtistAlbum": "Artista/Álbum", "@folderArtistAlbum": { "description": "Folder option - nested" }, - "folderArtistAlbumSubtitle": "Artist Name/Album Name/filename", + "folderArtistAlbumSubtitle": "Nome do Artista/Nome do Álbum/nome do arquivo", "@folderArtistAlbumSubtitle": { "description": "Folder structure example" }, @@ -2424,103 +2424,103 @@ "@serviceSpotify": { "description": "Service name - DO NOT TRANSLATE" }, - "appearanceAmoledDark": "AMOLED Dark", + "appearanceAmoledDark": "AMOLED Escuro", "@appearanceAmoledDark": { "description": "Theme option - pure black" }, - "appearanceAmoledDarkSubtitle": "Pure black background", + "appearanceAmoledDarkSubtitle": "Fundo preto puro", "@appearanceAmoledDarkSubtitle": { "description": "Subtitle for AMOLED dark" }, - "appearanceChooseAccentColor": "Choose Accent Color", + "appearanceChooseAccentColor": "Escolher Cor de Destaque", "@appearanceChooseAccentColor": { "description": "Color picker dialog title" }, - "appearanceChooseTheme": "Theme Mode", + "appearanceChooseTheme": "Modo de Tema", "@appearanceChooseTheme": { "description": "Theme picker dialog title" }, - "queueTitle": "Download Queue", + "queueTitle": "Fila de Download", "@queueTitle": { "description": "Queue screen title" }, - "queueClearAll": "Clear All", + "queueClearAll": "Limpar Tudo", "@queueClearAll": { "description": "Button - clear all queue items" }, - "queueClearAllMessage": "Are you sure you want to clear all downloads?", + "queueClearAllMessage": "Tem certeza de que deseja limpar todos os downloads?", "@queueClearAllMessage": { "description": "Clear queue confirmation" }, - "queueEmpty": "No downloads in queue", + "queueEmpty": "Nenhum download na fila", "@queueEmpty": { "description": "Empty queue state title" }, - "queueEmptySubtitle": "Add tracks from the home screen", + "queueEmptySubtitle": "Adicione faixas a partir da tela inicial", "@queueEmptySubtitle": { "description": "Empty queue state subtitle" }, - "queueClearCompleted": "Clear completed", + "queueClearCompleted": "Limpar concluídos", "@queueClearCompleted": { "description": "Button - clear finished downloads" }, - "queueDownloadFailed": "Download Failed", + "queueDownloadFailed": "Download Falhou", "@queueDownloadFailed": { "description": "Error dialog title" }, - "queueTrackLabel": "Track:", + "queueTrackLabel": "Faixa:", "@queueTrackLabel": { "description": "Label in error dialog" }, - "queueArtistLabel": "Artist:", + "queueArtistLabel": "Artista:", "@queueArtistLabel": { "description": "Label in error dialog" }, - "queueErrorLabel": "Error:", + "queueErrorLabel": "Erro:", "@queueErrorLabel": { "description": "Label in error dialog" }, - "queueUnknownError": "Unknown error", + "queueUnknownError": "Erro desconhecido", "@queueUnknownError": { "description": "Fallback error message" }, - "albumFolderArtistAlbum": "Artist / Album", + "albumFolderArtistAlbum": "Artista / Álbum", "@albumFolderArtistAlbum": { "description": "Album folder option" }, - "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", + "albumFolderArtistAlbumSubtitle": "Álbuns/Nome do Artista/Nome do Álbum/", "@albumFolderArtistAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderArtistYearAlbum": "Artist / [Year] Album", + "albumFolderArtistYearAlbum": "Artista / [Ano] Álbum", "@albumFolderArtistYearAlbum": { "description": "Album folder option with year" }, - "albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/", + "albumFolderArtistYearAlbumSubtitle": "Álbuns/Nome do Artista/[2005] Nome do Álbum/", "@albumFolderArtistYearAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderAlbumOnly": "Album Only", + "albumFolderAlbumOnly": "Apenas Álbum", "@albumFolderAlbumOnly": { "description": "Album folder option" }, - "albumFolderAlbumOnlySubtitle": "Albums/Album Name/", + "albumFolderAlbumOnlySubtitle": "Álbuns/Nome do Álbum/", "@albumFolderAlbumOnlySubtitle": { "description": "Folder structure example" }, - "albumFolderYearAlbum": "[Year] Album", + "albumFolderYearAlbum": "[Ano] Álbum", "@albumFolderYearAlbum": { "description": "Album folder option with year" }, - "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", + "albumFolderYearAlbumSubtitle": "Álbuns/[2005] Nome do Álbum/", "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, - "downloadedAlbumDeleteSelected": "Delete Selected", + "downloadedAlbumDeleteSelected": "Apagar Selecionados", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" }, - "downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.", + "downloadedAlbumDeleteMessage": "Apagar {count} {count, plural, =1{faixa} other{faixas}} deste álbum?\n\nIsso também apagará os arquivos do armazenamento.", "@downloadedAlbumDeleteMessage": { "description": "Delete confirmation with count", "placeholders": { @@ -2529,11 +2529,11 @@ } } }, - "downloadedAlbumTracksHeader": "Tracks", + "downloadedAlbumTracksHeader": "Faixas", "@downloadedAlbumTracksHeader": { "description": "Section header for tracks" }, - "downloadedAlbumDownloadedCount": "{count} downloaded", + "downloadedAlbumDownloadedCount": "{count} baixadas", "@downloadedAlbumDownloadedCount": { "description": "Downloaded tracks count badge", "placeholders": { @@ -2542,7 +2542,7 @@ } } }, - "downloadedAlbumSelectedCount": "{count} selected", + "downloadedAlbumSelectedCount": "{count} selecionadas", "@downloadedAlbumSelectedCount": { "description": "Selection count indicator", "placeholders": { @@ -2551,15 +2551,15 @@ } } }, - "downloadedAlbumAllSelected": "All tracks selected", + "downloadedAlbumAllSelected": "Todas as faixas selecionadas", "@downloadedAlbumAllSelected": { "description": "Status - all items selected" }, - "downloadedAlbumTapToSelect": "Tap tracks to select", + "downloadedAlbumTapToSelect": "Toque nas faixas para selecionar", "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, - "downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}", + "downloadedAlbumDeleteCount": "Apagar {count} {count, plural, =1{faixa} other{faixas}}", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { @@ -2568,23 +2568,23 @@ } } }, - "downloadedAlbumSelectToDelete": "Select tracks to delete", + "downloadedAlbumSelectToDelete": "Selecione faixas para apagar", "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, - "utilityFunctions": "Utility Functions", + "utilityFunctions": "Funções Utilitárias", "@utilityFunctions": { "description": "Extension capability - utility functions" }, - "recentTypeArtist": "Artist", + "recentTypeArtist": "Artista", "@recentTypeArtist": { "description": "Recent access item type - artist" }, - "recentTypeAlbum": "Album", + "recentTypeAlbum": "Álbum", "@recentTypeAlbum": { "description": "Recent access item type - album" }, - "recentTypeSong": "Song", + "recentTypeSong": "Música", "@recentTypeSong": { "description": "Recent access item type - song/track" }, @@ -2602,7 +2602,7 @@ } } }, - "errorGeneric": "Error: {message}", + "errorGeneric": "Erro: {message}", "@errorGeneric": { "description": "Generic error message format", "placeholders": { diff --git a/lib/l10n/arb/app_tr.arb b/lib/l10n/arb/app_tr.arb index 79d419e9..f3bba681 100644 --- a/lib/l10n/arb/app_tr.arb +++ b/lib/l10n/arb/app_tr.arb @@ -1,7 +1,2868 @@ { "@@locale": "tr", - "@@last_modified": "2026-01-21", - + "@@last_modified": "2026-01-16", "appName": "SpotiFLAC", - "@appName": {"description": "App name - DO NOT TRANSLATE"} -} + "@appName": { + "description": "App name - DO NOT TRANSLATE" + }, + "appDescription": "Spotify şarkılarını Tidal, Qobuz ve Amazon Music'den yüksek kalitede indir.", + "@appDescription": { + "description": "App description shown in about page" + }, + "navHome": "Ara", + "@navHome": { + "description": "Bottom navigation - Home tab" + }, + "navHistory": "Geçmiş", + "@navHistory": { + "description": "Bottom navigation - History tab" + }, + "navSettings": "Ayarlar", + "@navSettings": { + "description": "Bottom navigation - Settings tab" + }, + "navStore": "Dükkan", + "@navStore": { + "description": "Bottom navigation - Extension store tab" + }, + "homeTitle": "Ara", + "@homeTitle": { + "description": "Home screen title" + }, + "homeSearchHint": "Spotify URL'i yapıştır veya ara...", + "@homeSearchHint": { + "description": "Placeholder text in search box" + }, + "homeSearchHintExtension": "{extensionName} ile arat...", + "@homeSearchHintExtension": { + "description": "Placeholder when extension search is active", + "placeholders": { + "extensionName": { + "type": "String", + "description": "Name of the active extension" + } + } + }, + "homeSubtitle": "Spotify linki yapıştır veya isimle arat", + "@homeSubtitle": { + "description": "Subtitle shown below search box" + }, + "homeSupports": "Desteklenen linkler: Şarkı, Albüm, Çalma Listesi, Sanatçı linkleri", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "En son", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "historyTitle": "Geçmiş", + "@historyTitle": { + "description": "History screen title" + }, + "historyDownloading": "({count}) tane indiriliyor", + "@historyDownloading": { + "description": "Tab showing active downloads count", + "placeholders": { + "count": { + "type": "int", + "description": "Number of active downloads" + } + } + }, + "historyDownloaded": "İndirildi", + "@historyDownloaded": { + "description": "Tab showing completed downloads" + }, + "historyFilterAll": "Tümü", + "@historyFilterAll": { + "description": "Filter chip - show all items" + }, + "historyFilterAlbums": "Albümler", + "@historyFilterAlbums": { + "description": "Filter chip - show albums only" + }, + "historyFilterSingles": "Single'lar", + "@historyFilterSingles": { + "description": "Filter chip - show singles only" + }, + "historyTracksCount": "{count, plural, one {}=1{1 şarkı} other{{count} şarkı}}", + "@historyTracksCount": { + "description": "Track count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyAlbumsCount": "{count, plural, one {}=1{1 albüm} other{{count} albüm}}", + "@historyAlbumsCount": { + "description": "Album count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyNoDownloads": "İndirme geçmişi yok", + "@historyNoDownloads": { + "description": "Empty state title" + }, + "historyNoDownloadsSubtitle": "İndirilen şarkılar burada gözükecek", + "@historyNoDownloadsSubtitle": { + "description": "Empty state subtitle" + }, + "historyNoAlbums": "İndirilen albüm yok", + "@historyNoAlbums": { + "description": "Empty state when filtering albums" + }, + "historyNoAlbumsSubtitle": "Albümleri burada görmek için bir albümden birden fazla şarkı indir", + "@historyNoAlbumsSubtitle": { + "description": "Empty state subtitle for albums filter" + }, + "historyNoSingles": "Single indirilmemiş", + "@historyNoSingles": { + "description": "Empty state when filtering singles" + }, + "historyNoSinglesSubtitle": "Single şarkılar burada gözükecek", + "@historyNoSinglesSubtitle": { + "description": "Empty state subtitle for singles filter" + }, + "historySearchHint": "Arama geçmişi...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, + "settingsTitle": "Ayarlar", + "@settingsTitle": { + "description": "Settings screen title" + }, + "settingsDownload": "İndirme", + "@settingsDownload": { + "description": "Settings section - download options" + }, + "settingsAppearance": "Görünüm", + "@settingsAppearance": { + "description": "Settings section - visual customization" + }, + "settingsOptions": "Seçenekler", + "@settingsOptions": { + "description": "Settings section - app options" + }, + "settingsExtensions": "Eklentiler", + "@settingsExtensions": { + "description": "Settings section - extension management" + }, + "settingsAbout": "Hakkında", + "@settingsAbout": { + "description": "Settings section - app info" + }, + "downloadTitle": "İndirme", + "@downloadTitle": { + "description": "Download settings page title" + }, + "downloadLocation": "İndirme Konumu", + "@downloadLocation": { + "description": "Setting for download folder" + }, + "downloadLocationSubtitle": "Dosyaları nereye kaydedeceğinizi seçin", + "@downloadLocationSubtitle": { + "description": "Subtitle for download location" + }, + "downloadLocationDefault": "Varsayılan dizin", + "@downloadLocationDefault": { + "description": "Shown when using default folder" + }, + "downloadDefaultService": "Varsayılan Hizmet", + "@downloadDefaultService": { + "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" + }, + "downloadDefaultServiceSubtitle": "İndirmeler için kullanılan hizmet", + "@downloadDefaultServiceSubtitle": { + "description": "Subtitle for default service" + }, + "downloadDefaultQuality": "Varsayılan Kalite", + "@downloadDefaultQuality": { + "description": "Setting for audio quality" + }, + "downloadAskQuality": "İndirmeden Önce Kaliteyi Sor", + "@downloadAskQuality": { + "description": "Toggle to show quality picker" + }, + "downloadAskQualitySubtitle": "Her indirmeden önce kalite seçim ekranını göster", + "@downloadAskQualitySubtitle": { + "description": "Subtitle for ask quality toggle" + }, + "downloadFilenameFormat": "Dosya adı formatı", + "@downloadFilenameFormat": { + "description": "Setting for output filename pattern" + }, + "downloadFolderOrganization": "Dosya Organizasyonu", + "@downloadFolderOrganization": { + "description": "Setting for folder structure" + }, + "downloadSeparateSingles": "Single'ları Ayır", + "@downloadSeparateSingles": { + "description": "Toggle to separate single tracks" + }, + "downloadSeparateSinglesSubtitle": "Single şarkıları ayrı dosyaya koy", + "@downloadSeparateSinglesSubtitle": { + "description": "Subtitle for separate singles toggle" + }, + "qualityBest": "Mevcut en iyi", + "@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": "Görünüm", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "appearanceTheme": "Tema", + "@appearanceTheme": { + "description": "Theme mode setting" + }, + "appearanceThemeSystem": "Sistem", + "@appearanceThemeSystem": { + "description": "Follow system theme" + }, + "appearanceThemeLight": "Açık", + "@appearanceThemeLight": { + "description": "Light theme" + }, + "appearanceThemeDark": "Koyu", + "@appearanceThemeDark": { + "description": "Dark theme" + }, + "appearanceDynamicColor": "Dinamik Renk", + "@appearanceDynamicColor": { + "description": "Material You dynamic colors" + }, + "appearanceDynamicColorSubtitle": "Duvar kağıdının renklerini kullan", + "@appearanceDynamicColorSubtitle": { + "description": "Subtitle for dynamic color" + }, + "appearanceAccentColor": "Vurgu Rengi", + "@appearanceAccentColor": { + "description": "Custom accent color picker" + }, + "appearanceHistoryView": "Geçmiş Düzeni", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Liste", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Izgara", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsTitle": "Seçenekler", + "@optionsTitle": { + "description": "Options settings page title" + }, + "optionsSearchSource": "Arama Kaynağı", + "@optionsSearchSource": { + "description": "Section for search provider settings" + }, + "optionsPrimaryProvider": "Ana Kaynek", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Şarkı ismi aratılırken kullanılan kaynak.", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Kullanılan eklenti: {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsSwitchBack": "Dahili kaynaklara dönmek için Deezer veya Spotify'a tıkla", + "@optionsSwitchBack": { + "description": "Hint to switch back to built-in providers" + }, + "optionsAutoFallback": "Diğerlerini dene", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "İndirme başarısız olursa diğer hizmetleri dene", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsUseExtensionProviders": "Eklenti sağlayıcılarını kullan", + "@optionsUseExtensionProviders": { + "description": "Enable extension download providers" + }, + "optionsUseExtensionProvidersOn": "Eklentiler ilk denenecek", + "@optionsUseExtensionProvidersOn": { + "description": "Status when extension providers enabled" + }, + "optionsUseExtensionProvidersOff": "Sadece dahili sağlayıcıları kullan", + "@optionsUseExtensionProvidersOff": { + "description": "Status when extension providers disabled" + }, + "optionsEmbedLyrics": "Şarkı Sözlerini Göm", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Senkronize şarkı sözlerini FLAC dosyalarına göm", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsMaxQualityCover": "En Yüksek Kapak Kalitesi", + "@optionsMaxQualityCover": { + "description": "Download highest quality album art" + }, + "optionsMaxQualityCoverSubtitle": "En yüksek kalitedeki albüm kapaklarını indir", + "@optionsMaxQualityCoverSubtitle": { + "description": "Subtitle for max quality cover" + }, + "optionsConcurrentDownloads": "Eş Zamanlı İndirmeler", + "@optionsConcurrentDownloads": { + "description": "Number of parallel downloads" + }, + "optionsConcurrentSequential": "Sıralı (Birer birer)", + "@optionsConcurrentSequential": { + "description": "Download one at a time" + }, + "optionsConcurrentParallel": "Aynı anda {count} indirme", + "@optionsConcurrentParallel": { + "description": "Multiple parallel downloads", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "optionsConcurrentWarning": "Aynı anda birden fazla indirme sınırlamaya takılabilir", + "@optionsConcurrentWarning": { + "description": "Warning about rate limits" + }, + "optionsExtensionStore": "Eklenti Dükkanı", + "@optionsExtensionStore": { + "description": "Show/hide store tab" + }, + "optionsExtensionStoreSubtitle": "Dükkan sekmesini altta göster", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension store toggle" + }, + "optionsCheckUpdates": "Güncelleştirmeleri Denetle", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" + }, + "optionsCheckUpdatesSubtitle": "Yeni sürüm çıktığında bildir", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" + }, + "optionsUpdateChannel": "Güncelleme Kanalı", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" + }, + "optionsUpdateChannelStable": "Sadece stabil sürümler", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" + }, + "optionsUpdateChannelPreview": "Önizleme sürümlerini al", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" + }, + "optionsUpdateChannelWarning": "Önizleme sürümleri hatalar veya tamamlanmamış özellikler içerebilir", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" + }, + "optionsClearHistory": "İndirme Geçmişini Temizle", + "@optionsClearHistory": { + "description": "Delete all download history" + }, + "optionsClearHistorySubtitle": "İndirilen bütün şarkıları geçmişten temizle", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" + }, + "optionsDetailedLogging": "Detaylı Günlükleme", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" + }, + "optionsDetailedLoggingOn": "Detaylı günlük kayıt ediliyor", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" + }, + "optionsDetailedLoggingOff": "Hata bildirmek için aç", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" + }, + "optionsSpotifyCredentials": "Spotify Kimlik Bilgileri", + "@optionsSpotifyCredentials": { + "description": "Spotify API credentials setting" + }, + "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", + "@optionsSpotifyCredentialsConfigured": { + "description": "Shows configured client ID preview", + "placeholders": { + "clientId": { + "type": "String" + } + } + }, + "optionsSpotifyCredentialsRequired": "Zorunlu - değiştirmek için tıkla", + "@optionsSpotifyCredentialsRequired": { + "description": "Prompt to set up credentials" + }, + "optionsSpotifyWarning": "Spotify'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com'dan alabilirsin", + "@optionsSpotifyWarning": { + "description": "Info about Spotify API requirement" + }, + "extensionsTitle": "Eklentiler", + "@extensionsTitle": { + "description": "Extensions page title" + }, + "extensionsInstalled": "Kurulu Eklentiler", + "@extensionsInstalled": { + "description": "Section header for installed extensions" + }, + "extensionsNone": "Hiçbir eklenti kurulmamış", + "@extensionsNone": { + "description": "Empty state title" + }, + "extensionsNoneSubtitle": "Dükkan sekmesinden eklenti indir", + "@extensionsNoneSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsEnabled": "Etkin", + "@extensionsEnabled": { + "description": "Extension status - active" + }, + "extensionsDisabled": "Devre Dışı", + "@extensionsDisabled": { + "description": "Extension status - inactive" + }, + "extensionsVersion": "Versiyon {version}", + "@extensionsVersion": { + "description": "Extension version display", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "extensionsAuthor": "{author} tarafından", + "@extensionsAuthor": { + "description": "Extension author credit", + "placeholders": { + "author": { + "type": "String" + } + } + }, + "extensionsUninstall": "Kaldır", + "@extensionsUninstall": { + "description": "Uninstall extension button" + }, + "extensionsSetAsSearch": "Arama Sağlayıcı olarak Ayarla", + "@extensionsSetAsSearch": { + "description": "Use extension for search" + }, + "storeTitle": "Eklenti Dükkanı", + "@storeTitle": { + "description": "Store screen title" + }, + "storeSearch": "Eklenti ara...", + "@storeSearch": { + "description": "Store search placeholder" + }, + "storeInstall": "Kur", + "@storeInstall": { + "description": "Install extension button" + }, + "storeInstalled": "Kuruldu", + "@storeInstalled": { + "description": "Already installed badge" + }, + "storeUpdate": "Güncelle", + "@storeUpdate": { + "description": "Update available button" + }, + "aboutTitle": "Hakkında", + "@aboutTitle": { + "description": "About page title" + }, + "aboutContributors": "Katkıda Bulunanlar", + "@aboutContributors": { + "description": "Section for contributors" + }, + "aboutMobileDeveloper": "Mobil versiyon geliştiricisi", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" + }, + "aboutOriginalCreator": "Orijinal SpotiFLAC'ın kurucusu", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "Uygulama logomuzu yaratmış yetenekli sanatçımız!", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Çevirmenler", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Özel teşekkür", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Linkler", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Mobil kaynak kodu", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "PC kaynak kodu", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutReportIssue": "Sorun bildir", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Karşılaştığın herhangi bir problemi bildir", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Özellik isteği", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Uygulama için yeni özellikler isteyin", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Telegram Kanalı", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Duyurular ve güncellemeler", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Grubu", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Diğer kullanıcılarla sohbet et", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Sosyal ağlar", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutSupport": "Destek", + "@aboutSupport": { + "description": "Section for support/donation links" + }, + "aboutBuyMeCoffee": "Bana bir kahve ısmarla", + "@aboutBuyMeCoffee": { + "description": "Donation link" + }, + "aboutBuyMeCoffeeSubtitle": "Ko-fi üzerinden uygulamayı destekle", + "@aboutBuyMeCoffeeSubtitle": { + "description": "Subtitle for donation" + }, + "aboutApp": "Uygulama", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Versiyon", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "QQDL ve HiFi API'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutDoubleDouble": "DoubleDouble", + "@aboutDoubleDouble": { + "description": "Name of Amazon API service - DO NOT TRANSLATE" + }, + "aboutDoubleDoubleDesc": "Amazom Music indirmeleri için harika bir API. Ücretsiz yaptığın için teşekkürler!", + "@aboutDoubleDoubleDesc": { + "description": "Credit for DoubleDouble API" + }, + "aboutDabMusic": "DAB Music", + "@aboutDabMusic": { + "description": "Name of Qobuz API service - DO NOT TRANSLATE" + }, + "aboutDabMusicDesc": "En iyi Qobuz streaming API'ı. Yüksek kalite indirmeler bunun sayesinde!", + "@aboutDabMusicDesc": { + "description": "Credit for DAB Music API" + }, + "aboutAppDescription": "Spotify şarkılarını Tidal, Qobuz ve Amazon Music'den yüksek kalitede indir.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "albumTitle": "Albüm", + "@albumTitle": { + "description": "Album screen title" + }, + "albumTracks": "{count, plural, one {}=1{1 şarkı} other{{count} şarkı}}", + "@albumTracks": { + "description": "Album track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "albumDownloadAll": "Tümünü İndir", + "@albumDownloadAll": { + "description": "Button to download all tracks" + }, + "albumDownloadRemaining": "Kalanını İndir", + "@albumDownloadRemaining": { + "description": "Button to download remaining tracks" + }, + "playlistTitle": "Çalma Listesi", + "@playlistTitle": { + "description": "Playlist screen title" + }, + "artistTitle": "Sanatçı", + "@artistTitle": { + "description": "Artist screen title" + }, + "artistAlbums": "Albümler", + "@artistAlbums": { + "description": "Section header for artist albums" + }, + "artistSingles": "Single'lar ve EP'ler", + "@artistSingles": { + "description": "Section header for singles/EPs" + }, + "artistCompilations": "Derlemeler", + "@artistCompilations": { + "description": "Section header for compilations" + }, + "artistReleases": "{count, plural, =1{1 yayın} other{{count} yayın}}", + "@artistReleases": { + "description": "Artist release count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "artistPopular": "Popüler", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "Aylık {count} dinleyici", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", + "placeholders": { + "count": { + "type": "String", + "description": "Formatted listener count" + } + } + }, + "trackMetadataTitle": "Şarkı Bilgisi", + "@trackMetadataTitle": { + "description": "Track metadata screen title" + }, + "trackMetadataArtist": "Sanatçı", + "@trackMetadataArtist": { + "description": "Metadata field - artist name" + }, + "trackMetadataAlbum": "Albüm", + "@trackMetadataAlbum": { + "description": "Metadata field - album name" + }, + "trackMetadataDuration": "Süre", + "@trackMetadataDuration": { + "description": "Metadata field - track length" + }, + "trackMetadataQuality": "Kalite", + "@trackMetadataQuality": { + "description": "Metadata field - audio quality" + }, + "trackMetadataPath": "Dosya Yolu", + "@trackMetadataPath": { + "description": "Metadata field - file location" + }, + "trackMetadataDownloadedAt": "İndirme tarihi", + "@trackMetadataDownloadedAt": { + "description": "Metadata field - download date" + }, + "trackMetadataService": "Hizmet", + "@trackMetadataService": { + "description": "Metadata field - download service used" + }, + "trackMetadataPlay": "Oynat", + "@trackMetadataPlay": { + "description": "Action button - play track" + }, + "trackMetadataShare": "Paylaş", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Sil", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "trackMetadataRedownload": "Yeniden İndir", + "@trackMetadataRedownload": { + "description": "Action button - download again" + }, + "trackMetadataOpenFolder": "Klasörü Aç", + "@trackMetadataOpenFolder": { + "description": "Action button - open containing folder" + }, + "setupTitle": "SpotiFLAC'e Hoşgeldiniz", + "@setupTitle": { + "description": "Setup wizard title" + }, + "setupSubtitle": "Hadi başlayalım", + "@setupSubtitle": { + "description": "Setup wizard subtitle" + }, + "setupStoragePermission": "Depolama İzni", + "@setupStoragePermission": { + "description": "Storage permission step title" + }, + "setupStoragePermissionSubtitle": "İndirilen dosyaları kaydetmek için gerekli", + "@setupStoragePermissionSubtitle": { + "description": "Explanation for storage permission" + }, + "setupStoragePermissionGranted": "İzin verildi", + "@setupStoragePermissionGranted": { + "description": "Status when permission granted" + }, + "setupStoragePermissionDenied": "İzin reddedildi", + "@setupStoragePermissionDenied": { + "description": "Status when permission denied" + }, + "setupGrantPermission": "İzin Ver", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupDownloadLocation": "İndirme Konumu", + "@setupDownloadLocation": { + "description": "Download folder step title" + }, + "setupChooseFolder": "Klasör Seç", + "@setupChooseFolder": { + "description": "Button to pick folder" + }, + "setupContinue": "Devam", + "@setupContinue": { + "description": "Continue to next step button" + }, + "setupSkip": "Şimdilik atla", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Depolama Erişimi Gerekli", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessage": "SpotiFLAC'ın şarkıları seçili klasörünüze kaydetmek için \"Bütün dosyalara eriş\" iznine ihtiyacı var.", + "@setupStorageAccessMessage": { + "description": "Explanation for storage access" + }, + "setupStorageAccessMessageAndroid11": "Android 11 ve sonrasında şarkıların seçili klasörünüze kaydedilebilmesi için \"Bütün dosyalara eriş\" iznine ihtiyaç var.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Ayarları Aç", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "İzin reddedildi. Devam etmek için lütfen bütün izinleri verin.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "{permissionType} İzni Zorunlu", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "En iyi deneyim için {permissionType} izni zorunludur. Bunu ayarlardan daha sonra değiştirebilirsiniz.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupSelectDownloadFolder": "İndirilecek Klasörü Seç", + "@setupSelectDownloadFolder": { + "description": "Folder selection step title" + }, + "setupUseDefaultFolder": "Varsayılan Klasörü Kullan?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "Klasör seçilmedi. Varsayılan \"Music\" klasörünü kullanmak ister misiniz?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Varsayılanı Kullan", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "İndirme Konumu", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "iOS'ta indirilenler uygulamanın \"Documents\" dosyasına kaydedilir. Onlara Dosyalar uygulamasından erişebilirsiniz.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "App Documents Folder", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Tavsiye edilen - Dosyalar uygulamasından erişilebilir", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Dosyalar'dan Seç", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "iCloud veya başka konum seç", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "iOS'un sınırlaması: Boş klasörler seçilemiyor. İçinde en az bir dosya bulunan bir klasör seçin.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupDownloadInFlac": "Spotify şarkılarını FLAC olarak indirin", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStepStorage": "Depolama", + "@setupStepStorage": { + "description": "Setup step indicator - storage" + }, + "setupStepNotification": "Bildirim", + "@setupStepNotification": { + "description": "Setup step indicator - notification" + }, + "setupStepFolder": "Klasör", + "@setupStepFolder": { + "description": "Setup step indicator - folder" + }, + "setupStepSpotify": "Spotify", + "@setupStepSpotify": { + "description": "Setup step indicator - Spotify API" + }, + "setupStepPermission": "İzin", + "@setupStepPermission": { + "description": "Setup step indicator - permission" + }, + "setupStorageGranted": "Depolama İzni Verildi!", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Depolama İzni Gerekli", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "SpotiFLAC'ın şarkılarınızı kaydetmek için depolama iznine ihtiyacı var.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "Bildirim İzni Verildi!", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Bildirimleri Etkinleştir", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupNotificationDescription": "İndirmeler bittiğinde veya bakılması gereken bir şey olduğunda haberdar olun.", + "@setupNotificationDescription": { + "description": "Explanation for notifications" + }, + "setupFolderSelected": "İndirilecek Klasör Seçildi!", + "@setupFolderSelected": { + "description": "Success message for folder selection" + }, + "setupFolderChoose": "İndirilecek Klasörü Seç", + "@setupFolderChoose": { + "description": "Button to choose folder" + }, + "setupFolderDescription": "İndirdiğin şarkıların kaydedileceği klasörü seç.", + "@setupFolderDescription": { + "description": "Explanation for folder selection" + }, + "setupChangeFolder": "Klasörü Değiştir", + "@setupChangeFolder": { + "description": "Button to change selected folder" + }, + "setupSelectFolder": "Klasör Seç", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupSpotifyApiOptional": "Spotify API (İsteğe Bağlı)", + "@setupSpotifyApiOptional": { + "description": "Spotify API step title" + }, + "setupSpotifyApiDescription": "Daha iyi arama sonuçları ve Spotify'a özel içeriklere erişmek için Spotify API kimlik bilgilerini gir.", + "@setupSpotifyApiDescription": { + "description": "Explanation for Spotify API" + }, + "setupUseSpotifyApi": "Spotify API'ı kullan", + "@setupUseSpotifyApi": { + "description": "Toggle to enable Spotify API" + }, + "setupEnterCredentialsBelow": "Kimlik bilgilerini aşağıya gir", + "@setupEnterCredentialsBelow": { + "description": "Prompt to enter credentials" + }, + "setupUsingDeezer": "Deezer kullanılıyor (hesap gerekli değil)", + "@setupUsingDeezer": { + "description": "Status when using Deezer" + }, + "setupEnterClientId": "Spotify Client ID gir", + "@setupEnterClientId": { + "description": "Placeholder for client ID field" + }, + "setupEnterClientSecret": "Spotify Client Secret gir", + "@setupEnterClientSecret": { + "description": "Placeholder for client secret field" + }, + "setupGetFreeCredentials": "Spotify Developer Dashboard'tan API kimlik bilgilerini ücretsiz alın.", + "@setupGetFreeCredentials": { + "description": "Info about getting Spotify credentials" + }, + "setupEnableNotifications": "Bildirimleri Etkinleştir", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupProceedToNextStep": "Bir sonraki adıma geçebilirsin.", + "@setupProceedToNextStep": { + "description": "Message after completing a step" + }, + "setupNotificationProgressDescription": "İndirme ilerlemelerinin bildirimlerini alacaksın.", + "@setupNotificationProgressDescription": { + "description": "Info about notification usage" + }, + "setupNotificationBackgroundDescription": "İndirmelerin durumu hakkında bildirim al. Bunu açmak uygulama arka plandayken indirmelerinizi takip etmenizi sağlar.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Şimdilik atla", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupBack": "Geri", + "@setupBack": { + "description": "Back button text" + }, + "setupNext": "Sıradaki", + "@setupNext": { + "description": "Next button text" + }, + "setupGetStarted": "Başla", + "@setupGetStarted": { + "description": "Final setup button" + }, + "setupSkipAndStart": "Kurulumu atla", + "@setupSkipAndStart": { + "description": "Skip setup and start app" + }, + "setupAllowAccessToManageFiles": "Lütfen bir sonraki ekranda \"Bütün dosyalara eriş\" iznini sağlayın.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" + }, + "setupGetCredentialsFromSpotify": "Kimlik bilgilerini developer.spotify.com'dan alın", + "@setupGetCredentialsFromSpotify": { + "description": "Link text for Spotify developer portal" + }, + "dialogCancel": "İptal", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogOk": "Tamam", + "@dialogOk": { + "description": "Dialog button - confirm/acknowledge" + }, + "dialogSave": "Kaydet", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Sil", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Yeniden dene", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClose": "Kapat", + "@dialogClose": { + "description": "Dialog button - close dialog" + }, + "dialogYes": "Evet", + "@dialogYes": { + "description": "Dialog button - confirm yes" + }, + "dialogNo": "Hayır", + "@dialogNo": { + "description": "Dialog button - confirm no" + }, + "dialogClear": "Temizle", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogConfirm": "Onayla", + "@dialogConfirm": { + "description": "Dialog button - confirm action" + }, + "dialogDone": "Tamamlandı", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "İçe aktar", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDiscard": "Vazgeç", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Kaldır", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Kaldır", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "Değişiklikleri İptal Et?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Kaydedilmeyen değişiklikler mevcut. Bu değişiklikleri iptal etmek istiyor musunuz?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogDownloadFailed": "İndirme Başarısız", + "@dialogDownloadFailed": { + "description": "Dialog title - download error" + }, + "dialogTrackLabel": "Şarkı:", + "@dialogTrackLabel": { + "description": "Label for track name in error dialog" + }, + "dialogArtistLabel": "Sanatçı:", + "@dialogArtistLabel": { + "description": "Label for artist name in error dialog" + }, + "dialogErrorLabel": "Hata:", + "@dialogErrorLabel": { + "description": "Label for error message" + }, + "dialogClearAll": "Tümünü Temizle", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogClearAllDownloads": "Bütün indirmeleri temizlemek istediğinize emin misiniz?", + "@dialogClearAllDownloads": { + "description": "Dialog message - clear downloads confirmation" + }, + "dialogRemoveFromDevice": "Cihazdan kaldır?", + "@dialogRemoveFromDevice": { + "description": "Dialog title - delete file confirmation" + }, + "dialogRemoveExtension": "Eklentiyi Kaldır", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "Bu eklentiyi kaldırmak istediğine emin misin? Bu işlem geri alınamaz.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "Eklentiyi Kaldır?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "{extensionName} eklentisini kaldırmak istediğine emin misin?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "dialogClearHistoryTitle": "Geçmişi Temizle", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" + }, + "dialogClearHistoryMessage": "Tüm indirme geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" + }, + "dialogDeleteSelectedTitle": "Seçileni Sil", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" + }, + "dialogDeleteSelectedMessage": "{count} {count, plural, one {}=1{şarkıyı} other{şarkıyı}} geçmişten silmeye emin misiniz?\n\nBu işlem seçilenleri cihazınızdan da silecektir.", + "@dialogDeleteSelectedMessage": { + "description": "Dialog message - delete selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogImportPlaylistTitle": "Çalma listesini içe aktar", + "@dialogImportPlaylistTitle": { + "description": "Dialog title - import CSV playlist" + }, + "dialogImportPlaylistMessage": "CSV'de {count} şarkı bulundu. İndirme kuyruğuna ekle?", + "csvImportTracks": "CSV'den {count} şarkı", + "@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": "\"{trackName}\" kuyruğa eklendi", + "@snackbarAddedToQueue": { + "description": "Snackbar - track added to download queue", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarAddedTracksToQueue": "{count} şarkı kuyruğa eklendi", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAlreadyDownloaded": "\"{trackName}\" zaten indirilmiş", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarHistoryCleared": "Geçmiş temizlendi", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarCredentialsSaved": "Kimlik bilgileri kaydedildi", + "@snackbarCredentialsSaved": { + "description": "Snackbar - Spotify credentials saved" + }, + "snackbarCredentialsCleared": "Kimlik bilgileri temizlendi", + "@snackbarCredentialsCleared": { + "description": "Snackbar - Spotify credentials removed" + }, + "snackbarDeletedTracks": "{count} {count, plural, one {}=1{şarkı} other{şarkı}} silindi", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarCannotOpenFile": "Dosya açılamadı: {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarFillAllFields": "Lütfen tüm alanları doldurun", + "@snackbarFillAllFields": { + "description": "Snackbar - validation error" + }, + "snackbarViewQueue": "Kuyruğu Görüntüle", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" + }, + "snackbarFailedToLoad": "Yüklenemedi: {error}", + "@snackbarFailedToLoad": { + "description": "Snackbar - loading error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarUrlCopied": "{platform} Bağlantı panoya kopyalandı", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } + }, + "snackbarFileNotFound": "Dosya bulunamadı", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" + }, + "snackbarSelectExtFile": "Lütfen .spotiflac-ext dosyasını seçin", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" + }, + "snackbarProviderPrioritySaved": "Sağlayıcı önceliği kaydedildi", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" + }, + "snackbarMetadataProviderSaved": "Metadata sağlayıcı önceliği kaydedildi", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" + }, + "snackbarExtensionInstalled": "{extensionName} yüklendi.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdated": "{extensionName} güncellendi.", + "@snackbarExtensionUpdated": { + "description": "Snackbar - extension updated successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToInstall": "Eklenti yüklenirken hata oluştu", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" + }, + "snackbarFailedToUpdate": "Eklenti güncellenirken hata oluştu", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" + }, + "errorRateLimited": "Aşırı istek gönderildi", + "@errorRateLimited": { + "description": "Error title - too many requests" + }, + "errorRateLimitedMessage": "Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" + }, + "errorFailedToLoad": "{item} yüklenirken hata oluştu", + "@errorFailedToLoad": { + "description": "Error message - loading failed", + "placeholders": { + "item": { + "type": "String", + "description": "Item that failed to load (album/playlist/etc)" + } + } + }, + "errorNoTracksFound": "Parça bulunamadı", + "@errorNoTracksFound": { + "description": "Error - search returned no results" + }, + "errorMissingExtensionSource": "{item} yüklenemedi: Eksik eklenti kaynağı", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", + "placeholders": { + "item": { + "type": "String" + } + } + }, + "statusQueued": "Sıraya alındı", + "@statusQueued": { + "description": "Download status - waiting in queue" + }, + "statusDownloading": "İndiriliyor", + "@statusDownloading": { + "description": "Download status - in progress" + }, + "statusFinalizing": "Tamamlanıyor", + "@statusFinalizing": { + "description": "Download status - writing metadata" + }, + "statusCompleted": "Tamamlandı", + "@statusCompleted": { + "description": "Download status - finished" + }, + "statusFailed": "Başarısız", + "@statusFailed": { + "description": "Download status - error occurred" + }, + "statusSkipped": "Atlandı", + "@statusSkipped": { + "description": "Download status - already exists" + }, + "statusPaused": "Durduruldu", + "@statusPaused": { + "description": "Download status - paused" + }, + "actionPause": "Duraklat", + "@actionPause": { + "description": "Action button - pause download" + }, + "actionResume": "Devam et", + "@actionResume": { + "description": "Action button - resume download" + }, + "actionCancel": "Vazgeç", + "@actionCancel": { + "description": "Action button - cancel operation" + }, + "actionStop": "Durdur", + "@actionStop": { + "description": "Action button - stop operation" + }, + "actionSelect": "Seç", + "@actionSelect": { + "description": "Action button - enter selection mode" + }, + "actionSelectAll": "Tümünü Seç", + "@actionSelectAll": { + "description": "Action button - select all items" + }, + "actionDeselect": "Seçimi kaldır", + "@actionDeselect": { + "description": "Action button - deselect all" + }, + "actionPaste": "Yapıştır", + "@actionPaste": { + "description": "Action button - paste from clipboard" + }, + "actionImportCsv": "CSV İçe Aktar", + "@actionImportCsv": { + "description": "Action button - import CSV file" + }, + "actionRemoveCredentials": "Özellikleri kaldır", + "@actionRemoveCredentials": { + "description": "Action button - delete Spotify credentials" + }, + "actionSaveCredentials": "Özellikleri kaydet", + "@actionSaveCredentials": { + "description": "Action button - save Spotify credentials" + }, + "selectionSelected": "{count} seçildi", + "@selectionSelected": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionAllSelected": "Tüm parçalar seçildi", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionTapToSelect": "Seçmek için parçalara dokunun", + "@selectionTapToSelect": { + "description": "Hint - how to select items" + }, + "selectionDeleteTracks": "{count} {count, plural, =1{şarkıyı} other{şarkıyı}} sil", + "@selectionDeleteTracks": { + "description": "Delete button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionSelectToDelete": "Silinecek parçaları seçin", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Meta verileri alınıyor... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "CSV okunuyor...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Şarkılar", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Sanatçılar", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Albümler", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Çalma Listeleri", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "tooltipPlay": "Oynat", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "tooltipCancel": "Vazgeç", + "@tooltipCancel": { + "description": "Tooltip - cancel button" + }, + "tooltipStop": "Durdur", + "@tooltipStop": { + "description": "Tooltip - stop button" + }, + "tooltipRetry": "Yeniden dene", + "@tooltipRetry": { + "description": "Tooltip - retry button" + }, + "tooltipRemove": "Kaldır", + "@tooltipRemove": { + "description": "Tooltip - remove button" + }, + "tooltipClear": "Temizle", + "@tooltipClear": { + "description": "Tooltip - clear button" + }, + "tooltipPaste": "Yapıştır", + "@tooltipPaste": { + "description": "Tooltip - paste button" + }, + "filenameFormat": "Dosya adı formatı", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameFormatPreview": "Önizleme: {preview}", + "@filenameFormatPreview": { + "description": "Preview of filename pattern", + "placeholders": { + "preview": { + "type": "String" + } + } + }, + "filenameAvailablePlaceholders": "Kullanılabilir yer tutucular:", + "@filenameAvailablePlaceholders": { + "description": "Label for placeholder list" + }, + "filenameHint": "{artist} - {title}", + "@filenameHint": { + "description": "Default filename format hint" + }, + "folderOrganization": "Klasör Organizasyonu", + "@folderOrganization": { + "description": "Setting title - folder structure" + }, + "folderOrganizationNone": "Organizasyon yok", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByArtist": "Sanatçıya Göre", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Albüme Göre", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Sanatçı/Albüm", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "İndirilenleri klasörlerle organize et", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Her şey indirilen dosyasına kaydedilecek", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Her sanatçı için ayrı klasör", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Her albüm için ayrı klasör", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Sanatçı klasörlerinin içinde Albüm klasörleri", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Güncelleme Mevcut", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateNewVersion": "{version} sürümü mevcut", + "@updateNewVersion": { + "description": "Update available message", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "updateDownload": "İndir", + "@updateDownload": { + "description": "Update button - download update" + }, + "updateLater": "Daha Sonra", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateChangelog": "Değişiklikler", + "@updateChangelog": { + "description": "Link to changelog" + }, + "updateStartingDownload": "İndirme başlıyor...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "İndirme başarısız", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Güncelleme indirilemedi", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Yeni bir sürüm hazır", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateCurrent": "Şimdiki", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Yeni", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "İndiriliyor...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Yenilikler", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "İndir & Yükle", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "Bir daha sorma", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriority": "İndirme hizmetleri öncelik sırası", + "@providerPriority": { + "description": "Setting title - download provider order" + }, + "providerPrioritySubtitle": "İndirme hizmetlerini sıralamak için kaydır", + "@providerPrioritySubtitle": { + "description": "Subtitle for provider priority" + }, + "providerPriorityTitle": "İndirme hizmetleri öncelik sırası", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "İndirme hizmetlerini sıralamak için kaydır. Uygulama şarkı indirirken hizmetleri yukarıdan aşağıya doğru deneyecektir.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Eğer bir şarkı ilk hizmette mevcut değilse uygulama otomatik olarak bir sonrakini deneyecektir.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerBuiltIn": "Dahili", + "@providerBuiltIn": { + "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + }, + "providerExtension": "Eklenti", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriority": "Metadata Sağlayıcı Önceliği", + "@metadataProviderPriority": { + "description": "Setting title - metadata provider order" + }, + "metadataProviderPrioritySubtitle": "Şarkı metadata'sı alınırken kullanılan sıra", + "@metadataProviderPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "metadataProviderPriorityTitle": "Metadata Önceliği", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Metadata sağlayıcılarını sıralamak için kaydır. Uygulama şarkı ararken ve metadata alırken sağlayıcıları yukarıdan aşağıya doğru deneyecektir.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "Deezer'ın istek sınırı yok ve birincil olarak önerilir. Spotify çok fazla istekten sonra sınırlama yapabilir.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "metadataNoRateLimits": "İstek sınırı yok", + "@metadataNoRateLimits": { + "description": "Deezer provider description" + }, + "metadataMayRateLimit": "Sınırlama yapabilir", + "@metadataMayRateLimit": { + "description": "Spotify provider description" + }, + "logTitle": "Kayıtlar", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopy": "Kayıtları Kopyala", + "@logCopy": { + "description": "Action - copy logs to clipboard" + }, + "logClear": "Kayıtları temizle", + "@logClear": { + "description": "Action - delete all logs" + }, + "logShare": "Kayıtları Paylaş", + "@logShare": { + "description": "Action - share logs file" + }, + "logEmpty": "Henüz kayıt yok", + "@logEmpty": { + "description": "Empty state title" + }, + "logCopied": "Kayıtlar panoya kopyalandı", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Kayıtları Ara...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Seviye", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filtre", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Kayıtları paylaş", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Kayıtları temizle", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Kayıtları temizle", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "Tüm kayıtları temizlemek istediğinize emin misiniz?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logIspBlocking": "ISP BLOCKING DETECTED", + "@logIspBlocking": { + "description": "Error category - ISP blocking" + }, + "logRateLimited": "RATE LIMITED", + "@logRateLimited": { + "description": "Error category - rate limiting" + }, + "logNetworkError": "NETWORK ERROR", + "@logNetworkError": { + "description": "Error category - network issues" + }, + "logTrackNotFound": "TRACK NOT FOUND", + "@logTrackNotFound": { + "description": "Error category - missing tracks" + }, + "logFilterBySeverity": "Kayıtları önem derecesine göre filtrele", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "Henüz kayıt yok", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Uygulamayı kullandıkça kayıtlar burada görünecek", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, + "logIssueSummary": "Sorun Özeti", + "@logIssueSummary": { + "description": "Section header for error summary" + }, + "logIspBlockingDescription": "İnternet sağlayıcınız indirme hizmetlerine erişimi engelliyor olabilir", + "@logIspBlockingDescription": { + "description": "ISP blocking explanation" + }, + "logIspBlockingSuggestion": "VPN kullanmayı veya DNS'i 1.1.1.1 ya da 8.8.8.8 olarak değiştirmeyi deneyin", + "@logIspBlockingSuggestion": { + "description": "ISP blocking fix suggestion" + }, + "logRateLimitedDescription": "Hizmete çok fazla istek gönderildi", + "@logRateLimitedDescription": { + "description": "Rate limit explanation" + }, + "logRateLimitedSuggestion": "Tekrar denemeden önce birkaç dakika bekleyin", + "@logRateLimitedSuggestion": { + "description": "Rate limit fix suggestion" + }, + "logNetworkErrorDescription": "Bağlantı sorunları tespit edildi", + "@logNetworkErrorDescription": { + "description": "Network error explanation" + }, + "logNetworkErrorSuggestion": "İnternet bağlantınızı kontrol edin", + "@logNetworkErrorSuggestion": { + "description": "Network error fix suggestion" + }, + "logTrackNotFoundDescription": "Bazı şarkılar indirme hizmetlerinde bulunamadı", + "@logTrackNotFoundDescription": { + "description": "Track not found explanation" + }, + "logTrackNotFoundSuggestion": "Şarkı kayıpsız kalitede mevcut olmayabilir", + "@logTrackNotFoundSuggestion": { + "description": "Track not found explanation" + }, + "logTotalErrors": "Total errors: {count}", + "@logTotalErrors": { + "description": "Error count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffected": "Affected: {domains}", + "@logAffected": { + "description": "Affected domains display", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "logEntriesFiltered": "Entries ({count} filtered)", + "@logEntriesFiltered": { + "description": "Log count with filter active", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logEntries": "Entries ({count})", + "@logEntries": { + "description": "Total log count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "credentialsTitle": "Spotify Kimlik Bilgileri", + "@credentialsTitle": { + "description": "Credentials dialog title" + }, + "credentialsDescription": "Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.", + "@credentialsDescription": { + "description": "Credentials dialog explanation" + }, + "credentialsClientId": "Client ID", + "@credentialsClientId": { + "description": "Client ID field label - DO NOT TRANSLATE" + }, + "credentialsClientIdHint": "Client ID yapıştır", + "@credentialsClientIdHint": { + "description": "Client ID placeholder" + }, + "credentialsClientSecret": "Client Secret", + "@credentialsClientSecret": { + "description": "Client Secret field label - DO NOT TRANSLATE" + }, + "credentialsClientSecretHint": "Client Secret yapıştır", + "@credentialsClientSecretHint": { + "description": "Client Secret placeholder" + }, + "channelStable": "Kararlı", + "@channelStable": { + "description": "Update channel - stable releases" + }, + "channelPreview": "Önizleme", + "@channelPreview": { + "description": "Update channel - beta/preview releases" + }, + "sectionSearchSource": "Arama Kaynağı", + "@sectionSearchSource": { + "description": "Settings section header" + }, + "sectionDownload": "İndirme", + "@sectionDownload": { + "description": "Settings section header" + }, + "sectionPerformance": "Performans", + "@sectionPerformance": { + "description": "Settings section header" + }, + "sectionApp": "Uygulama", + "@sectionApp": { + "description": "Settings section header" + }, + "sectionData": "Veri", + "@sectionData": { + "description": "Settings section header" + }, + "sectionDebug": "Hata Ayıklama", + "@sectionDebug": { + "description": "Settings section header" + }, + "sectionService": "Hizmet", + "@sectionService": { + "description": "Settings section header" + }, + "sectionAudioQuality": "Ses Kalitesi", + "@sectionAudioQuality": { + "description": "Settings section header" + }, + "sectionFileSettings": "Dosya Ayarları", + "@sectionFileSettings": { + "description": "Settings section header" + }, + "sectionLyrics": "Şarkı Sözleri", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Şarkı Sözü Modu", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Şarkı sözlerinin indirmelerle nasıl kaydedileceğini seçin", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Dosyaya göm", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Şarkı sözleri FLAC metadata içinde saklanır", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "Harici .lrc dosyası", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Samsung Music gibi oynatıcılar için ayrı .lrc dosyası", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Her ikisi", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Göm ve .lrc dosyası kaydet", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "Renk", + "@sectionColor": { + "description": "Settings section header" + }, + "sectionTheme": "Tema", + "@sectionTheme": { + "description": "Settings section header" + }, + "sectionLayout": "Düzen", + "@sectionLayout": { + "description": "Settings section header" + }, + "sectionLanguage": "Dil", + "@sectionLanguage": { + "description": "Settings section header for language" + }, + "appearanceLanguage": "Uygulama Dili", + "@appearanceLanguage": { + "description": "Language setting title" + }, + "appearanceLanguageSubtitle": "Tercih ettiğiniz dili seçin", + "@appearanceLanguageSubtitle": { + "description": "Language setting subtitle" + }, + "settingsAppearanceSubtitle": "Tema, renkler, görünüm", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" + }, + "settingsDownloadSubtitle": "Hizmet, kalite, dosya adı formatı", + "@settingsDownloadSubtitle": { + "description": "Download settings description" + }, + "settingsOptionsSubtitle": "Yedek, şarkı sözleri, kapak resmi, güncellemeler", + "@settingsOptionsSubtitle": { + "description": "Options settings description" + }, + "settingsExtensionsSubtitle": "İndirme sağlayıcılarını yönet", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" + }, + "settingsLogsSubtitle": "Hata ayıklama için uygulama kayıtlarını görüntüle", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Paylaşılan bağlantı yükleniyor...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Çıkmak için tekrar geri basın", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "tracksHeader": "Şarkılar", + "@tracksHeader": { + "description": "Section header for track list" + }, + "downloadAllCount": "Tümünü İndir ({count})", + "@downloadAllCount": { + "description": "Download all button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tracksCount": "{count, plural, =1{1 şarkı} other{{count} şarkı}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackCopyFilePath": "Dosya yolunu kopyala", + "@trackCopyFilePath": { + "description": "Action - copy file path" + }, + "trackRemoveFromDevice": "Cihazdan kaldır", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" + }, + "trackLoadLyrics": "Şarkı Sözlerini Yükle", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" + }, + "trackMetadata": "Metadata", + "@trackMetadata": { + "description": "Tab title - track metadata" + }, + "trackFileInfo": "Dosya Bilgisi", + "@trackFileInfo": { + "description": "Tab title - file information" + }, + "trackLyrics": "Şarkı Sözleri", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "Dosya bulunamadı", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Deezer'da aç", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Spotify'da aç", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Şarkı adı", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Sanatçı", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Albüm sanatçısı", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Albüm", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Şarkı numarası", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Disk numarası", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Süre", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Ses kalitesi", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "trackReleaseDate": "Yayın tarihi", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Tür", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Plak şirketi", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Telif hakkı", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "İndirildi", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Şarkı sözlerini kopyala", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsNotAvailable": "Bu şarkı için şarkı sözü mevcut değil", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsTimeout": "İstek zaman aşımına uğradı. Daha sonra tekrar deneyin.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Şarkı sözleri yüklenemedi", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Şarkı Sözlerini Göm", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Şarkı sözleri başarıyla gömüldü", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Enstrümantal şarkı", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Panoya kopyalandı", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "Cihazdan kaldırılsın mı?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "Bu işlem indirilen dosyayı kalıcı olarak silecek ve geçmişten kaldıracaktır.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "trackCannotOpen": "Cannot open: {message}", + "@trackCannotOpen": { + "description": "Error opening file", + "placeholders": { + "message": { + "type": "String" + } + } + }, + "dateToday": "Bugün", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Dün", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "{count} gün önce", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "{count} hafta önce", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "{count} ay önce", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "concurrentSequential": "Sıralı", + "@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": "Hata detaylarını görmek için dokun", + "@tapToSeeError": { + "description": "Tooltip for failed download" + }, + "storeFilterAll": "Tümü", + "@storeFilterAll": { + "description": "Store filter - all extensions" + }, + "storeFilterMetadata": "Metadata", + "@storeFilterMetadata": { + "description": "Store filter - metadata providers" + }, + "storeFilterDownload": "İndirme", + "@storeFilterDownload": { + "description": "Store filter - download providers" + }, + "storeFilterUtility": "Araç", + "@storeFilterUtility": { + "description": "Store filter - utility extensions" + }, + "storeFilterLyrics": "Şarkı Sözleri", + "@storeFilterLyrics": { + "description": "Store filter - lyrics providers" + }, + "storeFilterIntegration": "Entegrasyon", + "@storeFilterIntegration": { + "description": "Store filter - integrations" + }, + "storeClearFilters": "Filtreleri temizle", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeNoResults": "Eklenti bulunamadı", + "@storeNoResults": { + "description": "Empty state when no extensions match filters" + }, + "extensionProviderPriority": "Sağlayıcı Önceliği", + "@extensionProviderPriority": { + "description": "Extension capability - provider priority" + }, + "extensionInstallButton": "Eklenti Yükle", + "@extensionInstallButton": { + "description": "Button to install extension" + }, + "extensionDefaultProvider": "Varsayılan (Deezer/Spotify)", + "@extensionDefaultProvider": { + "description": "Default search provider option" + }, + "extensionDefaultProviderSubtitle": "Dahili aramayı kullan", + "@extensionDefaultProviderSubtitle": { + "description": "Subtitle for default provider" + }, + "extensionAuthor": "Yazar", + "@extensionAuthor": { + "description": "Extension detail - author" + }, + "extensionId": "ID", + "@extensionId": { + "description": "Extension detail - unique ID" + }, + "extensionError": "Hata", + "@extensionError": { + "description": "Extension detail - error message" + }, + "extensionCapabilities": "Yetenekler", + "@extensionCapabilities": { + "description": "Section header - extension features" + }, + "extensionMetadataProvider": "Metadata Sağlayıcı", + "@extensionMetadataProvider": { + "description": "Capability - provides metadata" + }, + "extensionDownloadProvider": "İndirme Sağlayıcı", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" + }, + "extensionLyricsProvider": "Şarkı Sözü Sağlayıcı", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" + }, + "extensionUrlHandler": "URL İşleyici", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" + }, + "extensionQualityOptions": "Kalite Seçenekleri", + "@extensionQualityOptions": { + "description": "Capability - quality selection" + }, + "extensionPostProcessingHooks": "İşlem Sonrası Kancalar", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" + }, + "extensionPermissions": "İzinler", + "@extensionPermissions": { + "description": "Section header - required permissions" + }, + "extensionSettings": "Ayarlar", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Eklentiyi Kaldır", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Güncellendi", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Min Uygulama Sürümü", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Özel Şarkı Eşleştirme", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "İşlem Sonrası", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} kanca mevcut", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "{count} desen", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Strateji: {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { + "type": "String" + } + } + }, + "extensionsProviderPrioritySection": "Sağlayıcı Önceliği", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" + }, + "extensionsInstalledSection": "Yüklü Eklentiler", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "Yüklü eklenti yok", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Yeni sağlayıcılar eklemek için .spotiflac-ext dosyalarını yükleyin", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Eklenti Yükle", + "@extensionsInstallButton": { + "description": "Button to install extension from file" + }, + "extensionsInfoTip": "Eklentiler yeni metadata ve indirme sağlayıcıları ekleyebilir. Sadece güvenilir kaynaklardan eklenti yükleyin.", + "@extensionsInfoTip": { + "description": "Security warning about extensions" + }, + "extensionsInstalledSuccess": "Eklenti başarıyla yüklendi", + "@extensionsInstalledSuccess": { + "description": "Success message after install" + }, + "extensionsDownloadPriority": "İndirme Önceliği", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" + }, + "extensionsDownloadPrioritySubtitle": "İndirme hizmeti sırasını ayarla", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" + }, + "extensionsNoDownloadProvider": "İndirme sağlayıcısı olan eklenti yok", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Metadata Önceliği", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Arama ve metadata kaynağı sırasını ayarla", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "Metadata sağlayıcısı olan eklenti yok", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Arama Sağlayıcı", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "Özel arama olan eklenti yok", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Şarkı aramak için hangi hizmetin kullanılacağını seçin", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Özel arama", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" + }, + "extensionsErrorLoading": "Eklenti yüklenirken hata oluştu", + "@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 / up to 96kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" + }, + "qualityHiResFlacMax": "Hi-Res FLAC Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24-bit / up to 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": "Actual quality depends on track availability from the service", + "@qualityNote": { + "description": "Note about quality availability" + }, + "downloadAskBeforeDownload": "Ask Before Download", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" + }, + "downloadDirectory": "Download Directory", + "@downloadDirectory": { + "description": "Setting - download folder" + }, + "downloadSeparateSinglesFolder": "Separate Singles Folder", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" + }, + "downloadAlbumFolderStructure": "Album Folder Structure", + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" + }, + "downloadSaveFormat": "Save Format", + "@downloadSaveFormat": { + "description": "Setting - output file format" + }, + "downloadSelectService": "Select Service", + "@downloadSelectService": { + "description": "Dialog title - choose download service" + }, + "downloadSelectQuality": "Select Quality", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" + }, + "downloadFrom": "Download From", + "@downloadFrom": { + "description": "Label - download source" + }, + "downloadDefaultQualityLabel": "Default Quality", + "@downloadDefaultQualityLabel": { + "description": "Label - default quality setting" + }, + "downloadBestAvailable": "Best available", + "@downloadBestAvailable": { + "description": "Quality option - highest available" + }, + "folderNone": "None", + "@folderNone": { + "description": "Folder option - no organization" + }, + "folderNoneSubtitle": "Save all files directly to download folder", + "@folderNoneSubtitle": { + "description": "Subtitle for no folder organization" + }, + "folderArtist": "Artist", + "@folderArtist": { + "description": "Folder option - by artist" + }, + "folderArtistSubtitle": "Artist Name/filename", + "@folderArtistSubtitle": { + "description": "Folder structure example" + }, + "folderAlbum": "Album", + "@folderAlbum": { + "description": "Folder option - by album" + }, + "folderAlbumSubtitle": "Album Name/filename", + "@folderAlbumSubtitle": { + "description": "Folder structure example" + }, + "folderArtistAlbum": "Artist/Album", + "@folderArtistAlbum": { + "description": "Folder option - nested" + }, + "folderArtistAlbumSubtitle": "Artist Name/Album Name/filename", + "@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 Dark", + "@appearanceAmoledDark": { + "description": "Theme option - pure black" + }, + "appearanceAmoledDarkSubtitle": "Pure black background", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" + }, + "appearanceChooseAccentColor": "Choose Accent Color", + "@appearanceChooseAccentColor": { + "description": "Color picker dialog title" + }, + "appearanceChooseTheme": "Theme Mode", + "@appearanceChooseTheme": { + "description": "Theme picker dialog title" + }, + "queueTitle": "Download Queue", + "@queueTitle": { + "description": "Queue screen title" + }, + "queueClearAll": "Clear All", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "Are you sure you want to clear all downloads?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "queueEmpty": "No downloads in queue", + "@queueEmpty": { + "description": "Empty queue state title" + }, + "queueEmptySubtitle": "Add tracks from the home screen", + "@queueEmptySubtitle": { + "description": "Empty queue state subtitle" + }, + "queueClearCompleted": "Clear completed", + "@queueClearCompleted": { + "description": "Button - clear finished downloads" + }, + "queueDownloadFailed": "Download Failed", + "@queueDownloadFailed": { + "description": "Error dialog title" + }, + "queueTrackLabel": "Track:", + "@queueTrackLabel": { + "description": "Label in error dialog" + }, + "queueArtistLabel": "Artist:", + "@queueArtistLabel": { + "description": "Label in error dialog" + }, + "queueErrorLabel": "Error:", + "@queueErrorLabel": { + "description": "Label in error dialog" + }, + "queueUnknownError": "Unknown error", + "@queueUnknownError": { + "description": "Fallback error message" + }, + "albumFolderArtistAlbum": "Artist / Album", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artist / [Year] Album", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Album Only", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Albums/Album Name/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "[Year] Album", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", + "@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": "Delete Selected", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTracksHeader": "Tracks", + "@downloadedAlbumTracksHeader": { + "description": "Section header for tracks" + }, + "downloadedAlbumDownloadedCount": "{count} downloaded", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} selected", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumAllSelected": "All tracks selected", + "@downloadedAlbumAllSelected": { + "description": "Status - all items selected" + }, + "downloadedAlbumTapToSelect": "Tap tracks to select", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Select tracks to delete", + "@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": "Utility Functions", + "@utilityFunctions": { + "description": "Extension capability - utility functions" + }, + "recentTypeArtist": "Artist", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Album", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Song", + "@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": "Download All", + "@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": "{count} şarkı kuyruğa eklendi", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} eklendi, {skipped} zaten indirilmiş", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "Albüm mevcut değil", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Bazı albümler alınamadı", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + } +} \ No newline at end of file diff --git a/lib/l10n/supported_locales.dart b/lib/l10n/supported_locales.dart index 91b3afae..30ae57cb 100644 --- a/lib/l10n/supported_locales.dart +++ b/lib/l10n/supported_locales.dart @@ -18,6 +18,8 @@ const List filteredSupportedLocales = [ Locale('es', 'ES'), Locale('id'), Locale('pt', 'PT'), + Locale('ja'), + Locale('tr'), ]; /// Set of locale codes for quick lookup. @@ -27,4 +29,6 @@ const Set filteredLocaleCodes = { 'es_ES', 'id', 'pt_PT', + 'ja', + 'tr', };