mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-06 12:48:03 +02:00
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:
@@ -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
@@ -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';
|
||||
}
|
||||
}
|
||||
|
||||
+548
-533
File diff suppressed because it is too large
Load Diff
+141
-141
@@ -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": {
|
||||
|
||||
+2865
-4
File diff suppressed because it is too large
Load Diff
@@ -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',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user