diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 308d9318..754b3e1a 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -1,30 +1,32 @@ { "common": { - "loading": "A Carregar...", + "loading": "A carregar...", "cancel": "Cancelar", "save": "Guardar", - "delete": "Excluir", + "delete": "Eliminar", "edit": "Editar", "search": "Pesquisar", "error": "Erro", "success": "Sucesso", "ok": "OK", "unknown": "Desconhecido", - "retry": "Tentar Novamente", - "try_again": "Tentar Novamente", + "retry": "Repetir", + "try_again": "Tentar novamente", "go_back": "Voltar", - "settings": "Configurações", + "settings": "Definições", "close": "Fechar", - "show_more": "Mostrar Mais", - "show_less": "Mostrar Menos", - "load_more": "Carregar Mais", + "enable": "Ativar", + "disable": "Desativar", + "show_more": "Mostrar mais", + "show_less": "Mostrar menos", + "load_more": "Carregar mais", "unknown_date": "Data desconhecida", - "anonymous_user": "Usuário Anónimo", + "anonymous_user": "Utilizador Anónimo", "time": { - "now": "Agora", - "minutes_ago": "{{count}}m atrás", - "hours_ago": "{{count}}h atrás", - "days_ago": "{{count}}d atrás" + "now": "Agora mesmo", + "minutes_ago": "há {{count}}m", + "hours_ago": "há {{count}}h", + "days_ago": "há {{count}}d" }, "days_short": { "sun": "Dom", @@ -45,169 +47,169 @@ "channels": "Canais" }, "movies": "Filmes", - "tv_shows": "Séries de TV", - "load_more_catalogs": "Carregar Mais Catálogos", + "tv_shows": "Séries TV", + "load_more_catalogs": "Carregar mais catálogos", "no_content": "Nenhum conteúdo disponível", - "add_catalogs": "Adicionar Catálogos", - "sign_in_available": "Login Disponível", - "sign_in_desc": "Podes entrar a qualquer momento em Configurações → Conta", - "view_all": "Ver Tudo", - "this_week": "Esta Semana", - "upcoming": "Próximos", - "recently_released": "Lançamentos Recentes", - "no_scheduled_episodes": "Série sem episódios agendados", + "add_catalogs": "Adicionar catálogos", + "sign_in_available": "Início de sessão disponível", + "sign_in_desc": "Podes iniciar sessão a qualquer momento em Definições → Conta", + "view_all": "Ver tudo", + "this_week": "Esta semana", + "upcoming": "Próximos lançamentos", + "recently_released": "Lançados recentemente", + "no_scheduled_episodes": "Séries sem episódios agendados", "check_back_later": "Volta mais tarde", - "continue_watching": "Continuar a Ver", - "up_next": "A Seguir", - "up_next_caps": "A SEGUIR", + "continue_watching": "Continuar a ver", + "up_next": "Seguinte", + "up_next_caps": "SEGUINTE", "released": "Lançado", "new": "Novo", - "tba": "A confirmar", - "new_episodes": "{{count}} Novos Episódios", + "tba": "A anunciar", + "new_episodes": "{{count}} novos episódios", "season_short": "T{{season}}", "episode_short": "E{{episode}}", "season": "Temporada {{season}}", "episode": "Episódio {{episode}}", "movie": "Filme", "series": "Série", - "tv_show": "Série de TV", - "percent_watched": "{{percent}}% assistido", - "view_details": "Ver Detalhes", + "tv_show": "Série TV", + "percent_watched": "{{percent}}% visto", + "view_details": "Ver detalhes", "remove": "Remover", "play": "Reproduzir", - "play_now": "Reproduzir Agora", - "resume": "Continuar", - "info": "Info", - "more_info": "Mais Info", - "my_list": "A Minha Lista", + "play_now": "Reproduzir agora", + "resume": "Retomar", + "info": "Informação", + "more_info": "Mais info", + "my_list": "A minha lista", "save": "Guardar", "saved": "Guardado", - "retry": "Tentar Novamente", + "retry": "Repetir", "install_addons": "Instalar Addons", - "settings": "Configurações", - "no_featured_content": "Nenhum Conteúdo em Destaque", - "couldnt_load_featured": "Não foi possível carregar o conteúdo em destaque", - "no_featured_desc": "Instala addons com catálogos ou altera a fonte de conteúdo nas configurações.", - "load_error_desc": "Houve um problema ao pesquisar o conteúdo em destaque. Verifica a tua conexão e tenta novamente.", - "no_featured_available": "Nenhum conteúdo em destaque disponível", + "settings": "Definições", + "no_featured_content": "Sem conteúdo de destaque", + "couldnt_load_featured": "Não foi possível carregar o conteúdo de destaque", + "no_featured_desc": "Instala addons com catálogos ou altera a fonte de conteúdo nas definições.", + "load_error_desc": "Ocorreu um problema ao obter o conteúdo de destaque. Verifica a ligação e tenta novamente.", + "no_featured_available": "Nenhum conteúdo de destaque disponível", "no_description": "Nenhuma descrição disponível" }, "navigation": { "home": "Início", "library": "Biblioteca", "search": "Pesquisar", - "downloads": "Downloads", - "settings": "Configurações" + "downloads": "Transferências", + "settings": "Definições" }, "search": { - "title": "Procurar", - "recent_searches": "Pesquisas Recentes", + "title": "Pesquisar", + "recent_searches": "Pesquisas recentes", "discover": "Descobrir", "movies": "Filmes", - "tv_shows": "Séries", - "select_catalog": "Selecionar Catálogo", - "all_genres": "Todos os Géneros", - "discovering": "Descobrir conteúdo...", - "show_more": "Mostrar Mais ({{count}})", + "tv_shows": "Séries TV", + "select_catalog": "Selecionar catálogo", + "all_genres": "Todos os géneros", + "discovering": "A descobrir conteúdo...", + "show_more": "Mostrar mais ({{count}})", "no_content_found": "Nenhum conteúdo encontrado", "try_different": "Tenta um género ou catálogo diferente", "select_catalog_desc": "Seleciona um catálogo para descobrir", - "tap_catalog_desc": "Toca no botão de catálogo acima para começar", - "placeholder": "Procura filmes, séries...", - "keep_typing": "Continua a digitar...", - "type_characters": "Digita pelo menos 2 caracteres para pesquisar", + "tap_catalog_desc": "Toca no catálogo acima para começar", + "placeholder": "Pesquisar filmes, séries...", + "keep_typing": "Continua a escrever...", + "type_characters": "Escreve pelo menos 2 caracteres para pesquisar", "no_results": "Nenhum resultado encontrado", "try_keywords": "Tenta palavras-chave diferentes ou verifica a ortografia", - "select_type": "Selecionar Tipo", - "browse_movies": "Navegar catálogos de filmes", - "browse_tv": "Navegar catálogos de séries", - "select_genre": "Selecionar Género", + "select_type": "Selecionar tipo", + "browse_movies": "Explorar catálogos de filmes", + "browse_tv": "Explorar catálogos de séries", + "select_genre": "Selecionar género", "show_all_content": "Mostrar todo o conteúdo", "genres_count": "{{count}} géneros" }, "library": { "title": "Biblioteca", - "watched": "Assistidos", + "watched": "Vistos", "continue": "Continuar", - "watchlist": "Lista", + "watchlist": "Lista de seguimento", "collection": "Coleção", - "rated": "Avaliado", + "rated": "Classificados", "items": "itens", "trakt_collections": "Coleções Trakt", "trakt_collection": "Coleção Trakt", - "no_trakt": "Nenhuma coleção Trakt", - "no_trakt_desc": "As tuas coleções do Trakt aparecerão aqui quando começares a usar o Trakt", - "load_collections": "Carregar Coleções", - "empty_folder": "Nenhum conteúdo em {{folder}}", + "no_trakt": "Sem coleções Trakt", + "no_trakt_desc": "As tuas coleções Trakt aparecerão aqui quando começares a usar o Trakt", + "load_collections": "Carregar coleções", + "empty_folder": "Sem conteúdo em {{folder}}", "empty_folder_desc": "Esta coleção está vazia", "refresh": "Atualizar", - "no_movies": "Nenhum filme ainda", - "no_series": "Nenhuma série ainda", - "no_content": "Nenhum conteúdo ainda", - "add_content_desc": "Adiciona algum conteúdo à tua biblioteca para vê-lo aqui", - "find_something": "Encontrar algo para assistir", - "removed_from_library": "Removido da Biblioteca", - "item_removed": "Item removido da tua Biblioteca", - "failed_update_library": "Falha ao atualizar Biblioteca", + "no_movies": "Ainda sem filmes", + "no_series": "Ainda sem séries", + "no_content": "Ainda sem conteúdo", + "add_content_desc": "Adiciona conteúdo à biblioteca para o veres aqui", + "find_something": "Procurar algo para ver", + "removed_from_library": "Removido da biblioteca", + "item_removed": "Item removido da tua biblioteca local", + "failed_update_library": "Falha ao atualizar a biblioteca", "unable_remove": "Não foi possível remover o item da biblioteca", - "marked_watched": "Marcado como Assistido", - "marked_unwatched": "Marcado como Não Assistido", - "item_marked_watched": "Item marcado como Assistido", - "item_marked_unwatched": "Item marcado como Não Assistido", - "failed_update_watched": "Falha ao atualizar estado", - "unable_update_watched": "Não foi possível atualizar o estado", - "added_to_library": "Adicionado à Biblioteca", + "marked_watched": "Marcado como visto", + "marked_unwatched": "Marcado como não visto", + "item_marked_watched": "Item marcado como visto", + "item_marked_unwatched": "Item marcado como não visto", + "failed_update_watched": "Falha ao atualizar o estado de visualização", + "unable_update_watched": "Não foi possível atualizar o estado de visualização", + "added_to_library": "Adicionado à biblioteca", "item_added": "Adicionado à tua biblioteca local", - "add_to_library": "Adicionar à Biblioteca", - "remove_from_library": "Remover da Biblioteca", - "mark_watched": "Marcar como Assistido", - "mark_unwatched": "Marcar como Não Assistido", + "add_to_library": "Adicionar à biblioteca", + "remove_from_library": "Remover da biblioteca", + "mark_watched": "Marcar como visto", + "mark_unwatched": "Marcar como não visto", "share": "Partilhar", - "add_to_watchlist": "Adicionar à Lista Trakt", - "remove_from_watchlist": "Remover da Lista Trakt", - "added_to_watchlist": "Adicionado à Lista", - "added_to_watchlist_desc": "Adicionado à tua lista Trakt", - "removed_from_watchlist": "Removido da Lista", - "removed_from_watchlist_desc": "Removido da tua lista Trakt", + "add_to_watchlist": "Adicionar à Watchlist Trakt", + "remove_from_watchlist": "Remover da Watchlist Trakt", + "added_to_watchlist": "Adicionado à Watchlist", + "added_to_watchlist_desc": "Adicionado à tua lista de seguimento do Trakt", + "removed_from_watchlist": "Removido da Watchlist", + "removed_from_watchlist_desc": "Removido da tua lista de seguimento do Trakt", "add_to_collection": "Adicionar à Coleção Trakt", "remove_from_collection": "Remover da Coleção Trakt", "added_to_collection": "Adicionado à Coleção", - "added_to_collection_desc": "Adicionado à tua coleção Trakt", + "added_to_collection_desc": "Adicionado à tua coleção do Trakt", "removed_from_collection": "Removido da Coleção", - "removed_from_collection_desc": "Removido da tua coleção Trakt" + "removed_from_collection_desc": "Removido da tua coleção do Trakt" }, "metadata": { "unable_to_load": "Não foi possível carregar o conteúdo", - "error_code": "Código de Erro: {{code}}", + "error_code": "Código de erro: {{code}}", "content_not_found": "Conteúdo não encontrado", "content_not_found_desc": "Este conteúdo não existe ou pode ter sido removido.", - "server_error": "Erro do servidor", - "server_error_desc": "O servidor está temporariamente indisponível. Por favor, tenta novamente mais tarde.", - "bad_gateway": "Gateway inválido", - "bad_gateway_desc": "O servidor está com problemas. Por favor, tenta novamente mais tarde.", + "server_error": "Erro de servidor", + "server_error_desc": "O servidor está temporariamente indisponível. Tenta novamente mais tarde.", + "bad_gateway": "Bad gateway", + "bad_gateway_desc": "O servidor está com problemas. Tenta novamente mais tarde.", "service_unavailable": "Serviço indisponível", - "service_unavailable_desc": "O serviço está em manutenção. Por favor, tenta novamente mais tarde.", - "too_many_requests": "Muitas requisições", - "too_many_requests_desc": "Estás a fazer muitas requisições. Por favor, aguarda um momento e tenta novamente.", - "request_timeout": "Tempo limite da requisição", - "request_timeout_desc": "A requisição demorou muito. Por favor, tenta novamente.", + "service_unavailable_desc": "O serviço está em manutenção. Tenta novamente mais tarde.", + "too_many_requests": "Demasiados pedidos", + "too_many_requests_desc": "Estás a fazer demasiados pedidos. Aguarda um momento e tenta novamente.", + "request_timeout": "Tempo de pedido esgotado", + "request_timeout_desc": "O pedido demorou demasiado tempo. Tenta novamente.", "network_error": "Erro de rede", - "network_error_desc": "Por favor, verifica a tua conexão com a internet e tenta novamente.", + "network_error_desc": "Verifica a tua ligação à internet e tenta novamente.", "auth_error": "Erro de autenticação", - "auth_error_desc": "Por favor, verifica as configurações da tua conta e tenta novamente.", + "auth_error_desc": "Verifica as definições da tua conta e tenta novamente.", "access_denied": "Acesso negado", - "access_denied_desc": "Não tens permissão para acessar a este conteúdo.", - "connection_error": "Erro de conexão", + "access_denied_desc": "Não tens permissão para aceder a este conteúdo.", + "connection_error": "Erro de ligação", "streams_unavailable": "Streams indisponíveis", - "streams_unavailable_desc": "Fontes de streaming estão temporariamente indisponíveis. Por favor, tenta novamente mais tarde.", + "streams_unavailable_desc": "As fontes de streaming estão indisponíveis. Tenta novamente mais tarde.", "unknown_error": "Erro desconhecido", - "something_went_wrong": "Algo correu mal. Por favor, tenta novamente.", + "something_went_wrong": "Algo correu mal. Tenta novamente.", "cast": "Elenco", - "more_like_this": "Mais Como Este", + "more_like_this": "Mais como este", "collection": "Coleção", "episodes": "Episódios", "seasons": "Temporadas", - "posters": "Pósteres", + "posters": "Cartazes", "banners": "Banners", "specials": "Especiais", "season_number": "Temporada {{number}}", @@ -218,423 +220,429 @@ "episodes_not_released": "Os episódios podem ainda não ter sido lançados", "no_description": "Nenhuma descrição disponível", "episode_label": "EPISÓDIO {{number}}", - "watch_again": "Assistir Novamente", + "watch_again": "Ver novamente", "completed": "Concluído", "play_episode": "Reproduzir T{{season}}E{{episode}}", "play": "Reproduzir", - "watched": "Assistido", - "watched_on_trakt": "Assistido no Trakt", - "synced_with_trakt": "Sincronizado com Trakt", + "watched": "Visto", + "watched_on_trakt": "Visto no Trakt", + "synced_with_trakt": "Sincronizado com o Trakt", "saved": "Guardado", "director": "Realizador", "directors": "Realizadores", "creator": "Criador", "creators": "Criadores", "production": "Produção", - "network": "Emissora", - "mark_watched": "Marcar como Assistido", - "mark_unwatched": "Marcar como Não Assistido", - "marking": "A Marcar...", - "removing": "A Remover...", + "network": "Rede/Canal", + "mark_watched": "Marcar como visto", + "mark_unwatched": "Marcar como não visto", + "marking": "A marcar...", + "removing": "A remover...", "unmark_season": "Desmarcar Temporada {{season}}", "mark_season": "Marcar Temporada {{season}}", - "resume": "Continuar", + "resume": "Retomar", "spoiler_warning": "Aviso de Spoiler", - "spoiler_warning_desc": "Este comentário contém spoilers. Tens a certeza que queres revelá-lo?", + "spoiler_warning_desc": "Este comentário contém spoilers. Tens a certeza de que o queres revelar?", "cancel": "Cancelar", "reveal_spoilers": "Revelar Spoilers", "movie_details": "Detalhes do Filme", - "show_details": "Detalhes da Série", - "tagline": "Tagline", + "show_details": "Mostrar detalhes", + "tagline": "Slogan", "status": "Estado", - "release_date": "Data de Lançamento", + "release_date": "Data de lançamento", "runtime": "Duração", "budget": "Orçamento", - "revenue": "Bilheteria", - "origin_country": "País de Origem", - "original_language": "Idioma Original", - "first_air_date": "Primeira Exibição", - "last_air_date": "Última Exibição", - "total_episodes": "Total de Episódios", - "episode_runtime": "Duração do Episódio", - "created_by": "Criado Por", - "backdrop_gallery": "Galeria de Imagens", - "loading_episodes": "A Carregar Episódios...", + "revenue": "Receita", + "origin_country": "País de origem", + "original_language": "Idioma original", + "first_air_date": "Primeira emissão", + "last_air_date": "Última emissão", + "total_episodes": "Total de episódios", + "episode_runtime": "Duração do episódio", + "created_by": "Criado por", + "backdrop_gallery": "Galeria de fundos", + "loading_episodes": "A carregar episódios...", "no_episodes_available": "Nenhum episódio disponível", "play_next": "Reproduzir T{{season}}E{{episode}}", - "play_next_episode": "Reproduzir Próximo Episódio", + "play_next_episode": "Reproduzir próximo episódio", "save": "Guardar", - "percent_watched": "{{percent}}% assistido", - "percent_watched_trakt": "{{percent}}% assistido ({{traktPercent}}% no Trakt)", - "synced_with_trakt_progress": "Sincronizado com o Trakt", + "percent_watched": "{{percent}}% visto", + "percent_watched_trakt": "{{percent}}% visto ({{traktPercent}}% no Trakt)", + "synced_with_trakt_progress": "Sincronizado com o progresso do Trakt", "using_trakt_progress": "A usar progresso do Trakt", - "added_to_collection_hero": "Adicionado à Coleção", - "added_to_collection_desc_hero": "Adicionado à tua coleção Trakt", - "removed_from_collection_hero": "Removido da Coleção", - "removed_from_collection_desc_hero": "Removido da tua coleção Trakt", - "mark_as_watched": "Marcar como Assistido", - "mark_as_unwatched": "Marcar como Não Assistido" + "added_to_collection_hero": "Adicionado à coleção", + "added_to_collection_desc_hero": "Adicionado à tua coleção do Trakt", + "removed_from_collection_hero": "Removido da coleção", + "removed_from_collection_desc_hero": "Removido da tua coleção do Trakt", + "mark_as_watched": "Marcar como visto", + "mark_as_unwatched": "Marcar como não visto" }, "cast": { "biography": "Biografia", - "known_for": "Conhecido Por", - "personal_info": "Informações Pessoais", - "born_in": "Nascido em {{place}}", + "known_for": "Conhecido por", + "personal_info": "Informação pessoal", + "born_in": "Natural de {{place}}", "filmography": "Filmografia", - "also_known_as": "Também conhecido(a) como", + "also_known_as": "Também conhecido como", + "no_info_available": "Nenhuma informação adicional disponível", "as_character": "como {{character}}", "loading_details": "A carregar detalhes...", "years_old": "{{age}} anos", - "view_filmography": "Ver Filmografia", + "view_filmography": "Ver filmografia", "filter": "Filtrar", - "sort_by": "Ordenar Por", - "sort_popular": "Popular", - "sort_latest": "Mais Recente", - "sort_upcoming": "Próximos Lançamentos", - "upcoming_badge": "EM BREVE", - "coming_soon": "Em Breve", + "sort_by": "Ordenar por", + "sort_popular": "Popularidade", + "sort_latest": "Mais recente", + "sort_upcoming": "Próximos", + "upcoming_badge": "BREVEMENTE", + "coming_soon": "Brevemente", "filmography_count": "Filmografia • {{count}} títulos", - "loading_filmography": "A Carregar filmografia...", - "load_more_remaining": "Carregar Mais ({{count}} restantes)", + "loading_filmography": "A carregar filmografia...", + "load_more_remaining": "Carregar mais (faltam {{count}})", "alert_error_title": "Erro", - "alert_error_message": "Não foi possível carregar \"{{title}}\". Por favor, tenta novamente mais tarde.", + "alert_error_message": "Não foi possível carregar \"{{title}}\". Tenta novamente mais tarde.", "alert_ok": "OK", "no_upcoming": "Nenhum lançamento futuro disponível para este ator", "no_content": "Nenhum conteúdo disponível para este ator", "no_movies": "Nenhum filme disponível para este ator", - "no_tv": "Nenhuma série disponível para este ator", - "no_info_available": "Nenhuma informação adicional disponível" + "no_tv": "Nenhuma série disponível para este ator" }, "comments": { - "title": "Comentários do Trakt", + "title": "Comentários Trakt", "spoiler_warning": "⚠️ Este comentário contém spoilers. Toca para revelar.", "spoiler": "Spoiler", "contains_spoilers": "Contém spoilers", "reveal": "Revelar", "vip": "VIP", "unavailable": "Comentários indisponíveis", - "no_comments": "Ainda não há comentários no Trakt", - "not_in_database": "Este conteúdo pode ainda não estar no banco de dados do Trakt", + "no_comments": "Ainda sem comentários no Trakt", + "not_in_database": "Este conteúdo pode ainda não estar na base de dados do Trakt", "check_trakt": "Ver no Trakt" }, "trailers": { "title": "Trailers", - "official_trailers": "Trailers Oficiais", - "official_trailer": "Trailer Oficial", + "official_trailers": "Trailers oficiais", + "official_trailer": "Trailer oficial", "teasers": "Teasers", "teaser": "Teaser", - "clips_scenes": "Clipes e Cenas", - "clip": "Clipe", + "clips_scenes": "Clips e Cenas", + "clip": "Clip", "featurettes": "Featurettes", "featurette": "Featurette", "behind_the_scenes": "Bastidores", "no_trailers": "Nenhum trailer disponível", - "unavailable": "Trailer Indisponível", - "unavailable_desc": "Este trailer não pôde ser carregado no momento. Por favor, tenta novamente mais tarde.", - "unable_to_play": "Não foi possível reproduzir o trailer. Por favor, tenta novamente.", - "watch_on_youtube": "Assistir no YouTube" + "unavailable": "Trailer indisponível", + "unavailable_desc": "Não foi possível carregar este trailer agora. Tenta novamente mais tarde.", + "unable_to_play": "Não foi possível reproduzir o trailer. Tenta novamente.", + "watch_on_youtube": "Ver no YouTube" }, "catalog": { "no_content_found": "Nenhum conteúdo encontrado", "no_content_filters": "Nenhum conteúdo encontrado para os filtros selecionados", - "loading_content": "A Carregar conteúdo...", + "loading_content": "A carregar conteúdo...", "back": "Voltar", - "in_theaters": "Em Cartaz", + "in_theaters": "Nos cinemas", "all": "Todos", "failed_tmdb": "Falha ao carregar conteúdo do TMDB", "movies": "Filmes", - "tv_shows": "Séries", + "tv_shows": "Séries TV", "channels": "Canais" }, "streams": { - "back_to_episodes": "Voltar aos Episódios", - "back_to_info": "Voltar às Informações", - "fetching_from": "À Procura de:", + "back_to_episodes": "Voltar aos episódios", + "back_to_info": "Voltar à info", + "fetching_from": "A obter de:", "no_sources_available": "Nenhuma fonte de streaming disponível", - "add_sources_desc": "Por favor, adiciona fontes de streaming nas configurações", - "add_sources": "Adicionar Fontes", + "add_sources_desc": "Adiciona fontes de streaming nas definições", + "add_sources": "Adicionar fontes", "finding_streams": "A procurar streams disponíveis...", "finding_best_stream": "A procurar a melhor stream para reprodução automática...", - "still_fetching": "Ainda a pesquisar streams…", - "no_streams_available": "Nenhum stream disponível", - "starting_best_stream": "A reproduzir a melhor stream...", + "still_fetching": "Ainda a procurar streams...", + "no_streams_available": "Nenhuma stream disponível", + "starting_best_stream": "A iniciar a melhor stream...", "loading_more_sources": "A carregar mais fontes..." }, "player_ui": { "via": "via {{name}}", - "audio_tracks": "Faixas de Áudio", + "audio_tracks": "Faixas de áudio", "no_audio_tracks": "Nenhuma faixa de áudio disponível", - "playback_speed": "Velocidade de Reprodução", - "on_hold": "Ao Segurar", - "playback_error": "Erro de Reprodução", + "playback_speed": "Velocidade de reprodução", + "on_hold": "Em espera", + "playback_error": "Erro de reprodução", "unknown_error": "Ocorreu um erro desconhecido durante a reprodução.", "copy_error": "Copiar detalhes do erro", "copied_to_clipboard": "Copiado para a área de transferência", - "dismiss": "Dispensar", - "continue_watching": "Continuar a Assistir", + "dismiss": "Fechar", + "continue_watching": "Continuar a ver", "start_over": "Recomeçar", - "resume": "Continuar", - "change_source": "Mudar Fonte", - "switching_source": "A trocar fonte...", + "resume": "Retomar", + "change_source": "Alterar fonte", + "switching_source": "A mudar de fonte...", "no_sources_found": "Nenhuma fonte encontrada", "sources": "Fontes", "finding_sources": "A procurar fontes...", - "unknown_source": "Fonte Desconhecida", - "sources_limited": "As fontes podem ser limitadas devido a erros do provedor.", + "unknown_source": "Fonte desconhecida", + "sources_limited": "As fontes podem estar limitadas devido a erros do fornecedor.", "episodes": "Episódios", "specials": "Especiais", "season": "Temporada {{season}}", - "stream": "Reproduzir {{number}}", + "stream": "Stream {{number}}", "subtitles": "Legendas", "built_in": "Integradas", "addons": "Addons", "style": "Estilo", - "none": "Nenhuma", - "search_online_subtitles": "Procurar Legendas Online", + "none": "Nenhum", + "search_online_subtitles": "Procurar legendas online", "preview": "Pré-visualização", - "quick_presets": "Predefinições Rápidas", - "default": "Padrão", + "quick_presets": "Predefinições rápidas", + "default": "Predefinido", "yellow": "Amarelo", - "high_contrast": "Alto Contraste", + "high_contrast": "Alto contraste", "large": "Grande", - "core": "Principal", - "font_size": "Tamanho da Fonte", - "show_background": "Mostrar Fundo", + "core": "Base", + "font_size": "Tamanho da letra", + "show_background": "Mostrar fundo", "advanced": "Avançado", "position": "Posição", - "text_color": "Cor do Texto", + "text_color": "Cor do texto", "align": "Alinhamento", - "bottom_offset": "Deslocamento Inferior", - "background_opacity": "Opacidade do Fundo", - "text_shadow": "Sombra do Texto", + "bottom_offset": "Ajuste inferior", + "background_opacity": "Opacidade do fundo", + "text_shadow": "Sombra do texto", "on": "Ligado", "off": "Desligado", - "outline_color": "Cor do Contorno", + "outline_color": "Cor do contorno", "outline": "Contorno", - "outline_width": "Largura do Contorno", - "letter_spacing": "Espaçamento de Letras", - "line_height": "Altura da Linha", - "timing_offset": "Ajuste do Tempo", - "visual_sync": "Sincronização Visual", - "timing_hint": "Ajusta as legendas para antes (-) ou depois (+) para sincronizar.", - "reset_defaults": "Redefinir padrões" + "outline_width": "Largura do contorno", + "letter_spacing": "Espaçamento entre letras", + "line_height": "Altura da linha", + "timing_offset": "Ajuste de tempo (s)", + "visual_sync": "Sincronização visual", + "timing_hint": "Ajusta as legendas para mais cedo (-) ou mais tarde (+) para sincronizar.", + "reset_defaults": "Repor predefinições", + "mark_intro_start": "Marcar início da intro", + "mark_intro_end": "Marcar fim da intro", + "intro_start_marked": "Início da intro marcado", + "intro_submitted": "Intro enviada com sucesso", + "intro_submit_failed": "Falha ao enviar intro" }, "downloads": { - "title": "Downloads", - "no_downloads": "Nenhum Download Ainda", - "no_downloads_desc": "Conteúdo descarregado aparecerá aqui para visualização offline", - "explore": "Explorar Conteúdo", - "path_copied": "Caminho Copiado", - "path_copied_desc": "Caminho do arquivo local copiado para a área de transferência", + "title": "Transferências", + "no_downloads": "Ainda sem transferências", + "no_downloads_desc": "O conteúdo transferido aparecerá aqui para veres offline", + "explore": "Explorar conteúdo", + "path_copied": "Caminho copiado", + "path_copied_desc": "Caminho do ficheiro local copiado para a área de transferência", "copied": "Copiado", - "incomplete": "Download Incompleto", - "incomplete_desc": "O download ainda não está completo", - "not_available": "Não Disponível", - "not_available_desc": "O caminho do arquivo local está disponível apenas após a conclusão do download.", - "status_downloading": "A descarregar", + "incomplete": "Transferência incompleta", + "incomplete_desc": "A transferência ainda não terminou", + "not_available": "Indisponível", + "not_available_desc": "O caminho do ficheiro local só fica disponível após a conclusão da transferência.", + "status_downloading": "A transferir", "status_completed": "Concluído", - "status_paused": "Em pausa", + "status_paused": "Pausado", "status_error": "Erro", - "status_queued": "Na Fila", + "status_queued": "Em fila", "status_unknown": "Desconhecido", - "provider": "Provedor", + "provider": "Fornecedor", "streaming_playlist_warning": "Pode não reproduzir - playlist de streaming", "remaining": "restantes", - "not_ready": "Download não pronto", - "not_ready_desc": "Por favor aguarda até que o download seja concluído.", - "filter_all": "Todos", - "filter_active": "Ativos", - "filter_done": "Concluídos", - "filter_paused": "Em pausa", - "no_filter_results": "Nenhum download {{filter}}", + "not_ready": "Transferência não pronta", + "not_ready_desc": "Aguarda até que a transferência termine.", + "filter_all": "Tudo", + "filter_active": "Ativas", + "filter_done": "Concluídas", + "filter_paused": "Pausadas", + "no_filter_results": "Sem transferências em {{filter}}", "try_different_filter": "Tenta selecionar um filtro diferente", - "limitations_title": "Limitações de Download", - "limitations_msg": "• Arquivos menores que 1MB são tipicamente playlists de streaming M3U8 e não podem ser descarregados para visualização offline. Eles funcionam apenas com streaming online e contêm links para segmentos de vídeo, não o conteúdo de vídeo real.", - "remove_title": "Remover Download", + "limitations_title": "Limitações de transferência", + "limitations_msg": "• Ficheiros menores que 1MB são geralmente playlists M3U8 e não podem ser transferidos para visualização offline. Estes só funcionam online, pois contêm links para segmentos de vídeo e não o vídeo real.", + "remove_title": "Remover transferência", "remove_confirm": "Remover \"{{title}}\"{{season_episode}}?", "cancel": "Cancelar", "remove": "Remover" }, + "parentalGuide": { + "labels": { + "nudity": "Nudez", + "violence": "Violência", + "profanity": "Linguagem obscena", + "alcohol": "Álcool/Drogas", + "frightening": "Assustador" + }, + "severity": { + "severe": "Grave", + "moderate": "Moderado", + "mild": "Leve", + "none": "Nenhum" + } + }, "addons": { "title": "Addons", - "reorder_mode": "Modo de Reordenação", - "reorder_info": "Arrasta e solta para reordenar os teus addons.", - "add_addon_placeholder": "Digita a URL do addon (começa com https://)", - "add_button": "Adicionar", - "my_addons": "Os Meus Addons", - "community_addons": "Addons da Comunidade", + "reorder_mode": "Modo de reordenação", + "reorder_info": "Os addons no topo têm prioridade ao carregar conteúdo", + "add_addon_placeholder": "URL do Addon", + "add_button": "Adicionar Addon", + "my_addons": "Os meus Addons", + "community_addons": "Addons da comunidade", "no_addons": "Nenhum addon instalado", "uninstall_title": "Desinstalar Addon", - "uninstall_message": "Tens a certeza que desejas desinstalar o {{name}}?", + "uninstall_message": "Tens a certeza de que queres desinstalar {{name}}?", "uninstall_button": "Desinstalar", - "installed_addons": "ADDONS INSTALADOS", - "reorder_drag_title": "ARRASTA PARA REORDENAR", - "install": "Instalar", - "config_unavailable_title": "Configuração Indisponível", - "config_unavailable_msg": "Não foi possível determinar a URL de configuração para este addon.", - "cannot_open_config_title": "Não é Possível Abrir Configuração", - "cannot_open_config_msg": "A URL de configuração ({{url}}) não pode ser aberta. O addon pode não ter uma página de configuração.", - "description": "Descrição", - "supported_types": "Tipos Suportados", - "catalogs": "Catálogos", - "no_description": "Nenhuma descrição disponível", - "overview": "VISÃO GERAL", - "no_categories": "Sem categorias", - "pre_installed": "PRÉ-INSTALADO", "install_success": "Addon instalado com sucesso", "install_error": "Falha ao instalar addon", "load_error": "Falha ao carregar addons", "fetch_error": "Falha ao obter detalhes do addon", - "invalid_url": "Por favor, insira um URL de addon", + "invalid_url": "Introduz um URL de addon válido", "configure": "Configurar", - "version": "Versão: {{version}}" + "version": "Versão: {{version}}", + "installed_addons": "ADDONS INSTALADOS", + "reorder_drag_title": "ARRASTA OS ADDONS PARA REORDENAR", + "install": "Instalar", + "config_unavailable_title": "Configuração indisponível", + "config_unavailable_msg": "Não foi possível determinar o URL de configuração para este addon.", + "cannot_open_config_title": "Não é possível abrir a configuração", + "cannot_open_config_msg": "O URL de configuração ({{url}}) não pode ser aberto. O addon pode não ter uma página de configuração.", + "description": "Descrição", + "supported_types": "Tipos suportados", + "catalogs": "Catálogos", + "no_description": "Nenhuma descrição disponível", + "overview": "VISÃO GERAL", + "no_categories": "Sem categorias", + "pre_installed": "PRÉ-INSTALADO" }, "trakt": { - "title": "Configurações Trakt", - "settings_title": "Configurações Trakt", - "connect_title": "Conectar com Trakt", - "connect_desc": "Sincroniza o teu histórico, listas e coleções com Trakt.tv", - "sign_in": "Entrar com o Trakt", + "title": "Definições Trakt", + "settings_title": "Definições Trakt", + "connect_title": "Ligar ao Trakt", + "connect_desc": "Sincroniza o teu histórico, watchlist e coleção com o Trakt.tv", + "sign_in": "Iniciar sessão no Trakt", "sign_out": "Sair", - "sign_out_confirm": "Tens a certeza de que desejas sair da tua conta Trakt?", - "joined": "Entrou em {{date}}", - "sync_settings_title": "Configurações de Sincronização", - "sync_info": "Quando conectado ao Trakt, o histórico completo é sincronizado diretamente da API e não é gravado no armazenamento local. A tua lista Continuar a Assistir reflete o teu progresso global no Trakt.", - "auto_sync_label": "Sincronização automática", + "sign_out_confirm": "Tens a certeza de que queres sair da tua conta Trakt?", + "joined": "Membro desde {{date}}", + "sync_settings_title": "Definições de sincronização", + "sync_info": "Quando ligado ao Trakt, o histórico é sincronizado diretamente da API e não é guardado localmente. A tua lista \"Continuar a ver\" reflete o teu progresso global no Trakt.", + "auto_sync_label": "Sincronização automática de progresso", "auto_sync_desc": "Sincronizar automaticamente o progresso com o Trakt", - "import_history_label": "Importar histórico assistido", - "import_history_desc": "Usa \"Sincronizar Agora\" para importar o teu histórico e progresso do Trakt", - "sync_now_button": "Sincronizar Agora", - "display_settings_title": "Configurações de Exibição", - "show_comments_label": "Mostrar Comentários Trakt", - "show_comments_desc": "Exibir comentários do Trakt nas telas de metadados quando disponível", - "maintenance_title": "Em Manutenção", - "maintenance_unavailable": "Trakt Indisponível", - "maintenance_desc": "A integração com o Trakt está temporariamente em pausa para manutenção. Todas sincronizações e autenticações estão desativadas até que a manutenção seja concluída.", - "maintenance_button": "Serviço em Manutenção", - "auth_success_title": "Conectado com Sucesso", - "auth_success_msg": "A tua conta Trakt foi conectada com sucesso.", - "auth_error_title": "Erro de Autenticação", - "auth_error_msg": "Falha ao completar autenticação com Trakt.", + "import_history_label": "Importar histórico de visualização", + "import_history_desc": "Usa \"Sincronizar agora\" para importar o histórico e progresso do Trakt", + "sync_now_button": "Sincronizar agora", + "display_settings_title": "Definições de visualização", + "show_comments_label": "Mostrar comentários do Trakt", + "show_comments_desc": "Exibe comentários do Trakt nos ecrãs de detalhes quando disponíveis", + "maintenance_title": "Em manutenção", + "maintenance_unavailable": "Trakt indisponível", + "maintenance_desc": "A integração com o Trakt está temporariamente pausada para manutenção. A sincronização e autenticação estão desativadas.", + "maintenance_button": "Serviço em manutenção", + "auth_success_title": "Ligado com sucesso", + "auth_success_msg": "A tua conta Trakt foi ligada com sucesso.", + "auth_error_title": "Erro de autenticação", + "auth_error_msg": "Falha ao concluir a autenticação com o Trakt.", "auth_error_generic": "Ocorreu um erro durante a autenticação.", "sign_out_error": "Falha ao sair do Trakt.", - "sync_complete_title": "Sincronização Completa", - "sync_success_msg": "Progresso sincronizado com sucesso com o Trakt.", + "sync_complete_title": "Sincronização concluída", + "sync_success_msg": "Progresso sincronizado com o Trakt com sucesso.", "sync_error_msg": "Falha na sincronização. Tenta novamente." }, "simkl": { - "title": "Configurações do Simkl", - "settings_title": "Configurações do Simkl", + "title": "Definições Simkl", + "settings_title": "Definições Simkl", "connect_title": "Ligar ao Simkl", - "connect_desc": "Sincroniza o teu histórico de visualização e rastreia o que vês", - "sign_in": "Entrar com Simkl", + "connect_desc": "Sincroniza o teu histórico e acompanha o que estás a ver", + "sign_in": "Iniciar sessão no Simkl", "sign_out": "Desligar", - "sign_out_confirm": "Tens a certeza de que queres desligar do Simkl?", + "sign_out_confirm": "Tens a certeza de que queres desligar o Simkl?", "syncing_desc": "Os teus itens vistos estão a ser sincronizados com o Simkl.", "auth_success_title": "Ligado com sucesso", "auth_success_msg": "A tua conta Simkl foi ligada com sucesso.", "auth_error_title": "Erro de autenticação", - "auth_error_msg": "Falha ao completar a autenticação com o Simkl.", + "auth_error_msg": "Falha ao concluir a autenticação com o Simkl.", "auth_error_generic": "Ocorreu um erro durante a autenticação.", "sign_out_error": "Falha ao desligar do Simkl.", "config_error_title": "Erro de configuração", - "config_error_msg": "O ID do cliente Simkl está em falta nas variáveis de ambiente.", + "config_error_msg": "O Client ID do Simkl não foi encontrado nas variáveis de ambiente.", "conflict_title": "Conflito", - "conflict_msg": "Não podes ligar o Simkl enquanto o Trakt está ligado. Desliga primeiro o Trakt.", - "disclaimer": "Nuvio não é afiliado ao Simkl." + "conflict_msg": "Não podes ligar ao Simkl enquanto o Trakt estiver ligado. Desliga primeiro o Trakt.", + "disclaimer": "O Nuvio não é afiliado do Simkl." }, "tmdb_settings": { - "title": "Configurações do TMDb", - "metadata_enrichment": "Enriquecimento de Metadados", - "metadata_enrichment_desc": "Melhora os metadados do teu conteúdo com dados do TMDb para melhores detalhes e informações.", - "localized_text": "Texto Localizado", - "localized_text_desc": "Pesquisa títulos e descrições no teu idioma preferido do TMDb.", + "title": "Definições TMDb", + "metadata_enrichment": "Enriquecimento de metadados", + "metadata_enrichment_desc": "Melhora os metadados do conteúdo com dados do TMDb para obter melhores detalhes.", + "enable_enrichment": "Ativar enriquecimento", + "enable_enrichment_desc": "Aumenta os metadados dos addons com o TMDb para elenco, classificação, logótipos e produção.", + "localized_text": "Texto localizado", + "localized_text_desc": "Obtém títulos e descrições no teu idioma preferido através do TMDb.", "language": "Idioma", "change": "Alterar", - "logo_preview": "Prévia do Logo", - "logo_preview_desc": "A prévia mostra como logos localizados aparecerão no idioma selecionado.", + "logo_preview": "Pré-visualização do logótipo", + "logo_preview_desc": "Mostra como os logótipos localizados aparecerão no idioma selecionado.", "example": "Exemplo:", - "enrichment_options": "Opções de Enriquecimento", - "enrichment_options_desc": "Controla quais dados são pesquisados do TMDb. Opções desativadas usarão dados do addon se disponíveis.", + "no_logo": "Nenhum logótipo disponível", + "enrichment_options": "Opções de enriquecimento", + "enrichment_options_desc": "Controla que dados são obtidos do TMDb. Opções desativadas usarão dados do addon.", "cast_crew": "Elenco e Equipa", - "cast_crew_desc": "Atores, realizadores, escritores com fotos de perfil", + "cast_crew_desc": "Atores, realizadores e argumentistas com fotos de perfil", "title_description": "Título e Descrição", - "title_description_desc": "Usa o título e texto localizados do TMDb", - "title_logos": "Logos do Título", - "title_logos_desc": "Imagens de tratamento de título de alta qualidade", + "title_description_desc": "Usar títulos e resumos localizados do TMDb", + "title_logos": "Logótipos de título", + "title_logos_desc": "Imagens de alta qualidade do título", "banners_backdrops": "Banners e Fundos", - "banners_backdrops_desc": "Imagens de fundo de alta resolução", - "certification": "Classificação de Conteúdo", - "certification_desc": "Classificações etárias (10, 12, 14, 16, 18, etc.)", + "banners_backdrops_desc": "Imagens de fundo em alta resolução", + "certification": "Classificação etária", + "certification_desc": "Classificações de idade (M/12, M/16, etc.)", "recommendations": "Recomendações", - "recommendations_desc": "Sugestões de conteúdo similar", - "episode_data": "Dados do Episódio", - "api_configuration": "Configuração da API", - "api_configuration_desc": "Configura o teu acesso à API do TMDB", - "use_custom_api_key": "Usar Chave de API Personalizada", - "use_custom_api_key_desc": "Usa a tua própria chave de API do TMDB em vez da integrada", - "api_key_placeholder": "Insere a tua Chave de API do TMDB", - "api_key_help": "Nota: Usar a tua própria chave de API requer que o aplicativo seja reiniciado para que as alterações entrem em vigor.", - "verify_key": "Verificar e Guardar Chave", - "clear_key": "Limpar Chave Personalizada", - "language_region": "Idioma e Região", - "language_region_desc": "Define o teu idioma de conteúdo preferido", - "content_language": "Idioma do Conteúdo", - "cache_storage": "Cache e Armazenamento", - "cache_storage_desc": "Gerir armazenamento de dados local", - "clear_cache": "Limpar Cache TMDB", - "clear_cache_desc": "Remover todos os dados TMDB em cache", - "current_size": "Tamanho atual: {{size}}", - "about": "Sobre o TMDB", - "attribution": "Este produto usa a API do TMDB, mas não é endossado ou certificado pelo TMDB.", - "clear_cache_title": "Limpar Cache TMDB", - "clear_cache_msg": "Tens a certeza de que desejas limpar o cache do TMDB? Isso removerá {{size}} de dados.", - "clear_cache_success": "Cache TMDB limpo com sucesso", - "clear_cache_error": "Falha ao limpar o cache TMDB", - "empty_api_key": "Por favor, insere uma chave de API", - "key_verified": "Chave de API verificada e guardada!", - "invalid_api_key": "Chave de API inválida. Verifica e tenta novamente.", - "save_error": "Erro ao guardar Chave de API", - "clear_api_key_title": "Limpar Chave de API", - "clear_api_key_msg": "Tens a certeza de que desejas remover a tua chave de API personalizada? O aplicativo voltará a usar a chave integrada.", - "clear_api_key_error": "Falha ao limpar chave de API", - "using_builtin_key": "Alternado para chave de API integrada", - "using_custom_key": "Alternado para chave de API personalizada", - "enter_custom_key": "Por favor, insere uma chave de API personalizada", - "no_logo": "Sem Logo", - "enable_enrichment": "Ativar Enriquecimento", - "enable_enrichment_desc": "Complementa metadados do addon com informações do TMDb.", - "episode_data_desc": "Miniaturas de episódios, informações e alternativas para séries", - "season_posters": "Pósteres de Temporada", - "season_posters_desc": "Imagens de póster específicas da temporada", - "production_info": "Informação de Produção", - "production_info_desc": "Redes e empresas de produção com logos", - "movie_details": "Detalhes do Filme", + "recommendations_desc": "Sugestões de conteúdo semelhante", + "episode_data": "Dados de episódios", + "episode_data_desc": "Miniaturas e informações de episódios para séries", + "season_posters": "Cartazes de temporadas", + "season_posters_desc": "Imagens de cartazes específicos de cada temporada", + "production_info": "Info de produção", + "production_info_desc": "Canais e produtoras com logótipos", + "movie_details": "Detalhes do filme", "movie_details_desc": "Orçamento, receita, duração, slogan", - "tv_details": "Detalhes da Série", - "tv_details_desc": "Estado, contagem de temporadas, redes, criadores", - "movie_collections": "Coleções de Filmes", - "movie_collections_desc": "Séries de filmes (Marvel, Star Wars, etc.)", - "custom_api_key": "Chave de API Personalizada", - "custom_api_key_desc": "Usa a tua própria chave de API do TMDb.", - "custom_key_active": "Chave personalizada ativa", - "api_key_required": "Chave de API Necessária", + "tv_details": "Detalhes da série", + "tv_details_desc": "Estado, contagem de temporadas, canais, criadores", + "movie_collections": "Coleções de filmes", + "movie_collections_desc": "Franchises (Marvel, Star Wars, etc.)", + "api_configuration": "Configuração da API", + "api_configuration_desc": "Configura o teu acesso à API do TMDb.", + "custom_api_key": "Chave de API personalizada", + "custom_api_key_desc": "Usa a tua própria chave de API para melhor desempenho e limites dedicados.", + "custom_key_active": "Chave de API personalizada ativa", + "api_key_required": "Chave de API necessária", + "api_key_placeholder": "Cola a tua chave de API TMDb (v3)", "how_to_get_key": "Como obter uma chave de API TMDb?", - "built_in_key_msg": "A usar chave de API integrada.", - "cache_size": "Tamanho do Cache", - "cache_days": "Respostas do TMDB são armazenadas em cache por 7 dias", - "choose_language": "Escolher Idioma", - "choose_language_desc": "Escolhe o teu idioma preferido para conteúdo TMDb", + "built_in_key_msg": "A usar a chave de API integrada. Considera usar a tua própria chave.", + "cache_size": "Tamanho da cache", + "clear_cache": "Limpar cache", + "cache_days": "As respostas do TMDB são guardadas por 7 dias para melhorar o desempenho", + "choose_language": "Escolher idioma", + "choose_language_desc": "Seleciona o teu idioma preferido para o conteúdo do TMDb", "popular": "Popular", - "all_languages": "Todos os Idiomas", - "search_results": "Resultados da Pesquisa", + "all_languages": "Todos os idiomas", + "search_results": "Resultados da pesquisa", "no_languages_found": "Nenhum idioma encontrado para \"{{query}}\"", - "clear_search": "Limpar Pesquisa", - "clear_api_key_success": "Chave de API excluída com sucesso" + "clear_search": "Limpar pesquisa", + "clear_cache_title": "Limpar cache do TMDB", + "clear_cache_msg": "Isto limpará todos os dados guardados do TMDB ({{size}}). O carregamento poderá ficar temporariamente mais lento.", + "clear_cache_success": "Cache do TMDB limpa com sucesso.", + "clear_cache_error": "Falha ao limpar cache.", + "clear_api_key_title": "Limpar chave de API", + "clear_api_key_msg": "Tens a certeza de que queres remover a tua chave de API e voltar à predefinida?", + "clear_api_key_success": "Chave de API limpa com sucesso", + "clear_api_key_error": "Falha ao limpar chave de API", + "empty_api_key": "A chave de API não pode estar vazia.", + "invalid_api_key": "Chave de API inválida. Verifica e tenta novamente.", + "save_error": "Ocorreu um erro ao guardar. Tenta novamente.", + "using_builtin_key": "A usar agora a chave de API integrada do TMDb.", + "using_custom_key": "A usar agora a tua chave de API personalizada.", + "enter_custom_key": "Introduz e guarda a tua chave de API personalizada.", + "key_verified": "Chave de API verificada e guardada com sucesso." }, "settings": { "language": "Idioma", - "select_language": "Selecionar Idioma", + "select_language": "Selecionar idioma", "english": "Inglês", "portuguese": "Português", "portuguese_br": "Português (Brasil)", @@ -650,40 +658,42 @@ "serbian": "Sérvio", "hebrew": "Hebraico", "bulgarian": "Búlgaro", - "polish": "Polonês", - "czech": "Theco", + "polish": "Polaco", + "czech": "Checo", "turkish": "Turco", "slovenian": "Esloveno", - "macedonian": "Macedônio", + "macedonian": "Macedónio", "russian": "Russo", "filipino": "Filipino", "dutch_nl": "Holandês (Países Baixos)", - "Romanian": "Romeno", + "romanian": "Romeno", "albanian": "Albanês", "catalan": "Catalão", + "vietnamese": "Vietnamita", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", "integrations": "Integrações", "playback": "Reprodução", - "backup_restore": "Backup e Restauração", + "backup_restore": "Cópia de Segurança e Restauro", + "backup_restore_desc": "Criar e restaurar cópias de segurança da app", "updates": "Atualizações", "about": "Sobre", - "developer": "Desenvolvedor", + "developer": "Programador", "cache": "Cache", - "title": "Configurações", - "settings_title": "Configurações", - "sign_in_sync": "Faz login para sincronizar", + "title": "Definições", + "settings_title": "Definições", + "sign_in_sync": "Iniciar sessão para sincronizar", "add_catalogs_sources": "Addons, catálogos e fontes", - "player_trailers_downloads": "Reprodutor, trailers, downloads", + "player_trailers_downloads": "Leitor, trailers e transferências", "mdblist_tmdb_ai": "MDBList, TMDB, IA", - "check_updates": "Verificar atualizações", + "check_updates": "Procurar atualizações", "clear_mdblist_cache": "Limpar Cache do MDBList", - "cache_management": "GERENCIAMENTO DE CACHE", - "downloads_counter": "downloads e contando", - "made_with_love": "Feito com ❤️ por Tapframe e amigos", + "cache_management": "GESTÃO DE CACHE", + "downloads_counter": "transferências e a contar", + "made_with_love": "Feito com ❤️ pela Tapframe e amigos", "sections": { - "information": "INFORMAÇÕES", + "information": "INFORMAÇÃO", "account": "CONTA", "theme": "TEMA", "layout": "LAYOUT", @@ -692,15 +702,15 @@ "discovery": "DESCOBERTA", "metadata": "METADADOS", "ai_assistant": "ASSISTENTE IA", - "video_player": "REPRODUTOR DE VÍDEO", + "video_player": "LEITOR DE VÍDEO", "audio_subtitles": "ÁUDIO E LEGENDAS", - "media": "MÍDIA", + "media": "MÉDIA", "notifications": "NOTIFICAÇÕES", "testing": "TESTES", - "danger_zone": "AREA DE PERIGO" + "danger_zone": "ZONA DE PERIGO" }, "items": { - "legal": "Aviso Legal", + "legal": "Avisos Legais", "privacy_policy": "Política de Privacidade", "report_issue": "Reportar Problema", "version": "Versão", @@ -708,379 +718,381 @@ "view_contributors": "Ver todos os contribuidores", "theme": "Tema", "episode_layout": "Layout de Episódios", - "streams_backdrop": "Fundo de Streams", - "streams_backdrop_desc": "Mostrar fundo desfocado em streams móveis", + "streams_backdrop": "Fundo das Streams", + "streams_backdrop_desc": "Mostrar fundo desfocado nas streams em dispositivos móveis", "addons": "Addons", "installed": "instalados", "debrid_integration": "Integração Debrid", - "debrid_desc": "Conectar Torbox", + "debrid_desc": "Ligar ao Torbox", "plugins": "Plugins", "plugins_desc": "Gerir plugins e repositórios", "catalogs": "Catálogos", "active": "ativos", - "home_screen": "Início", + "home_screen": "Ecrã Principal", "home_screen_desc": "Layout e conteúdo", - "continue_watching": "Continuar a Assistir", - "continue_watching_desc": "Cache e comportamento de reprodução", - "show_discover": "Mostrar Secção Descobrir", + "continue_watching": "Continuar a Ver", + "continue_watching_desc": "Comportamento de cache e reprodução", + "show_discover": "Mostrar Secção Descoberta", "show_discover_desc": "Exibir conteúdo de descoberta na Pesquisa", "mdblist": "MDBList", - "mdblist_connected": "Conectado", - "mdblist_desc": "Ativar para adicionar avaliações e críticas", + "mdblist_connected": "Ligado", + "mdblist_desc": "Ativar para adicionar classificações e críticas", "simkl": "Simkl", - "simkl_connected": "Conectado", - "simkl_desc": "Acompanhe o que vê", + "simkl_connected": "Ligado", + "simkl_desc": "Regista o que vês", "tmdb": "TMDB", - "tmdb_desc": "Provedor de metadados e logos", - "openrouter": "OpenRouter API", - "openrouter_connected": "Conectado", - "openrouter_desc": "Adiciona a tua chave API para chat IA", - "video_player": "Reprodutor de Vídeo", + "tmdb_desc": "Fornecedor de metadados e logótipos", + "openrouter": "API OpenRouter", + "openrouter_connected": "Ligado", + "openrouter_desc": "Adiciona a tua chave API para ativar o chat de IA", + "video_player": "Leitor de Vídeo", "built_in": "Integrado", "external": "Externo", - "preferred_audio": "Idioma do Áudio Preferido", - "preferred_subtitle": "Idioma da Legenda Preferido", - "subtitle_source": "Prioridade da Fonte de Legenda", + "preferred_audio": "Idioma de Áudio Preferido", + "preferred_subtitle": "Idioma de Legendas Preferido", + "subtitle_source": "Prioridade de Fonte de Legendas", "auto_select_subs": "Auto-Selecionar Legendas", - "auto_select_subs_desc": "Selecionar legendas automaticamente", + "auto_select_subs_desc": "Selecionar automaticamente legendas que correspondam às tuas preferências", "show_trailers": "Mostrar Trailers", - "show_trailers_desc": "Exibir trailers na secção hero", - "enable_downloads": "Habilitar Downloads", - "enable_downloads_desc": "Mostrar aba Downloads e permitir guardar streams", + "show_trailers_desc": "Exibir trailers na secção de destaque", + "enable_downloads": "Ativar Transferências", + "enable_downloads_desc": "Mostrar separador de Transferências e permitir guardar streams", "notifications": "Notificações", "notifications_desc": "Lembretes de episódios", - "developer_tools": "Ferramentas de Desenvolvedor", + "developer_tools": "Ferramentas de Programador", "developer_tools_desc": "Opções de teste e depuração", - "test_onboarding": "Testar Onboarding", - "reset_onboarding": "Resetar Onboarding", + "test_onboarding": "Testar Introdução", + "reset_onboarding": "Repor Introdução", "test_announcement": "Testar Anúncio", "test_announcement_desc": "Mostrar sobreposição de novidades", - "reset_campaigns": "Resetar Campanhas", - "reset_campaigns_desc": "Limpar impressões de campanhas", - "clear_all_data": "Limpar Todos os Dados", - "clear_all_data_desc": "Resetar todas as configurações e cache" + "reset_campaigns": "Repor Campanhas", + "reset_campaigns_desc": "Limpar impressões de campanha", + "clear_all_data": "Apagar Todos os Dados", + "clear_all_data_desc": "Repor todas as definições e dados em cache" }, "options": { "horizontal": "Horizontal", "vertical": "Vertical", - "internal_first": "Embutidas Primeiro", + "internal_first": "Internas Primeiro", "internal_first_desc": "Preferir legendas embutidas, depois externas", - "external_first": "Embutidas Primeiro", + "external_first": "Externas Primeiro", "external_first_desc": "Preferir legendas de addons, depois embutidas", "any_available": "Qualquer Disponível", - "any_available_desc": "Usar primeira legenda disponível" + "any_available_desc": "Utilizar a primeira faixa de legendas disponível" }, - "clear_data_desc": "Isso redefinirá todas as configurações e limpará todos os dados em cache. Tens a certeza?", + "clear_data_desc": "Isto irá repor todas as definições e apagar todos os dados em cache. Tens a certeza?", "app_updates": "Atualizações da App", "about_nuvio": "Sobre o Nuvio", "cloud_sync": { - "title": "Nuvio Sync", - "description": "Sync data across your Nuvio devices", - "hero_title": "Cloud Sync", - "hero_subtitle": "Keep your addons, progress, and library aligned across all devices.", + "title": "Sincronização Nuvio", + "description": "Sincroniza dados entre os teus dispositivos Nuvio", + "hero_title": "Sincronização na Nuvem", + "hero_subtitle": "Mantém os teus addons, progresso e biblioteca alinhados em todos os dispositivos.", "auth": { - "account": "Account", - "not_configured": "Supabase not configured", - "not_authenticated": "Not authenticated", - "email_session": "Email session", - "signed_in_as": "Signed in as {{email}}", - "not_signed_in": "Not signed in", - "effective_owner": "Effective owner: {{id}}" + "account": "Conta", + "not_configured": "Supabase não configurado", + "not_authenticated": "Não autenticado", + "email_session": "Sessão por e-mail", + "signed_in_as": "Sessão iniciada como {{email}}", + "not_signed_in": "Sessão não iniciada", + "effective_owner": "Proprietário efetivo: {{id}}" }, "stats": { - "title": "Database Statistics", + "title": "Estatísticas da Base de Dados", "plugins": "Plugins", "addons": "Addons", - "watch_progress": "Watch Progress", - "library_items": "Library Items", - "watched_items": "Watched Items", - "signin_required": "Sign in to load remote data counts." + "watch_progress": "Progresso de Visualização", + "library_items": "Itens da Biblioteca", + "watched_items": "Itens Vistos", + "signin_required": "Inicia sessão para carregar contagens de dados remotos." }, "actions": { - "title": "Actions", - "description": "Pull to update this device from the cloud, or push from this device as the latest source.", - "pull_btn": "Pull from Cloud", - "push_btn": "Push from Device", - "manage_account": "Manage Account", - "sign_out": "Sign Out", - "sign_in_up": "Sign In / Up" + "title": "Ações", + "description": "Puxa para atualizar este dispositivo a partir da nuvem, ou empurra os dados deste dispositivo como a fonte mais recente.", + "pull_btn": "Puxar da Nuvem", + "push_btn": "Empurrar do Dispositivo", + "manage_account": "Gerir Conta", + "sign_out": "Sair", + "sign_in_up": "Entrar / Registar" }, "alerts": { - "pull_success_title": "Cloud Data Pulled", - "pull_success_msg": "The latest cloud data has been downloaded to this device.", - "pull_failed_title": "Pull Failed", - "pull_failed_msg": "Failed to download data from the cloud", - "push_success_title": "Push Completed", - "push_success_msg": "Device data has been uploaded to the cloud.", - "push_failed_title": "Push Failed", - "push_failed_msg": "Failed to upload local data", - "sign_out_failed": "Sign Out Failed", - "sign_out_failed_title": "Logout Error" + "pull_success_title": "Dados da Nuvem Sincronizados", + "pull_success_msg": "Os dados mais recentes da nuvem foram transferidos para este dispositivo.", + "pull_failed_title": "Falha ao Puxar", + "pull_failed_msg": "Falha ao transferir dados da nuvem", + "push_success_title": "Envio Concluído", + "push_success_msg": "Os dados do dispositivo foram carregados para a nuvem.", + "push_failed_title": "Falha ao Empurrar", + "push_failed_msg": "Falha ao carregar dados locais", + "sign_out_failed": "Falha ao Sair", + "sign_out_failed_title": "Erro ao Terminar Sessão" }, "external_sync": { - "title": "External Sync Priority", - "active_msg": "{{services}} is active. Watch progress and library updates are managed by these services instead of Nuvio cloud database.", - "inactive_msg": "If Trakt or Simkl sync is enabled, watch progress and library updates will use those services instead of Nuvio cloud database." + "title": "Prioridade de Sincronização Externa", + "active_msg": "{{services}} está ativo. O progresso e as atualizações da biblioteca são geridos por estes serviços em vez da base de dados Nuvio.", + "inactive_msg": "Se a sincronização Trakt ou Simkl estiver ativa, o progresso e as atualizações da biblioteca usarão esses serviços em vez da base de dados Nuvio." }, "pre_auth": { - "title": "Before Syncing", - "description": "Sign in to start cloud sync and keep your data consistent across devices.", - "point_1": "• Addons and plugins settings", - "point_2": "• Watch progress and library", - "env_warning": "Set EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to enable sync." + "title": "Antes de Sincronizar", + "description": "Inicia sessão para começar a sincronização na nuvem e manter os teus dados consistentes.", + "point_1": "• Definições de addons e plugins", + "point_2": "• Progresso de visualização e biblioteca", + "env_warning": "Define EXPO_PUBLIC_SUPABASE_URL e EXPO_PUBLIC_SUPABASE_ANON_KEY para ativar a sincronização." }, - "connection": "Connection" + "connection": "Ligação" } }, "privacy": { "title": "Privacidade e Dados", - "settings_desc": "Controle a telemetria e recolha de dados", - "info_title": "A Sua Privacidade Importa-nos", - "info_description": "Controle quais dados são recolhidos e partilhados. A análise está desativada por padrão e os relatórios de falha são anónimos por padrão.", - "analytics_enabled_title": "Análise Ativada", - "analytics_enabled_message": "Os dados de utilização serão recolhidos para ajudar a melhorar a aplicação. Pode desativar isto a qualquer momento.", - "disable_error_reporting_title": "Desativar Relatório de Erros?", - "disable_error_reporting_message": "Desativar o relatório de erros significa que não seremos notificados de falhas ou problemas que experimenta. Isto pode afetar a nossa capacidade de corrigir bugs.", - "enable_session_replay_title": "Ativar Reprodução de Sessão?", - "enable_session_replay_message": "A reprodução de sessão grava o seu ecrã quando ocorrem erros para nos ajudar a compreender o que aconteceu. Isto pode capturar conteúdo visível no seu ecrã.", + "settings_desc": "Controlar telemetria e recolha de dados", + "info_title": "A tua Privacidade é Importante", + "info_description": "Controla que dados são recolhidos e partilhados. As análises estão desativadas por predefinição e os relatórios de erros são anónimos.", + "analytics_enabled_title": "Análises Ativadas", + "analytics_enabled_message": "Os dados de utilização serão recolhidos para ajudar a melhorar a app. Podes desativar isto a qualquer momento.", + "disable_error_reporting_title": "Desativar Relatórios de Erros?", + "disable_error_reporting_message": "Desativar os relatórios de erros significa que não seremos notificados de falhas ou problemas que encontres. Isto pode afetar a nossa capacidade de corrigir erros.", + "enable_session_replay_title": "Ativar Replay de Sessão?", + "enable_session_replay_message": "O replay de sessão grava o teu ecrã quando ocorrem erros para nos ajudar a perceber o que aconteceu. Isto pode capturar conteúdo visível no teu ecrã.", "enable_pii_title": "Ativar Recolha de PII?", - "enable_pii_message": "Isto permite a recolha de informações de identificação pessoal como endereço IP e detalhes do dispositivo. Estes dados ajudam a diagnosticar problemas, mas aumentam a exposição de privacidade.", + "enable_pii_message": "Isto permite a recolha de informações de identificação pessoal, como o endereço IP e detalhes do dispositivo. Estes dados ajudam a diagnosticar problemas, mas aumentam a exposição da privacidade.", "disable_all_title": "Desativar Toda a Telemetria?", - "disable_all_message": "Isto desativará toda a análise, relatório de erros e reprodução de sessão. Não receberemos nenhum dado sobre a utilização da aplicação ou falhas.", + "disable_all_message": "Isto irá desativar todas as análises, relatórios de erros e replays de sessão. Não receberemos nenhuns dados sobre a utilização ou falhas da app.", "disable_all_button": "Desativar Tudo", - "all_disabled_title": "Toda Telemetria Desativada", - "all_disabled_message": "Toda a recolha de dados foi desativada. As alterações terão efeito no próximo reinício da aplicação.", - "reset_title": "Restaurar para Recomendado", - "reset_message": "As configurações de privacidade foram restauradas para os padrões recomendados (relatório de erros ativado, análise desativada).", - "section_analytics": "ANÁLISE", - "analytics_title": "Análise de Utilização", - "analytics_description": "Recolher padrões de utilização anónimos e vistas de ecrã", + "all_disabled_title": "Toda a Telemetria Desativada", + "all_disabled_message": "Toda a recolha de dados foi desativada. As alterações terão efeito no próximo reinício da app.", + "reset_title": "Repor para Recomendado", + "reset_message": "As definições de privacidade foram repostas para os valores recomendados (relatórios de erros ativos, análises desativadas).", + "section_analytics": "ANÁLISES", + "analytics_title": "Análises de Utilização", + "analytics_description": "Recolher padrões de utilização anónimos e visualizações de ecrã", "section_error_reporting": "RELATÓRIO DE ERROS", - "error_reporting_title": "Relatórios de Falha", - "error_reporting_description": "Enviar relatórios de falha anónimos para melhorar a estabilidade", - "session_replay_title": "Reprodução de Sessão", + "error_reporting_title": "Relatórios de Erros", + "error_reporting_description": "Enviar relatórios de erros anónimos para melhorar a estabilidade", + "session_replay_title": "Replay de Sessão", "session_replay_description": "Gravar ecrã quando ocorrem erros", - "pii_title": "Incluir Informações do Dispositivo", - "pii_description": "Enviar endereço IP e detalhes do dispositivo com relatórios", + "pii_title": "Incluir Info do Dispositivo", + "pii_description": "Enviar endereço IP e detalhes do dispositivo com os relatórios", "section_quick_actions": "AÇÕES RÁPIDAS", "disable_all": "Desativar Toda a Telemetria", "disable_all_desc": "Desligar toda a recolha de dados", - "reset_recommended": "Restaurar para Recomendado", - "reset_recommended_desc": "Padrões focados em privacidade com relatório de erros", - "section_learn_more": "SAIBA MAIS", + "reset_recommended": "Repor Recomendado", + "reset_recommended_desc": "Predefinições focadas na privacidade com relatórios de erros", + "section_learn_more": "SABER MAIS", "privacy_policy": "Política de Privacidade", - "current_settings": "Resumo das Configurações Atuais", - "summary_analytics": "Análise", - "summary_errors": "Relatórios de Erro", - "summary_replay": "Reprodução de Sessão", - "summary_pii": "Informações do Dispositivo", - "restart_note_detailed": "* As alterações em análise e relatório de erros têm efeito imediato. A reprodução de sessão e as configurações de PII requerem reinicialização da aplicação." + "current_settings": "Resumo das Definições Atuais", + "summary_analytics": "Análises", + "summary_errors": "Relatórios de Erros", + "summary_replay": "Replay de Sessão", + "summary_pii": "Info do Dispositivo", + "restart_note_detailed": "* Alterações em análises e relatórios de erros são imediatas. Replay de sessão e PII requerem reinício da app." }, "ai_settings": { "title": "Assistente IA", "info_title": "Chat com IA", - "info_desc": "Faz perguntas sobre qualquer filme ou episódio com IA avançada. Obtém informações sobre enredo, personagens, temas, curiosidades e muito mais - tudo alimentado por dados abrangentes do TMDB.", + "info_desc": "Faz perguntas sobre qualquer filme ou episódio usando IA avançada. Obtém informações sobre o enredo, personagens, temas, curiosidades e mais - tudo baseado nos dados do TMDB.", "feature_1": "Contexto e análise específica de episódios", - "feature_2": "Explicações de enredo e informações de personagens", - "feature_3": "Curiosidades e factos de bastidores", - "feature_4": "A tua própria chave gratuita OpenRouter", + "feature_2": "Explicações de enredo e análise de personagens", + "feature_3": "Curiosidades e factos dos bastidores", + "feature_4": "A tua própria chave API OpenRouter gratuita", "api_key_section": "CHAVE API OPENROUTER", "api_key_label": "Chave API", - "api_key_desc": "Digita a tua chave OpenRouter para habilitar recursos de chat IA", + "api_key_desc": "Insere a tua chave API OpenRouter para ativar as funcionalidades de chat com IA", "save_api_key": "Guardar Chave API", "saving": "A guardar...", "update": "Atualizar", "remove": "Remover", - "get_free_key": "Obter Chave Gratuita no OpenRouter", - "enable_chat": "Habilitar Chat IA", - "enable_chat_desc": "Quando habilitado, o botão Perguntar IA aparecerá nas páginas de conteúdo.", - "chat_enabled": "Chat IA Habilitado", - "chat_enabled_desc": "Agora podes fazer perguntas sobre filmes e séries. Procura o botão \"Perguntar IA\" nas páginas de conteúdo!", + "get_free_key": "Obter Chave API Grátis no OpenRouter", + "enable_chat": "Ativar Chat IA", + "enable_chat_desc": "Quando ativado, o botão 'Perguntar à IA' aparecerá nas páginas de conteúdo.", + "chat_enabled": "Chat IA Ativado", + "chat_enabled_desc": "Já podes fazer perguntas sobre filmes e séries. Procura o botão 'Perguntar à IA'!", "how_it_works": "Como funciona", - "how_it_works_desc": "• OpenRouter fornece acesso a múltiplos modelos IA\n• A tua chave API permanece privada e segura\n• Camada gratuita inclui limites generosos de uso\n• Chat com contexto sobre episódios/filmes específicos\n• Obtém análises detalhadas e explicações", - "error_invalid_key": "Por favor, digita uma chave API válida", - "error_key_format": "Chaves API OpenRouter devem começar com \"sk-or-\"", + "how_it_works_desc": "• O OpenRouter dá acesso a vários modelos de IA\n• A tua chave API permanece privada e segura\n• O plano gratuito inclui limites de utilização generosos\n• Chat com contexto sobre episódios/filmes específicos\n• Obtém análises e explicações detalhadas", + "error_invalid_key": "Por favor, insere uma chave API válida", + "error_key_format": "As chaves API OpenRouter devem começar com 'sk-or-'", "success_saved": "Chave API OpenRouter guardada com sucesso!", - "error_save": "Falha ao guardar chave API", + "error_save": "Falha ao guardar a chave API", "confirm_remove_title": "Remover Chave API", - "confirm_remove_msg": "Tens a certeza que desejas remover a tua chave API OpenRouter? Isso desativará os recursos de chat IA.", + "confirm_remove_msg": "Tens a certeza de que queres remover a tua chave API OpenRouter? Isto desativará o chat com IA.", "success_removed": "Chave API removida com sucesso", - "error_remove": "Falha ao remover chave API" + "error_remove": "Falha ao remover a chave API" }, "catalog_settings": { "title": "Catálogos", - "layout_phone": "LAYOUT DE CATÁLOGOS (CELULAR)", - "posters_per_row": "Pósteres por linha", + "layout_phone": "LAYOUT DO ECRÃ DE CATÁLOGO (TELEMÓVEL)", + "posters_per_row": "Posters por linha", "auto": "Auto", - "show_titles": "Mostrar Títulos", - "show_titles_desc": "Exibir título abaixo de cada póster", - "phone_only_hint": "Aplica-se apenas a telemóveis. Tablets mantêm layout adaptativo.", + "show_titles": "Mostrar Títulos nos Posters", + "show_titles_desc": "Exibir o título por baixo de cada poster", + "phone_only_hint": "Aplica-se apenas a telemóveis. Tablets mantêm o layout adaptativo.", "catalogs_group": "Catálogos", - "enabled_count": "{{enabled}} de {{total}} habilitados", - "rename_hint": "Pressiona e segura um catálogo para renomear", - "rename_modal_title": "Renomear Catálogo", - "rename_placeholder": "Digita o novo nome do catálogo", + "enabled_count": "{{enabled}} de {{total}} ativos", + "rename_hint": "Mantém premido um catálogo para mudar o nome", + "rename_modal_title": "Mudar Nome do Catálogo", + "rename_placeholder": "Insere o novo nome do catálogo", "error_save_name": "Não foi possível guardar o nome personalizado." }, "continue_watching_settings": { - "title": "Continuar a Assistir", + "title": "Continuar a Ver", "playback_behavior": "COMPORTAMENTO DE REPRODUÇÃO", "use_cached": "Usar Streams em Cache", - "use_cached_desc": "Quando ativo, clicar em itens de Continuar a Assistir abrirá o reprodutor diretamente usando streams reproduzidos anteriormente. Quando desativo, abre uma tela de conteúdo.", - "open_metadata": "Abrir Tela de Metadados", - "open_metadata_desc": "Quando streams em cache estão desativados, abre a tela de Metadados em vez da tela de Streams. Isso mostra detalhes do conteúdo e permite seleção manual de streams.", - "card_appearance": "APARÊNCIA DO CARD", - "card_style": "Estilo do Card", - "card_style_desc": "Escolhe como os itens de Continuar a Assistir aparecem no Início", - "wide": "Largura", - "poster": "Póster", - "cache_settings": "CONFIGURAÇÕES DE CACHE", - "cache_duration": "Duração do Cache de Stream", - "cache_duration_desc": "Por quanto tempo manter links de stream em cache antes de expirarem", + "use_cached_desc": "Se ativo, ao clicar em itens de 'Continuar a Ver' o leitor abre diretamente com as streams anteriores. Se desativado, abre o ecrã de conteúdo.", + "open_metadata": "Abrir Ecrã de Metadados", + "open_metadata_desc": "Quando as streams em cache estão desativadas, abre o ecrã de Metadados em vez do ecrã de Streams. Mostra detalhes e permite escolha manual.", + "card_appearance": "APARÊNCIA DO CARTÃO", + "card_style": "Estilo do Cartão", + "card_style_desc": "Escolhe como os itens de 'Continuar a Ver' aparecem no ecrã principal", + "wide": "Largo", + "poster": "Poster", + "cache_settings": "DEFINIÇÕES DE CACHE", + "cache_duration": "Duração da Cache de Stream", + "cache_duration_desc": "Quanto tempo guardar os links das streams antes de expirarem", "important_note": "Nota Importante", - "important_note_text": "Nem todos os links de stream permanecem ativos por toda a duração do cache. Tempos de cache mais longos podem resultar em links expirados. Se um link em cache falhar, a procurará novos streams.", + "important_note_text": "Nem todos os links permanecem ativos durante toda a duração da cache. Tempos longos podem resultar em links expirados. Se falhar, a app procurará novas streams.", "how_it_works": "Como funciona", - "how_it_works_cached": "• Streams são armazenados em cache pela duração selecionada após a reprodução\n• Streams em cache são validados antes do uso\n• Se o cache for inválido ou expirado, volta para a tela de conteúdo\n• \"Usar Streams em Cache\" controla reprodutores direto vs navegação de tela\n• \"Abrir Tela de Metadados\" aparece apenas quando streams em cache estão desativados", - "how_it_works_uncached": "• Quando streams em cache estão desativados, clicar em itens de Continuar a Assistir abre telas de conteúdo\n• A opção \"Abrir Tela de Metadados\" controla qual tela abrir\n• A tela de Metadados mostra detalhes do conteúdo e permite seleção manual de streams\n• A tela de Streams mostra streams disponíveis para reprodução imediata", + "how_it_works_cached": "• As streams são guardadas pela duração selecionada após a reprodução\n• São validadas antes do uso\n• Se a cache for inválida, volta ao ecrã de conteúdo\n• 'Usar Streams em Cache' controla a navegação direta", + "how_it_works_uncached": "• Se desativado, abre o ecrã de conteúdo\n• O ecrã de Metadados mostra detalhes e seleção manual\n• O ecrã de Streams mostra as streams disponíveis para reprodução imediata", "changes_saved": "Alterações guardadas", "min": "min", - "hours": "horas", - "hour": "hora" + "hour": "hora", + "hours": "horas" }, "contributors": { "title": "Contribuidores", "special_mentions": "Menções Especiais", "tab_contributors": "Contribuidores", "tab_special": "Menções Especiais", - "tab_donors": "Doadores", - "manager_role": "Gestor da Comunidade", - "manager_desc": "Gere as comunidades do Discord e Reddit", - "sponsor_role": "Patrocinador do Servidor", - "sponsor_desc": "Patrocinou a infraestrutura do servidor para o Nuvio", + "tab_donors": "Dadores", + "manager_role": "Gestor de Comunidade", + "manager_desc": "Gere as comunidades Discord e Reddit do Nuvio", + "sponsor_role": "Patrocinador de Servidor", + "sponsor_desc": "Patrocinou a infraestrutura de servidores do Nuvio", "mod_role": "Moderador do Discord", - "mod_desc": "Ajuda a moderar a comunidade do Nuvio no Discord", + "mod_desc": "Ajuda a moderar a comunidade Discord do Nuvio", "loading": "A carregar...", - "discord_user": "Usuário do Discord", + "discord_user": "Utilizador do Discord", "contributions": "contribuições", - "gratitude_title": "Somos gratos por cada contribuição", - "gratitude_desc": "Cada linha de código, relatório de bug e sugestão ajuda a tornar o Nuvio melhor para todos", + "gratitude_title": "Agradecemos cada contribuição", + "gratitude_desc": "Cada linha de código, relatório de erro e sugestão ajuda a tornar o Nuvio melhor para todos", "special_thanks_title": "Agradecimentos Especiais", - "special_thanks_desc": "Essas pessoas incríveis ajudam a manter a comunidade Nuvio a funcionar e os servidores online", - "donors_desc": "Obrigado por acreditar no que estamos a construir. O seu apoio mantém o Nuvio gratuito e continuamente a melhorar.", - "latest_donations": "Recentes", - "leaderboard": "Placar", - "loading_donors": "A carregar doadores…", - "no_donors": "Sem doadores ainda", - "error_rate_limit": "Limite de taxa da API do GitHub excedido. Tenta novamente mais tarde.", - "error_failed": "Falha ao carregar colaboradores. Verifica a tua conexão com a internet.", + "special_thanks_desc": "Estas pessoas fantásticas ajudam a manter a comunidade Nuvio ativa e os servidores online", + "donors_desc": "Obrigado por acreditares no que estamos a construir. O vosso apoio mantém o Nuvio gratuito.", + "latest_donations": "Últimas", + "leaderboard": "Tabela de Classificação", + "loading_donors": "A carregar dadores...", + "no_donors": "Ainda sem dadores", + "error_rate_limit": "Limite da API do GitHub excedido. Tenta mais tarde ou puxa para atualizar.", + "error_failed": "Falha ao carregar contribuidores. Verifica a tua ligação.", "retry": "Tentar Novamente", - "no_contributors": "Nenhum colaborador encontrado", - "loading_contributors": "A carregar colaboradores..." + "no_contributors": "Nenhum contribuidor encontrado", + "loading_contributors": "A carregar contribuidores..." }, "debrid": { "title": "Integração Debrid", - "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", - "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", + "description_torbox": "Liga o Torbox para usares as tuas preferências de fonte baseadas na conta. Insere a tua chave API abaixo.", + "description_torrentio": "Configura o Torrentio como uma integração de fonte externa. Poderá ser necessária uma conta debrid compatível.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", - "status_connected": "Conectado", - "status_disconnected": "Desconectado", + "status_connected": "Ligado", + "status_disconnected": "Desligado", "enable_addon": "Ativar Addon", - "disconnect_button": "Desconectar e Remover", - "disconnect_loading": "A desconectar...", - "account_info": "Informações da Conta", + "disconnect_button": "Desligar e Remover", + "disconnect_loading": "A desligar...", + "account_info": "Informação da Conta", "plan": "Plano", "plan_free": "Grátis", - "plan_essential": "Essencial ($3/mês)", - "plan_pro": "Pro ($10/mês)", - "plan_standard": "Padrão ($5/mês)", + "plan_essential": "Essential (3$/mês)", + "plan_pro": "Pro (10$/mês)", + "plan_standard": "Standard (5$/mês)", "plan_unknown": "Desconhecido", - "expires": "Expira em", - "downloaded": "Descarregado", + "expires": "Expira", + "downloaded": "Transferido", "status_active": "Ativo", - "connected_title": "✓ Conectado ao TorBox", + "connected_title": "✓ Ligado ao TorBox", "connected_desc": "O teu addon TorBox está ativo e a fornecer streams premium.", "configure_title": "Configurar Addon", - "configure_desc": "Personaliza a tua experiência. Ordena por qualidade, filtre tamanhos de arquivo e gerencia outras configurações.", - "open_settings": "Abrir Configurações", - "what_is_debrid": "O que é um Serviço Debrid?", + "configure_desc": "Personaliza a tua experiência. Ordena por qualidade, filtra tamanhos e gere outras definições.", + "open_settings": "Abrir Definições", + "what_is_debrid": "O que é um serviço Debrid?", "enter_api_key": "Insere a tua Chave API", - "connect_button": "Conectar e Instalar", - "connecting": "A conectar...", - "unlock_speeds_title": "Optional Torbox Subscription", - "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", + "connect_button": "Ligar e Instalar", + "connecting": "A ligar...", + "unlock_speeds_title": "Subscrição Torbox Opcional", + "unlock_speeds_desc": "O Torbox oferece planos com melhor desempenho e funcionalidades extras.", "get_subscription": "Obter Subscrição", - "powered_by": "Desenvolvido por", - "disclaimer_torbox": "O Nuvio não é afiliado ao Torbox de nenhuma forma.", - "disclaimer_torrentio": "O Nuvio não é afiliado ao Torrentio de nenhuma forma.", + "powered_by": "Powered by", + "disclaimer_torbox": "O Nuvio não tem qualquer afiliação com o Torbox.", + "disclaimer_torrentio": "O Nuvio não tem qualquer afiliação com o Torrentio.", "installed_badge": "✓ INSTALADO", - "promo_title": "⚡ Precisas de um Serviço Debrid?", - "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", - "promo_button": "Subscrever TorBox", + "promo_title": "⚡ Precisas de um serviço Debrid?", + "promo_desc": "Usa o TorBox para obteres melhor desempenho em integrações suportadas.", + "promo_button": "Obter Subscrição TorBox", "service_label": "Serviço Debrid *", "api_key_label": "Chave API *", - "sorting_label": "Ordenar", + "sorting_label": "Ordenação", "exclude_qualities": "Excluir Qualidades", "priority_languages": "Idiomas Prioritários", - "max_results": "Máx. Resultados", + "max_results": "Máximo de Resultados", "additional_options": "Opções Adicionais", - "no_download_links": "Não mostrar links de download", + "no_download_links": "Não mostrar links de transferência", "no_debrid_catalog": "Não mostrar catálogo debrid", "install_button": "Instalar Torrentio", "installing": "A instalar...", - "update_button": "Atualizar Configurações", + "update_button": "Atualizar Configuração", "updating": "A atualizar...", "remove_button": "Remover Torrentio", - "error_api_required": "Chave API Necessária", - "error_api_required_desc": "Insere a chave API do teu serviço debrid para instalar o Torrentio.", + "error_api_required": "Chave API Obrigatória", + "error_api_required_desc": "Por favor, insere a chave API do teu serviço debrid para instalar o Torrentio.", "success_installed": "Addon Torrentio instalado com sucesso!", "success_removed": "Addon Torrentio removido com sucesso", - "alert_disconnect_title": "Desconectar Torbox", - "alert_disconnect_msg": "Tens a certeza que desejas desconectar o Torbox? Isso removerá o addon e limpará a tua chave API guardada." + "alert_disconnect_title": "Desligar Torbox", + "alert_disconnect_msg": "Tens a certeza que queres desligar o Torbox? Isto removerá o addon e a chave API guardada." }, "home_screen": { - "title": "Configurações do Início", + "title": "Definições do Ecrã Principal", "changes_applied": "Alterações Aplicadas", "display_options": "OPÇÕES DE EXIBIÇÃO", - "show_hero": "Mostrar Secção Hero", + "show_hero": "Mostrar Secção de Destaque", "show_hero_desc": "Conteúdo em destaque no topo", - "show_this_week": "Mostrar Secção Esta Semana", + "show_this_week": "Mostrar Secção desta Semana", "show_this_week_desc": "Novos episódios da semana atual", "select_catalogs": "Selecionar Catálogos", "all_catalogs": "Todos os catálogos", "selected": "selecionados", - "hero_layout": "Layout do Hero", - "layout_legacy": "Legado", + "prefer_external_meta": "Preferir Addon de Metadados Externo", + "prefer_external_meta_desc": "Usar metadados externos na página de detalhes", + "hero_layout": "Layout do Destaque", + "layout_legacy": "Clássico", "layout_carousel": "Carrossel", "layout_appletv": "Apple TV", - "layout_desc": "Banner largura total, cartões deslizantes ou estilo Apple TV", - "featured_source": "Fonte de Destaques", - "using_catalogs": "A Usar Catálogos", + "layout_desc": "Banner de largura total, cartões deslizantes ou estilo Apple TV", + "featured_source": "Fonte do Destaque", + "using_catalogs": "A usar Catálogos", "manage_selected_catalogs": "Gerir catálogos selecionados", - "dynamic_bg": "Fundo Hero Dinâmico", + "dynamic_bg": "Fundo Dinâmico no Destaque", "dynamic_bg_desc": "Banner desfocado atrás do carrossel", - "performance_note": "Pode impactar o desempenho em dispositivos mais lentos.", - "posters": "Pósteres", + "performance_note": "Pode afetar o desempenho em dispositivos mais fracos.", + "posters": "Posters", "show_titles": "Mostrar Títulos", - "poster_size": "Tamanho do Póster", - "poster_corners": "Cantos do Póster", + "poster_size": "Tamanho do Poster", + "poster_corners": "Cantos do Poster", "size_small": "Pequeno", "size_medium": "Médio", "size_large": "Grande", "corners_square": "Quadrado", "corners_rounded": "Arredondado", "corners_pill": "Pílula", - "about_these_settings": "SOBRE ESTAS CONFIGURAÇÕES", - "about_desc": "Estas configurações controlam como o conteúdo é exibido no Início. As alterações são aplicadas imediatamente sem reiniciar a app.", + "about_these_settings": "SOBRE ESTAS DEFINIÇÕES", + "about_desc": "Estas definições controlam o conteúdo do ecrã principal. As alterações são imediatas.", "hero_catalogs": { - "title": "Catálogos da Secção Hero", + "title": "Catálogos da Secção de Destaque", "select_all": "Selecionar Tudo", "clear_all": "Limpar Tudo", - "info": "Seleciona quais catálogos exibir na secção hero. Se nenhum for selecionado, todos os catálogos serão usados. Não se esqueça de pressionar Guardar quando terminar.", - "settings_saved": "Configurações Guardadas", + "info": "Escolhe que catálogos mostrar no destaque. Se nenhum for selecionado, serão usados todos. Não te esqueças de Guardar.", + "settings_saved": "Definições Guardadas", "error_load": "Falha ao carregar catálogos", "movies": "Filmes", - "tv_shows": "Séries e TV" + "tv_shows": "Séries" } }, "calendar": { @@ -1088,179 +1100,130 @@ "loading": "A carregar calendário...", "no_scheduled_episodes": "Sem episódios agendados", "check_back_later": "Volta mais tarde", - "showing_episodes_for": "A mostrar episódios para {{date}}", + "showing_episodes_for": "A mostrar episódios de {{date}}", "show_all_episodes": "Mostrar Todos os Episódios", - "no_episodes_for": "Nenhum episódio para {{date}}", - "no_upcoming_found": "Nenhum episódio futuro encontrado", - "add_series_desc": "Adiciona séries à tua biblioteca para ver os próximos episódios aqui" + "no_episodes_for": "Sem episódios para {{date}}", + "no_upcoming_found": "Não foram encontrados episódios futuros", + "add_series_desc": "Adiciona séries à tua biblioteca para veres aqui os próximos episódios" }, "mdblist": { - "title": "Fontes de Avaliação", + "title": "Fontes de Classificação", "status_disabled": "MDBList Desativado", - "status_active": "Chave de API Ativa", - "status_required": "Chave de API Necessária", - "status_disabled_desc": "A funcionalidade MDBList está atualmente desativada.", - "status_active_desc": "As avaliações do MDBList estão ativadas.", - "status_required_desc": "Adiciona tua chave abaixo para ativar as avaliações.", + "status_active": "Chave API Ativa", + "status_required": "Chave API Obrigatória", + "status_disabled_desc": "A funcionalidade MDBList está desativada.", + "status_active_desc": "As classificações do MDBList estão ativas.", + "status_required_desc": "Adiciona a tua chave abaixo para ativar as classificações.", "enable_toggle": "Ativar MDBList", - "enable_toggle_desc": "Ligar/desligar toda a funcionalidade do MDBList", - "api_section": "Chave de API", - "placeholder": "Cola a tua chave de API MDBList", + "enable_toggle_desc": "Ligar/desligar todas as funções do MDBList", + "api_section": "Chave API", + "placeholder": "Cola a tua chave API MDBList", "save": "Guardar", "clear": "Limpar Chave", - "rating_providers": "Provedores de Avaliação", - "rating_providers_desc": "Escolhe quais avaliações exibir no aplicativo", - "how_to": "Como obter uma chave de API", - "step_1": "Faz login no", + "rating_providers": "Fornecedores de Classificação", + "rating_providers_desc": "Escolhe que classificações mostrar na app", + "how_to": "Como obter uma chave API", + "step_1": "Inicia sessão no", "step_1_link": "site do MDBList", - "step_2": "Vá para a secção", - "step_2_settings": "Configurações", + "step_2": "Vai à secção de", + "step_2_settings": "Definições", "step_2_api": "API", "step_2_end": ".", - "step_3": "Gere uma nova chave e copia-a.", - "go_to_website": "Ir para o MDBList", - "alert_clear_title": "Limpar Chave de API", - "alert_clear_msg": "Tens a certeza de que desejas remover a chave de API guardada?", - "success_saved": "Chave de API guardada com sucesso.", - "error_empty": "Chave API não pode estar vazia.", - "error_save": "Ocorreu um erro ao guardar. Por favor, tenta novamente.", - "api_key_empty_error": "A Chave de API não pode estar vazia.", - "success_cleared": "Chave de API limpa com sucesso", - "error_clear": "Falha ao limpar a chave de API" + "step_3": "Gera uma nova chave e copia-a.", + "go_to_website": "Ir para MDBList", + "alert_clear_title": "Limpar Chave API", + "alert_clear_msg": "Tens a certeza que queres remover a chave API guardada?", + "success_saved": "Chave API guardada com sucesso.", + "error_empty": "A chave API não pode estar vazia.", + "error_save": "Ocorreu um erro ao guardar. Tenta novamente.", + "api_key_empty_error": "A chave API não pode estar vazia.", + "success_cleared": "Chave API apagada com sucesso", + "error_clear": "Falha ao apagar a chave API" }, "notification": { - "title": "Configurações de Notificações", + "title": "Definições de Notificação", "section_general": "Geral", "enable_notifications": "Ativar Notificações", "section_types": "Tipos de Notificação", "new_episodes": "Novos Episódios", - "upcoming_shows": "Próximas Séries", + "upcoming_shows": "Séries Futuras", "reminders": "Lembretes", "section_timing": "Tempo de Notificação", - "timing_desc": "Quanto tempo antes de um episódio ser exibido deves ser notificado?", + "timing_desc": "Quanto tempo antes do episódio queres ser notificado?", "hours_1": "1 hora", "hours_suffix": "horas", - "section_status": "Estado da Notificação", - "stats_upcoming": "Próximos", + "section_status": "Estado das Notificações", + "stats_upcoming": "Futuras", "stats_this_week": "Esta Semana", "stats_total": "Total", "sync_button": "Sincronizar Biblioteca e Trakt", "syncing": "A sincronizar...", - "sync_desc": "Sincroniza automaticamente notificações para todos os programas na tua biblioteca e listas do Trakt.", + "sync_desc": "Sincroniza automaticamente as notificações para séries na biblioteca e watchlist/coleção do Trakt.", "section_advanced": "Avançado", - "reset_button": "Redefinir Todas as Notificações", - "test_button": "Notificação de Teste (5 seg)", + "reset_button": "Repor Todas as Notificações", + "test_button": "Testar Notificação (5 seg)", "test_notification_in": "Notificação em {{seconds}}s...", "test_notification_text": "A notificação aparecerá em {{seconds}} segundos", - "alert_reset_title": "Redefinir Notificações", - "alert_reset_msg": "Isso cancelará todas as notificações agendadas, mas não removerá nada da tua biblioteca guardada. Tens a certeza?", - "alert_reset_success": "Todas as notificações foram redefinidas", - "alert_sync_complete": "Sincronização Completa", - "alert_sync_msg": "Notificações sincronizadas com sucesso para a tua biblioteca e itens do Trakt.\n\nAgendadas: {{upcoming}} próximos episódios\nEsta semana: {{thisWeek}} episódios", - "alert_test_scheduled": "Notificação de teste agendada para ser acionada instantaneamente" - }, - "player": { - "title": "Reprodutor", - "section_selection": "SELEÇÃO DE REPRODUTOR", - "internal_title": "Reprodutor Integrado", - "internal_desc": "Usar o reprodutor de vídeo padrão do aplicativo", - "vlc_title": "VLC", - "vlc_desc": "Abrir streams no reprodutor de mídia VLC", - "infuse_title": "Infuse", - "infuse_desc": "Abrir streams no reprodutor Infuse", - "outplayer_title": "OutPlayer", - "outplayer_desc": "Abrir streams no OutPlayer", - "vidhub_title": "VidHub", - "vidhub_desc": "Abrir streams no reprodutor VidHub", - "infuse_live_title": "Infuse Livecontainer", - "infuse_live_desc": "Abrir streams no reprodutor Infuse LiveContainer", - "external_title": "Reprodutor Externo", - "external_desc": "Abrir streams no teu reprodutor de vídeo preferido", - "section_playback": "OPÇÕES DE REPRODUÇÃO", - "skip_intro_settings_title": "Saltar introdução", - "powered_by_introdb": "Desenvolvido por IntroDB", - "autoplay_title": "Reprodução Automática (Primeiro Stream)", - "autoplay_desc": "Iniciar automaticamente o primeiro stream mostrado na lista.", - "resume_title": "Sempre Retomar", - "resume_desc": "Saltar o aviso de retomar e continuar automaticamente de onde parou (se assistido menos de 85%).", - "engine_title": "Motor do reprodutor", - "engine_desc": "Escolhe o motor de reprodução de vídeo subjacente (apenas Android)", - "option_auto": "Auto", - "option_auto_desc_engine": "ExoPlayer + MPV como reserva", - "option_mpv": "MPV", - "option_mpv_desc": "Apenas MPV", - "option_auto_desc_decoder": "Melhor equilíbrio", - "option_sw": "SW", - "option_sw_desc": "Software", - "option_hw": "HW", - "option_hw_desc": "Hardware", - "option_hw_plus": "HW+", - "option_hw_plus_desc": "HW Completo", - "option_gpu_desc": "Padrão", - "option_gpu_next_desc": "Avançado", - "restart_msg_decoder": "Por favor, reinicia a aplicação para que a alteração do descodificador tenha efeito.", - "restart_msg_gpu": "Por favor, reinicia a aplicação para que a alteração do modo GPU tenha efeito.", - "decoder_title": "Modo Decodificador", - "decoder_desc": "Como o vídeo é decodificado. Auto é recomendado para melhor equilíbrio.", - "gpu_title": "Renderização GPU", - "gpu_desc": "GPU-Next oferece melhor HDR e gerenciamento de cores.", - "external_downloads_title": "Reprodutor Externo para Downloads", - "external_downloads_desc": "Reproduzir conteúdo descarregado no teu reprodutor externo preferido.", - "restart_required": "Reinicialização Necessária" + "alert_reset_title": "Repor Notificações", + "alert_reset_msg": "Isto cancelará todas as notificações agendadas, mas não removerá nada da biblioteca. Tens a certeza?", + "alert_reset_success": "Todas as notificações foram repostas", + "alert_sync_complete": "Sincronização Concluída", + "alert_sync_msg": "Notificações sincronizadas com sucesso.\n\nAgendadas: {{upcoming}} episódios futuros\nEsta semana: {{thisWeek}} episódios", + "alert_test_scheduled": "Notificação de teste agendada para disparar instantaneamente" }, "backup": { - "title": "Backup e Restauração", - "options_title": "Opções de Backup", - "options_desc": "Escolhe o que incluir nos teus backups", - "section_core": "Dados Principais", + "title": "Cópia de Segurança e Restauro", + "options_title": "Opções de Cópia", + "options_desc": "Escolhe o que incluir na cópia de segurança", + "section_core": "Dados Base", "section_addons": "Addons e Integrações", - "section_settings": "Configurações e Preferências", + "section_settings": "Definições e Preferências", "library_label": "Biblioteca", "library_desc": "Os teus filmes e séries guardados", - "watch_progress_label": "Progresso Assistido", - "watch_progress_desc": "Posição de continuar a assistir", + "watch_progress_label": "Progresso de Visualização", + "watch_progress_desc": "Posições de reprodução atual", "addons_label": "Addons", - "addons_desc": "Addons Stremio instalados", + "addons_desc": "Addons do Stremio instalados", "plugins_label": "Plugins", - "plugins_desc": "Configurações de scraper personalizadas", + "plugins_desc": "Configurações personalizadas de scrapers", "trakt_label": "Integração Trakt", - "trakt_desc": "Dados de sincronização e tokens de autenticação", - "app_settings_label": "Configurações do App", + "trakt_desc": "Sincronização de dados e tokens de autenticação", + "app_settings_label": "Definições da App", "app_settings_desc": "Tema, preferências e configurações", - "user_prefs_label": "Preferências do Usuário", - "user_prefs_desc": "Ordem de addons e configurações de UI", - "catalog_settings_label": "Configurações de Catálogo", + "user_prefs_label": "Preferências do Utilizador", + "user_prefs_desc": "Ordem de addons e definições de UI", + "catalog_settings_label": "Definições de Catálogo", "catalog_settings_desc": "Filtros e preferências de catálogo", "api_keys_label": "Chaves API", - "api_keys_desc": "Chaves MDBList e OpenRouter", - "action_create": "Criar Backup", - "action_restore": "Restaurar de Backup", - "section_info": "Sobre Backups", - "info_text": "• Personaliza o que é guardado usando as opções acima\n• Arquivos de backup são armazenados localmente no teu dispositivo\n• Partilha o teu backup para transferir dados entre dispositivos\n• Restaurar sobrescreverá os teus dados atuais", - "alert_create_title": "Criar Backup", - "alert_no_content": "Nenhum conteúdo selecionado para backup.\n\nPor favor, ativa pelo menos uma opção na secção Opções de Backup acima.", - "alert_backup_created_title": "Backup Criado", - "alert_backup_created_msg": "O teu backup foi criado e está pronto para ser partilhado.", - "alert_backup_failed_title": "Falha no Backup", - "alert_restore_confirm_title": "Confirmar Restauração", - "alert_restore_confirm_msg": "Isso restaurará os teus dados de um backup criado em {{date}}.\n\nEsta ação sobrescreverá os teus dados atuais. Tens a certeza de que desejas continuar?", - "alert_restore_complete_title": "Restauração Completa", - "alert_restore_complete_msg": "Os teus dados foram restaurados com sucesso. Por favor, reinicia o aplicativo para ver todas as alterações.", - "alert_restore_failed_title": "Falha na Restauração", + "api_keys_desc": "Chaves do MDBList e OpenRouter", + "action_create": "Criar Cópia de Segurança", + "action_restore": "Restaurar de Cópia de Segurança", + "section_info": "Sobre Cópias de Segurança", + "info_text": "• Escolhe o que queres guardar usando os seletores\n• Os ficheiros são guardados localmente no dispositivo\n• Partilha o ficheiro para transferir dados entre dispositivos\n• Restaurar irá substituir os teus dados atuais", + "alert_create_title": "Criar Cópia de Segurança", + "alert_no_content": "Nada selecionado para cópia.\n\nAtiva pelo menos uma opção acima.", + "alert_backup_created_title": "Cópia Criada", + "alert_backup_created_msg": "A tua cópia de segurança foi criada e está pronta para ser partilhada.", + "alert_backup_failed_title": "Falha na Cópia", + "alert_restore_confirm_title": "Confirmar Restauro", + "alert_restore_confirm_msg": "Isto irá restaurar dados de uma cópia criada em {{date}}.\n\nEsta ação irá substituir os teus dados atuais. Queres continuar?", + "alert_restore_complete_title": "Restauro Concluído", + "alert_restore_complete_msg": "Os dados foram restaurados com sucesso. Reinicia a app para ver as alterações.", + "alert_restore_failed_title": "Falha no Restauro", "restart_app": "Reiniciar App", "alert_restart_failed_title": "Falha ao Reiniciar", - "alert_restart_failed_msg": "Falha ao reiniciar o aplicativo. Por favor, fecha e reabre o aplicativo manualmente para ver teus dados restaurados." + "alert_restart_failed_msg": "Não foi possível reiniciar automaticamente. Por favor, fecha e abre a app manualmente." }, "updates": { - "title": "Atualizações do App", - "status_checking": "A verficar atualizações...", + "title": "Atualizações da App", + "status_checking": "A procurar atualizações...", "status_available": "Atualização disponível!", - "status_downloading": "A descarregar atualização...", + "status_downloading": "A transferir atualização...", "status_installing": "A instalar atualização...", "status_success": "Atualização instalada com sucesso!", "status_error": "Falha na atualização", - "status_ready": "Pronto para verificar atualizações", - "action_check": "Verificar Atualizações", + "status_ready": "Pronto para procurar atualizações", + "action_check": "Procurar Atualizações", "action_install": "Instalar Atualização", "release_notes": "Notas de lançamento:", "version": "Versão:", @@ -1269,33 +1232,82 @@ "current_release_notes": "Notas da versão atual:", "github_release": "LANÇAMENTO GITHUB", "current": "Atual:", - "latest": "Mais recente:", + "latest": "Última:", "notes": "Notas:", "view_release": "Ver Lançamento", - "notification_settings": "CONFIGURAÇÕES DE NOTIFICAÇÃO", + "notification_settings": "DEFINIÇÕES DE NOTIFICAÇÃO", "ota_alerts_label": "Alertas de Atualização OTA", - "ota_alerts_desc": "Mostrar notificações para atualizações over-the-air", - "major_alerts_label": "Alertas de Grande Atualização", - "major_alerts_desc": "Mostrar notificações para novas versões do aplicativo no GitHub", - "alert_disable_ota_title": "Desativar Alertas de Atualização OTA?", - "alert_disable_ota_msg": "Não receberás mais notificações automáticas para atualizações OTA.\n\n⚠️ Aviso: Manter-se na versão mais recente é importante para:\n• Correções de bugs e melhorias de estabilidade\n• Novos recursos e aprimoramentos\n• Fornecer feedback preciso e relatórios de falhas\n\nAinda podes verificar atualizações manualmente nesta página.", - "alert_disable_major_title": "Desativar Alertas de Grande Atualização?", - "alert_disable_major_msg": "Não receberás mais notificações para grandes atualizações do aplicativo que exigem reinstalação.\n\n⚠️ Aviso: Grandes atualizações geralmente incluem:\n• Patches de segurança críticos\n• Mudanças que quebram compatibilidade e exigem reinstalação do aplicativo\n• Correções de compatibilidade importantes\n\nAinda podes verificar atualizações manualmente.", - "warning_note": "Manter alertas ativados garante que recebas correções de bugs e possa fornecer relatórios de falhas precisos.", + "ota_alerts_desc": "Mostrar notificações para atualizações 'over-the-air'", + "major_alerts_label": "Alertas de Versões Principais", + "major_alerts_desc": "Mostrar notificações para novas versões no GitHub", + "alert_disable_ota_title": "Desativar Alertas OTA?", + "alert_disable_ota_msg": "Deixarás de receber notificações automáticas para atualizações OTA.\n\n⚠️ Aviso: Manter a versão mais recente é importante para:\n• Correções de erros e melhorias de estabilidade\n• Novas funcionalidades e melhorias\n• Envio de feedback preciso e relatórios de erro\n\nAinda podes procurar atualizações manualmente neste ecrã.", + "alert_disable_major_title": "Desativar Alertas de Atualizações Importantes?", + "alert_disable_major_msg": "Deixarás de receber notificações para atualizações de grande escala que requerem reinstalação.\n\n⚠️ Aviso: As atualizações importantes incluem frequentemente:\n• Patches de segurança críticos\n• Alterações estruturais que exigem a reinstalação da app\n• Correções de compatibilidade importantes\n\nAinda podes procurar atualizações manualmente.", + "warning_note": "Manter os alertas ativados garante que recebes correções de erros e podes enviar relatórios de erro precisos.", "disable": "Desativar", "alert_no_update_to_install": "Nenhuma atualização disponível para instalar", "alert_install_failed": "Falha ao instalar atualização", - "alert_no_update_title": "Sem Atualização", - "alert_update_applied_msg": "A atualização será aplicada na próxima reinicialização" + "alert_no_update_title": "Sem Atualizações", + "alert_update_applied_msg": "A atualização será aplicada no próximo reinício da aplicação" + }, + "player": { + "title": "Reprodutor de Vídeo", + "section_selection": "SELEÇÃO DO REPRODUTOR", + "internal_title": "Reprodutor Integrado", + "internal_desc": "Usa o reprodutor padrão da aplicação", + "vlc_title": "VLC", + "vlc_desc": "Abrir transmissões no VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Abrir transmissões no Infuse player", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Abrir transmissões no OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Abrir transmissões no VidHub player", + "infuse_live_title": "Infuse LiveContainer", + "infuse_live_desc": "Abrir transmissões no Infuse player LiveContainer", + "external_title": "Reprodutor Externo", + "external_desc": "Abrir transmissões no teu reprodutor de vídeo preferido", + "section_playback": "OPÇÕES DE REPRODUÇÃO", + "skip_intro_settings_title": "Saltar Intro", + "powered_by_introdb": "Tecnologia IntroDB", + "autoplay_title": "Reprodução Automática", + "autoplay_desc": "Iniciar automaticamente a primeira transmissão mostrada na lista.", + "resume_title": "Retomar Sempre", + "resume_desc": "Ignorar o aviso de retomar e continuar automaticamente de onde paraste (se tiveres assistido a menos de 85%).", + "engine_title": "Motor do Reprodutor", + "engine_desc": "O modo Auto utiliza ExoPlayer com alternativa (fallback) para MPV. Alguns formatos como Dolby Vision e HDR podem não ser suportados pelo MPV, por isso recomenda-se o modo Auto para melhor compatibilidade.", + "decoder_title": "Modo de Descodificação", + "decoder_desc": "Forma como o vídeo é descodificado. O modo Auto é recomendado para o melhor equilíbrio.", + "gpu_title": "Renderização por GPU", + "gpu_desc": "GPU-Next oferece melhor gestão de cores e HDR.", + "external_downloads_title": "Reprodutor Externo para Downloads", + "external_downloads_desc": "Reproduzir conteúdo descarregado no teu reprodutor externo preferido.", + "restart_required": "Reinício Necessário", + "restart_msg_decoder": "Reinicia a aplicação para que a alteração do descodificador surta efeito.", + "restart_msg_gpu": "Reinicia a aplicação para que a alteração do modo GPU surta efeito.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + fallback MPV", + "option_mpv": "MPV", + "option_mpv_desc": "Apenas MPV", + "option_auto_desc_decoder": "Melhor equilíbrio", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Hardware Total", + "option_gpu_desc": "Padrão", + "option_gpu_next_desc": "Avançado" }, "plugins": { - "title": "Extensões", - "enable_title": "Ativar Extensões", - "enable_desc": "Permite que o aplicativo use extensões instaladas para pesquisar fontes de mídia", - "repo_config_title": "Configuração do Repositório", - "repo_config_desc": "Gere repositórios de extensões externos. Ativa ou desativa cada um abaixo.", + "title": "Plugins", + "enable_title": "Ativar Plugins", + "enable_desc": "Ativar o motor de plugins para resolver fontes de media externas", + "repo_config_title": "Configuração de Repositórios", + "repo_config_desc": "Gere repositórios de plugins externos. Ativa ou desativa cada repositório abaixo.", "your_repos": "Repositórios", - "your_repos_desc": "Configura fontes externas para extensões.", + "your_repos_desc": "Configura fontes externas para plugins.", "add_repo_button": "Adicionar Repositório", "refresh": "Atualizar", "remove": "Remover", @@ -1304,116 +1316,116 @@ "updating": "A atualizar...", "success": "Sucesso", "error": "Erro", - "alert_repo_added": "Repositório adicionado e extensões carregadas com sucesso", + "alert_repo_added": "Repositório adicionado e plugins carregados com sucesso", "alert_repo_saved": "URL do repositório guardado com sucesso", "alert_repo_refreshed": "Repositório atualizado com sucesso", - "alert_invalid_url": "Formato de URL inválido", - "alert_plugins_cleared": "Todas as extensões foram removidas", - "alert_cache_cleared": "Cache do repositório limpo com sucesso", + "alert_invalid_url": "Formato de URL Inválido", + "alert_plugins_cleared": "Todos os plugins foram removidos", + "alert_cache_cleared": "Cache do repositório limpa com sucesso", "unknown": "Desconhecido", "active": "Ativo", "available": "Disponível", - "platform_disabled": "Desativado pela plataforma", + "platform_disabled": "Plataforma Desativada", "limited": "Limitado", - "clear_all": "Limpar todas as extensões", - "clear_all_desc": "Tens a certeza de que desejas remover todas as extensões instaladas? Esta ação não pode ser desfeita.", - "clear_cache": "Limpar cache do repositório", - "clear_cache_desc": "Isso removerá a URL guardado e limpará todos os dados de extensões em cache.", + "clear_all": "Remover Todos os Plugins", + "clear_all_desc": "Tens a certeza de que queres remover todos os plugins instalados? Esta ação não pode ser desfeita.", + "clear_cache": "Limpar Cache do Repositório", + "clear_cache_desc": "Isto removerá o URL do repositório guardado e limpará todos os dados em cache. Terás de introduzir o URL do repositório novamente.", "add_new_repo": "Adicionar Novo Repositório", - "available_plugins": "Extensões Disponíveis ({{count}})", - "placeholder": "Pesquisar extensões...", - "all": "Tudo", + "available_plugins": "Plugins Disponíveis ({{count}})", + "placeholder": "Procurar plugins...", + "all": "Todos", "filter_all": "Todos os Tipos", "filter_movies": "Filmes", - "filter_tv": "Séries de TV", - "enable_all": "Ativar Tudo", - "disable_all": "Desativar Tudo", - "no_plugins_found": "Nenhuma extensão encontrada", - "no_plugins_available": "Nenhuma extensão disponível", - "no_match_desc": "Nenhuma extensão corresponde a \"{{query}}\".", - "configure_repo_desc": "Configura um repositório acima para ver as extensões disponíveis.", - "clear_search": "Limpar Pesquisar", + "filter_tv": "Séries", + "enable_all": "Ativar Todos", + "disable_all": "Desativar Todos", + "no_plugins_found": "Nenhum Plugin Encontrado", + "no_plugins_available": "Nenhum Plugin Disponível", + "no_match_desc": "Nenhum plugin corresponde a \"{{query}}\". Tenta um termo de pesquisa diferente.", + "configure_repo_desc": "Configura um repositório acima para ver os plugins disponíveis.", + "clear_search": "Limpar Pesquisa", "no_external_player": "Sem reprodutor externo", - "showbox_token": "Token de UI do ShowBox", - "showbox_placeholder": "Cola o teu token de UI do ShowBox", + "showbox_token": "Token UI ShowBox", + "showbox_placeholder": "Cola o teu token UI ShowBox", "save": "Guardar", "clear": "Limpar", - "additional_settings": "Configurações Adicionais", + "additional_settings": "Definições Adicionais", "enable_url_validation": "Ativar Validação de URL", - "url_validation_desc": "Validar URLs de mídia antes de retorná-las (pode ser mais lento, mas melhora a confiabilidade)", - "group_streams": "Agrupar Fontes de Extensões", - "group_streams_desc": "Quando ativado, as fontes são agrupadas por repositório. Quando desativado, cada extensão aparece como um provedor separado.", - "sort_quality": "Ordenar por Qualidade", - "sort_quality_desc": "Quando ativado, as fontes são ordenadas primeiro por qualidade.", - "show_logos": "Mostrar Logos", - "show_logos_desc": "Exibir logos das extensões ao lado dos links de mídia.", + "url_validation_desc": "Valida os URLs de media antes de os apresentar (pode tornar os resultados mais lentos, mas melhora a fiabilidade)", + "group_streams": "Agrupar Fontes de Plugins", + "group_streams_desc": "Quando ativado, as fontes são agrupadas por repositório. Quando desativado, cada plugin aparece como um fornecedor separado.", + "sort_quality": "Ordenar primeiro por Qualidade", + "sort_quality_desc": "Quando ativado, as fontes são ordenadas primeiro pela qualidade. Apenas disponível quando o agrupamento está ativo.", + "show_logos": "Mostrar Logos dos Plugins", + "show_logos_desc": "Apresenta os logótipos dos plugins junto aos links de media no ecrã de fontes.", "quality_filtering": "Filtragem de Qualidade", - "quality_filtering_desc": "Excluir resoluções específicas dos resultados. Toque numa qualidade para removê-la das extensões.", + "quality_filtering_desc": "Excluir resoluções de vídeo específicas dos resultados de pesquisa. Toca numa qualidade para a excluir dos resultados.", "excluded_qualities": "Qualidades excluídas:", "language_filtering": "Filtragem de Idioma", - "language_filtering_desc": "Excluir idiomas específicos dos resultados. Toque num idioma para removê-lo das extensões.", + "language_filtering_desc": "Excluir idiomas específicos dos resultados de pesquisa. Toca num idioma para o excluir dos resultados.", "note": "Nota:", - "language_filtering_note": "Este filtro aplica-se apenas a provedores que incluem informações de idioma.", + "language_filtering_note": "Este filtro aplica-se apenas a fornecedores que incluam informação de idioma. Não afeta outros fornecedores.", "excluded_languages": "Idiomas excluídos:", - "about_title": "Sobre Extensões", - "about_desc_1": "Extensões são módulos que adaptam conteúdo de vários protocolos externos. Elas rodam localmente e são instaladas de repositórios confiáveis.", - "about_desc_2": "Extensões marcadas como \"Limitadas\" podem exigir configurações externas específicas.", - "help_title": "Configuração de Extensões", - "help_step_1": "1. **Ativar Extensões** - Liga o interruptor principal", - "help_step_2": "2. **Adicionar Repositório** - Adiciona uma URL de repositório válida", - "help_step_3": "3. **Atualizar Repositório** - Descarrega extensões disponíveis", - "help_step_4": "4. **Ativar** - Ativa as extensões que deseja usar", - "got_it": "Entendi!", - "repo_format_hint": "Formato: https://raw.githubusercontent.com/usuario/repo/branch", + "about_title": "Sobre os Plugins", + "about_desc_1": "Os plugins são componentes modulares que adaptam conteúdo de vários protocolos externos. São executados localmente no teu dispositivo e podem ser instalados a partir de repositórios de confiança.", + "about_desc_2": "Plugins marcados como \"Limitados\" podem exigir configurações externas específicas.", + "help_title": "Configuração de Plugins", + "help_step_1": "1. **Ativar Plugins** - Liga o interruptor principal", + "help_step_2": "2. **Adicionar Repositório** - Adiciona um URL de repositório válido", + "help_step_3": "3. **Atualizar Repositório** - Procura os plugins disponíveis", + "help_step_4": "4. **Ativar** - Ativa os plugins que desejas usar", + "got_it": "Entendido!", + "repo_format_hint": "Formato: https://raw.githubusercontent.com/utilizador/repo/refs/heads/branch", "cancel": "Cancelar", "add": "Adicionar" }, "theme": { - "title": "Temas do App", + "title": "Temas da App", "select_theme": "SELECIONAR TEMA", "create_custom": "Criar Tema Personalizado", "options": "OPÇÕES", - "use_dominant_color": "Usar Cor Dominante da Arte", + "use_dominant_color": "Usar Cor Dominante da Capa", "categories": { "all": "Todos os Temas", "dark": "Temas Escuros", "colorful": "Coloridos", - "custom": "Os meus Temas" + "custom": "Meus Temas" }, "editor": { "theme_name_placeholder": "Nome do tema", "save": "Guardar", - "primary": "Primário", - "secondary": "Secundário", + "primary": "Primária", + "secondary": "Secundária", "background": "Fundo", "invalid_name_title": "Nome Inválido", - "invalid_name_msg": "Por favor insere um nome válido" + "invalid_name_msg": "Por favor, introduz um nome de tema válido" }, "alerts": { - "delete_title": "Excluir Tema", - "delete_msg": "Tens a certeza que desejas excluir \"{{name}}\"?", + "delete_title": "Eliminar Tema", + "delete_msg": "Tens a certeza de que queres eliminar \"{{name}}\"?", "ok": "OK", - "delete": "Excluir", + "delete": "Eliminar", "cancel": "Cancelar", - "back": "Configurações" + "back": "Definições" } }, "legal": { - "title": "Aviso Legal", + "title": "Avisos Legais", "intro_title": "Natureza da Aplicação", - "intro_text": "O Nuvio é um reprodutor de mídia e aplicativo de gerenciamento de metadados. Atua apenas como uma interface do lado do cliente para navegar por metadados disponíveis publicamente (filmes, programas de TV, etc.) e reproduzir arquivos de mídia fornecidos pelo usuário ou extensões de terceiros. O Nuvio em si não hospeda, armazena, distribui ou indexa qualquer conteúdo de mídia.", - "extensions_title": "Extensões de Terceiros", - "extensions_text": "O Nuvio usa uma arquitetura extensível que permite aos usuários instalar plugins de terceiros (extensões). Essas extensões são desenvolvidas e mantidas por desenvolvedores independentes não afiliados ao Nuvio. Não temos controle sobre, e não assumimos responsabilidade por, o conteúdo, legalidade ou funcionalidade de qualquer extensão de terceiros.", - "user_resp_title": "Responsabilidade do Usuário", - "user_resp_text": "Os usuários são os únicos responsáveis pelas extensões que instalam e pelo conteúdo que acessam. Ao usar este aplicativo, você concorda em garantir que tem o direito legal de acessar qualquer conteúdo que visualizar usando o Nuvio. Os desenvolvedores do Nuvio não endossam ou incentivam a violação de direitos autorais.", - "dmca_title": "Direitos Autorais e DMCA", - "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", + "intro_text": "A Nuvio é um reprodutor de media e uma aplicação de gestão de metadados. Atua exclusivamente como uma interface do lado do cliente para navegar em metadados publicamente disponíveis (filmes, séries, etc.) e reproduzir ficheiros de media fornecidos pelo utilizador ou por extensões de terceiros. A Nuvio em si não aloja, armazena, distribui ou indexa qualquer conteúdo de media.", + "extensions_title": "Plugins de Terceiros", + "extensions_text": "A Nuvio utiliza uma arquitetura extensível que permite aos utilizadores instalar plugins de terceiros. Estes plugins são desenvolvidos e mantidos por programadores independentes não afiliados à Nuvio. Não temos controlo e não assumimos qualquer responsabilidade pelo conteúdo, legalidade ou funcionalidade de qualquer plugin de terceiros.", + "user_resp_title": "Responsabilidade do Utilizador", + "user_resp_text": "Os utilizadores são os únicos responsáveis pelos plugins que instalam e pelo conteúdo a que acedem. Ao utilizar esta aplicação, concordas em garantir que tens o direito legal de aceder a qualquer conteúdo que visualizes usando a Nuvio. Os programadores da Nuvio não endossam nem incentivam a violação de direitos de autor.", + "dmca_title": "Direitos de Autor e DMCA", + "dmca_text": "Respeitamos os direitos de propriedade intelectual de terceiros. A Nuvio não aloja conteúdo de media. Se acreditares que o código, ativos ou interface deste projeto infringem os teus direitos, envia um aviso através dos canais de contacto oficiais do projeto listados no website e no repositório.", "warranty_title": "Sem Garantia", - "warranty_text": "Este software é fornecido \"como está\", sem garantia de qualquer tipo, expressa ou implícita. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outra responsabilidade decorrente do uso deste software." + "warranty_text": "Este software é fornecido \"tal como está\", sem garantia de qualquer tipo, expressa ou implícita. Em caso algum os autores ou detentores dos direitos de autor serão responsáveis por qualquer reclamação, danos ou outra responsabilidade decorrente do uso deste software." }, "plugin_tester": { - "title": "Testador de Plugin", - "subtitle": "Execute scrapers e inspecione logs em tempo real", + "title": "Testador de Plugins", + "subtitle": "Executa scrapers e inspeciona logs em tempo real", "tabs": { "individual": "Individual", "repo": "Testador de Repo", @@ -1429,65 +1441,65 @@ "tmdb_id": "ID TMDB", "season": "Temporada", "episode": "Episódio", - "running": "A executar…", + "running": "A executar...", "run_test": "Executar Teste", "play": "Reproduzir", "done": "Concluído", - "test": "Testar", - "testing": "A testar…" + "test": "Teste", + "testing": "A testar..." }, "individual": { "load_from_url": "Carregar de URL", - "load_from_url_desc": "Cole um URL raw do GitHub ou IP local e toque em descarregar.", - "enter_url_error": "Por favor, insira um URL", - "code_loaded": "Código carregado de URL", + "load_from_url_desc": "Cola um URL raw do GitHub ou IP local e toca em transferir.", + "enter_url_error": "Por favor, introduz um URL", + "code_loaded": "Código carregado a partir do URL", "fetch_error": "Falha ao obter: {{message}}", - "no_code_error": "Sem código para executar", + "no_code_error": "Nenhum código para executar", "plugin_code": "Código do Plugin", - "focus_editor": "Focar editor", - "code_placeholder": "// Cole o código do plugin aqui...", + "focus_editor": "Focar editor de código", + "code_placeholder": "// Cola o código do plugin aqui...", "test_parameters": "Parâmetros de Teste", - "no_logs": "Sem logs. Execute um teste para ver a saída.", - "no_streams": "Nenhum stream encontrado.", - "streams_found": "{{count}} Stream Encontrado", - "streams_found_plural": "{{count}} Streams Encontrados", - "tap_play_hint": "Toque em Reproduzir para testar um stream no reprodutor nativo.", - "unnamed_stream": "Stream Sem Nome", + "no_logs": "Sem logs ainda. Executa um teste para ver resultados.", + "no_streams": "Nenhuma transmissão encontrada ainda.", + "streams_found": "{{count}} Transmissão Encontrada", + "streams_found_plural": "{{count}} Transmissões Encontradas", + "tap_play_hint": "Toca em Reproduzir para testar uma transmissão no reprodutor nativo.", + "unnamed_stream": "Transmissão sem nome", "quality": "Qualidade: {{quality}}", "size": "Tamanho: {{size}}", "url_label": "URL: {{url}}", - "headers_info": "Headers: {{count}} cabeçalho(s) personalizado(s)", - "find_placeholder": "Procurar no código…", + "headers_info": "Headers: {{count}} header(s) personalizado(s)", + "find_placeholder": "Procurar no código...", "edit_code_title": "Editar Código", - "no_url_stream_error": "Nenhum URL encontrado para este stream" + "no_url_stream_error": "Nenhum URL encontrado para esta transmissão" }, "repo": { "title": "Testador de Repo", - "description": "Obtenha um repositório (URL local ou GitHub raw) e teste cada fornecedor.", - "enter_repo_url_error": "Por favor, insira um URL de repositório", + "description": "Obtém um repositório (URL local ou GitHub raw) e testa cada fornecedor.", + "enter_repo_url_error": "Por favor, introduz um URL de repositório", "invalid_url_title": "URL Inválido", - "invalid_url_msg": "Use um URL raw do GitHub ou um URL local http(s).\n\nExemplo:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "invalid_url_msg": "Usa um URL raw do GitHub ou um URL http(s) local.\n\nExemplo:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", "manifest_build_error": "Não foi possível criar um URL de manifesto a partir da entrada", - "manifest_fetch_error": "Falha ao obter manifesto", - "repo_manifest_fetch_error": "Falha ao obter manifesto do repositório", + "manifest_fetch_error": "Falha ao obter o manifesto", + "repo_manifest_fetch_error": "Falha ao obter o manifesto do repositório", "missing_filename": "Nome de ficheiro em falta no manifesto", "scraper_build_error": "Não foi possível criar um URL de scraper", - "download_scraper_error": "Falha ao descarregar scraper", - "test_failed": "Teste falhou", + "download_scraper_error": "Falha ao transferir o scraper", + "test_failed": "O teste falhou", "test_parameters": "Parâmetros de Teste de Repo", "test_parameters_desc": "Estes parâmetros são usados apenas para o Testador de Repo.", "using_info": "A usar: {{mediaType}} • TMDB {{tmdbId}}", - "using_info_tv": "A usar: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "using_info_tv": "A usar: {{mediaType}} • TMDB {{tmdbId}} • T{{season}}E{{episode}}", "providers_title": "Fornecedores", "repository_default": "Repositório", "providers_count": "{{count}} fornecedores", - "fetch_hint": "Obtenha um repo para listar fornecedores.", - "test_all": "Testar Tudo", + "fetch_hint": "Obtém um repo para listar os fornecedores.", + "test_all": "Testar Todos", "status_running": "A EXECUTAR", "status_ok": "OK ({{count}})", "status_ok_empty": "OK (0)", "status_failed": "FALHOU", - "status_idle": "INATIVO", + "status_idle": "EM ESPERA", "tried_url": "Tentado: {{url}}", "provider_logs": "Logs do Fornecedor", "no_logs_captured": "Nenhum log capturado."