use super::Strings;
use crate::providers::ProviderId;
pub const STRINGS: Strings = Strings {
search: "Buscar",
downloads: "Downloads",
settings: "Configurações",
library: "Biblioteca",
nothing_saved_yet: "Nada salvo ainda",
new_playlist_name: "Nome da nova playlist",
queue: "Fila",
recently_played: "Reproduzidas recentemente",
now_playing_from: "Tocando de",
now_playing: "Tocando agora",
up_next: "A seguir",
no_track_playing: "Nenhuma faixa tocando",
no_more_tracks_in_queue: "Não há mais faixas na fila",
no_recently_played_tracks: "Nenhuma faixa reproduzida recentemente",
not_playing: "Nada tocando",
no_tracks_found: "Nenhuma faixa encontrada",
searching: "Buscando…",
loading: "Carregando…",
load_more: "Carregar mais",
no_results_found: "Nenhum resultado encontrado",
no_recent_searches: "Nenhuma busca recente",
generating_radio: "Gerando rádio…",
not_an_artist_page: "Não é uma página de artista",
provided_by: "Fornecido por",
retry: "Tentar novamente",
nothing_here: "Nada por aqui",
most_popular_songs: "Músicas mais populares",
albums: "Álbuns",
playlists: "Playlists",
fans_also_like: "Fãs também gostam de",
looking_up_lyrics: "Procurando a letra…",
play_a_track_for_lyrics: "Toque uma faixa para ver sua letra.",
lyrics_selectable: "Selecionável",
lyrics_synced: "Sincronizada",
lyrics_plain: "Simples",
playlist_not_found: "Playlist não encontrada",
add_local: "Adicionar local",
downloaded_tracks: "Faixas baixadas",
no_downloaded_tracks: "Nenhuma faixa baixada",
ctx_play: "Tocar",
ctx_play_local: "Tocar local",
ctx_edit: "Editar",
ctx_go_to_artist: "Ir para o artista",
ctx_add_to_playlist: "Adicionar à playlist",
ctx_download: "Baixar",
ctx_song_radio: "Rádio da música",
ctx_artist_radio: "Rádio do artista",
ctx_remove_from_queue: "Remover da fila",
ctx_remove_from_playlist: "Remover da playlist",
sub_play_via: "Tocar via",
sub_download_from: "Baixar de",
sub_via: "Via",
sub_on: "Em",
via_search_suffix: "(busca)",
current: "(atual)",
select: "selecionar",
find: "Buscar",
finding: "Procurando…",
found_on: |p| format!("Encontrado em {p}"),
not_linked: "Não vinculado",
providers: "Provedores",
no_provider_data: "Esta faixa não tem dados de provedor.",
save: "Salvar",
cancel: "Cancelar",
edit_track: "Editar faixa",
lbl_title: "Título",
lbl_artist: "Artista",
ph_track_title: "Título da faixa",
ph_track_artist: "Artista da faixa",
delete: "Excluir",
delete_playlist_q: "Excluir playlist?",
tracks_wont_be_deleted: "As faixas não serão excluídas.",
lbl_id: "Id",
lbl_url: "Url",
lbl_artist_id: "Id do artista",
lbl_duration_secs: "Duração (em segundos)",
lbl_thumbnail: "Miniatura",
lbl_album: "Álbum",
sec_playback: "Reprodução",
sec_storage: "Armazenamento",
sec_history: "Histórico",
sec_appearance: "Aparência",
sec_dependencies: "Dependências",
theme_lbl: "Tema",
language_lbl: "Idioma",
default_provider_lbl: "Provedor padrão de streaming e download",
normalize_volume_lbl: "Normalizar o volume entre faixas",
download_dir_lbl: "Pasta de download",
cache_size_lbl: "Tamanho máximo do cache de streaming (MB)",
hist_rows_lbl: "Linhas do histórico de busca exibidas",
hist_entries_lbl: "Entradas do histórico de busca mantidas",
recent_kept_lbl: "Faixas reproduzidas recentemente mantidas",
reset_defaults: "Restaurar padrões",
find_in_list: "Buscar na lista…",
scope_songs: "Músicas",
scope_videos: "Vídeos",
scope_artists: "Artistas",
scope_albums: "Álbuns",
scope_playlists: "Playlists",
radio_word_song: "música",
radio_word_artist: "artista",
lyrics_copied: "Letra copiada para a área de transferência",
saved_to_library: "Salvo na biblioteca",
removed_from_library: "Removido da biblioteca",
no_lyrics_found: "Nenhuma letra encontrada para esta faixa.",
select_playlist_drop: "Selecione uma playlist para soltar as faixas",
reordered_playlist: "Playlist reordenada",
n_saved: |n| format!("{n} salvo{}", if n == 1 { "" } else { "s" }),
n_plays: |n| format!("{} reproduções", crate::util::format_count(n)),
search_placeholder: |p| match p {
ProviderId::YouTube => "Buscar no YouTube Music…".into(),
ProviderId::Local => "Buscar…".into(),
other => format!("Buscar em {}…", other.label()),
},
added: |n| format!("Adicionadas {}", pt_tracks(n)),
added_to: |n, to| format!("Adicionadas {} a {to}", pt_tracks(n)),
removed_n: |n| format!("Removidas {}", pt_tracks(n)),
removed_from: |n, from| format!("Removidas {} de {from}", pt_tracks(n)),
pasted_into: |n, into| format!("Coladas {} em {into}", pt_tracks(n)),
saved_title: |t| format!("Salva \"{t}\" na biblioteca"),
playlist_created: |n| format!("Playlist \"{n}\" criada"),
added_local: |n| format!("Adicionadas {} (selecione uma playlist para organizar)", pt_tracks(n)),
downloading_n: |n| format!("Baixando {}…", pt_tracks(n)),
resolving_on: |title, p| format!("Resolvendo \"{title}\" em {p}…"),
provider_no_radio: |p| format!("{p} não suporta rádio"),
generating_radio_for: |w, name| format!("Gerando rádio para {w}: {name}…"),
could_not_find_on: |name, p| format!("Não foi possível encontrar \"{name}\" em {p}"),
opening: |l| format!("Abrindo: {l}…"),
opening_artist: |name| format!("Abrindo artista: {name}…"),
download_complete: |path| format!("Download concluído! Salvo em {path}"),
failed_resolve_on: |title, p, e| format!("Falha ao resolver \"{title}\" em {p}: {e}"),
couldnt_load: |e| format!("Não foi possível carregar: {e}"),
couldnt_load_lyrics: |e| format!("Não foi possível carregar a letra: {e}"),
search_failed: |e| format!("Falha na busca: {e}"),
radio_label: |w, name| format!("Rádio ({w}): {name}"),
ctx_add_to_playlist_n: |n| format!("Adicionar {} à playlist", pt_tracks(n)),
ctx_download_n: |n| format!("Baixar {}", pt_tracks(n)),
ctx_remove_from_queue_n: |n| format!("Remover {} da fila", pt_tracks(n)),
ctx_remove_from_playlist_n: |n| format!("Remover {} da playlist", pt_tracks(n)),
import_playlist: "Importar playlist",
import_method_native: "Nativo",
import_method_filelist: "Lista de arquivos",
import_method_csv: "CSV",
import_native_hint: "Importa playlists de um arquivo playlists.json.",
import_csv_name_col: "Coluna de nome",
import_csv_artist_col: "Coluna de artista",
import_csv_album_col: "Coluna de álbum",
import_csv_preset: "Predefinição",
import_csv_preset_default: "Padrão",
import_csv_preset_exportify: "Exportify",
import_csv_exportify_note: "Compatível com playlists do Spotify exportadas de https://exportify.net/.",
import_pattern_lbl: "Padrão de nome de arquivo",
import_playlist_name: "Nome da playlist",
import_add_pattern: "Adicionar padrão",
import_select_file: "Selecionar arquivo",
import_select_folder: "Selecionar pasta",
import_pattern_conflict: |a, b| {
format!(
"Os padrões \"{a}\" e \"{b}\" podem corresponder ao mesmo arquivo com campos conflitantes. Remova ou corrija um."
)
},
import_playlists_imported: |n| format!("Importadas {}", pt_tracks(n)),
import_imported_into: |n, into| format!("Importadas {} em {}", pt_tracks(n), into),
import_no_tracks: "Nenhuma faixa encontrada para importar.",
import_no_match: "Nenhum arquivo corresponde aos padrões.",
import_bad_file: "Não foi possível ler o arquivo selecionado.",
deps_title: "Dependências ausentes",
deps_intro: "Algumas ferramentas usadas pelo app estão ausentes. Selecione quais instalar ou descarte para continuar (a busca e o streaming podem não funcionar até que estejam presentes).",
deps_install: "Instalar",
deps_install_selected: "Instalar selecionadas",
deps_discard: "Descartar",
deps_installing: "Instalando…",
deps_installed: "Instalado",
deps_failed: "Falhou",
deps_installed_toast: "Dependências selecionadas instaladas.",
deps_yt_dlp_desc: "Transmite e baixa áudio (obrigatório)",
deps_ytmusicapi_desc: "Busca no YouTube Music (opcional, usa yt-dlp como fallback)",
deps_python3_desc: "Requerido pelo ytmusicapi (busca no YouTube Music)",
deps_ytmusicapi_requires_python: "Requer Python 3 (instale primeiro)",
deps_play_requires_yt_dlp: "A reprodução precisa do yt-dlp; instale-o na caixa inicial para tocar isto.",
deps_source_not_playable: "Esta fonte não pode ser reproduzida.",
deps_found_section_title: "Encontradas no seu sistema",
deps_found_section_intro: "Estas já estão disponíveis. Marque alguma para instalar uma cópia gerenciada pelo app (a cópia do app tem prioridade sobre a do sistema).",
deps_found_on_system: "Encontradas no seu sistema",
deps_managed_by_app: "Instaladas (gerenciadas pelo app)",
deps_not_installed: "Não instaladas",
deps_delete: "Excluir",
deps_deleting: "Excluindo…",
deps_deleted: "Excluídas",
deps_delete_failed: "Falha ao excluir",
sec_updates: "Atualizações",
check_for_updates: "Verificar atualizações",
checking_for_updates: "Verificando atualizações…",
up_to_date: "Atualizado",
current_version: |v| format!("Versão {v}"),
update_available: |v| format!("Versão {v} disponível. Vá para Configurações para atualizar."),
update_now: "Atualizar agora",
updating: "Atualizando…",
update_applied: |v| format!("Atualizado para {v}. Reiniciando…"),
package_managed: "Não é possível atualizar automaticamente (sem permissão de escrita no diretório do aplicativo). Se instalado via gerenciador de pacotes, use-o para atualizar.",
update_failed: |e| format!("Falha na atualização: {e}"),
};
fn pt_tracks(n: usize) -> String {
if n == 1 {
"1 faixa".into()
} else {
format!("{n} faixas")
}
}