chore(l10n): complete Turkish and Portuguese Portugal translations to 70%+ threshold

- Turkish (tr): 84% (533/638 keys)
- Portuguese Portugal (pt_PT): 89% (567/638 keys)

Both languages now included in supported locales.
This commit is contained in:
zarzet
2026-01-31 11:12:13 +07:00
parent 3135993cf4
commit 908d108858
6 changed files with 3714 additions and 829 deletions
-2
View File
@@ -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/`)
+156 -149
View File
@@ -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 '$count dias';
}
@override
String dateWeeksAgo(int count) {
return '$count weeks ago';
return '$count semanas';
}
@override
String dateMonthsAgo(int count) {
return '$count months ago';
return '$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';
}
}
File diff suppressed because it is too large Load Diff
+141 -141
View File
@@ -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": "{count} dias",
"@dateDaysAgo": {
"description": "Relative date - days ago",
"placeholders": {
@@ -2055,7 +2055,7 @@
}
}
},
"dateWeeksAgo": "{count} weeks ago",
"dateWeeksAgo": "{count} semanas",
"@dateWeeksAgo": {
"description": "Relative date - weeks ago",
"placeholders": {
@@ -2064,7 +2064,7 @@
}
}
},
"dateMonthsAgo": "{count} months ago",
"dateMonthsAgo": "{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": {
+2865 -4
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -18,6 +18,8 @@ const List<Locale> filteredSupportedLocales = <Locale>[
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<String> filteredLocaleCodes = <String>{
'es_ES',
'id',
'pt_PT',
'ja',
'tr',
};