{
  "about.contact_title": "Sugestões ou encontraste um erro?",
  "about.contact_body": "Escreve-nos para",
  "about.contact_email_label": "feedback@midipiano.app",
  "about.feature_adaptive_body": "Pede à app para repetir um trecho difícil, baixa a velocidade ou ensaia com uma só mão até sair perfeito.",
  "about.feature_adaptive_title": "Pratica ao teu ritmo",
  "about.feature_connect_body": "Funciona com quase qualquer piano moderno. Liga-o por cabo ou Bluetooth e a app vai ouvir o que tocas.",
  "about.feature_connect_title": "Liga o teu teclado digital",
  "about.feature_feedback_body": "Mostramos-te de imediato se tocaste a nota certa ou se vais demasiado rápido, para melhorares em cada tentativa.",
  "about.feature_feedback_title": "Aprende com os erros",
  "about.feature_scores_body": "Carrega qualquer partitura em formato digital e vê como ganha vida no ecrã.",
  "about.feature_scores_title": "Toca a música que gostas",
  "about.hero_cta_midi": "Ligar teclado",
  "about.hero_cta_practice": "Começar a tocar",
  "about.lead": "Carrega as tuas partituras favoritas, liga o teu piano digital e recebe correções em tempo real enquanto tocas. Sem pressão, totalmente ao teu ritmo.",
  "about.partners_copied": "Copiado!",
  "about.partners_discount": "5% de desconto com o código",
  "about.partners_sponsored": "Publicidade",
  "about.partners_title": "Pianos com luzes compatíveis",
  "about.title": "Aprende piano ao teu ritmo.",
  "action.close": "Fechar",
  "app.name": "midipiano.app",
  "app.tagline": "Ligue o seu teclado MIDI, importe partituras MusicXML ou MEI e receba correções instantâneas de acertos, erros e timing diretamente no navegador.",
  "app.top_title.about": "Sobre o midipiano.app",
  "app.top_title.challenge": "Desafio do dia",
  "app.top_title.load": "Importar Partitura",
  "app.top_title.midi": "Dispositivos MIDI",
  "app.top_title.practice": "Praticar",
  "aria.main_nav": "Navegação principal",
  "cookies.accept_all": "Aceitar cookies",
  "cookies.banner_text": "Ao usar o midipiano.app, aceitas os nossos Termos e Condições. Usamos os cookies e o armazenamento do navegador necessários para a app funcionar. Podes aceitar ou recusar cookies opcionais.",
  "cookies.manage_button": "Aviso de cookies ({mode})",
  "cookies.manage_button_short": "Aviso legal e cookies",
  "cookies.mode_all": "armazenamento essencial e cookies opcionais",
  "cookies.mode_essential": "apenas essenciais",
  "cookies.policy_link": "Política de cookies",
  "cookies.privacy_link": "Política de privacidade",
  "cookies.reject_optional": "Recusar opcionais",
  "legal.terms_link": "Termos e condições",
  "legal.third_party_link": "Licenças",
  "feedback.mail_fallback_copied": "Não foi possível abrir a aplicação de email automaticamente. Email copiado: {email}",
  "feedback.mail_fallback_manual": "Não foi possível abrir a aplicação de email automaticamente. Escreve para: {email}",
  "feedback.summary_show_details": "Mostrar feedback",
  "feedback.summary_hide_details": "Ocultar feedback",
  "feedback.summary_score_label": "Pontuação de prática",
  "feedback.summary_score_aria": "Pontuação de prática {score} em 100",
  "feedback.summary_star_aria": "{rating} de 5 estrelas",
  "feedback.summary_review_measures": "Rever {measures}",
  "feedback.summary_title": "Resumo da prática",
  "feedback.summary_accuracy": "Precisão",
  "feedback.summary_timing_not_measured": "Timing não medido",
  "feedback.summary_timing_avg_value": "Timing médio {ms} ms",
  "feedback.summary_weak_measures": "{count} compassos fracos",
  "feedback.summary_errors": "Erros",
  "feedback.summary_missed": "Falhadas",
  "feedback.summary_early_late": "Cedo / tarde",
  "feedback.summary_sync": "Problemas de sincronização",
  "feedback.summary_speed": "Velocidade",
  "feedback.summary_balanced": "Sessão equilibrada",
  "feedback.summary_no_hand_data": "Ainda não há dados por mão.",
  "feedback.summary_no_weak_measures": "Sem compassos fracos",
  "feedback.summary_no_notes_played": "Ainda não foram tocadas notas",
  "feedback.summary_no_notes_played_detail": "Toque algumas notas primeiro para o midipiano.app indicar compassos concretos.",
  "feedback.summary_by_hand": "Por mão",
  "feedback.summary_measures_to_review": "Compassos a rever",
  "feedback.summary_hand_values": "{accuracy}% · falhadas {missed} · média {timing}",
  "feedback.summary_missed_count": "{count} falhadas",
  "feedback.summary_wrong_count": "{count} erradas",
  "feedback.summary_offtime_count": "{count} fora do tempo",
  "feedback.summary_sync_count": "{count} sinc.",
  "feedback.summary_measure_label": "c.{measure}",
  "feedback.summary_left_hand": "Mão esquerda",
  "feedback.summary_right_hand": "Mão direita",
  "feedback.summary_both_hands": "Ambas as mãos",
  "feedback.summary_mostly_early": "Tende a adiantar",
  "feedback.summary_mostly_late": "Tende a atrasar",
  "feedback.summary_left_more_missed": "A mão esquerda falhou mais notas",
  "feedback.summary_right_more_missed": "A mão direita falhou mais notas",
  "feedback.summary_hands_out_of_sync": "As mãos não chegam juntas",
  "feedback.summary_partial": "Sessão parcial",
  "feedback.summary_wait_assisted": "Modo de espera assistido",
  "feedback.summary_loop": "Prática em loop",
  "focus.button.aria_enter": "Modo Foco",
  "focus.button.aria_exit": "Sair do Modo Foco",
  "focus.button.bottom": "Modo",
  "focus.button.exit_bottom": "Modo Foco",
  "focus.button.exit_top": "Sair",
  "focus.button.top": "Foco",
  "focus.fab_label": "Modo foco",
  "focus.hand_short_both": "Ambas",
  "focus.hand_short_left": "Esquerda",
  "focus.hand_short_right": "Direita",
  "focus.loop_disabled_title": "Repetição A-B desativada",
  "focus.loop_enabled_title": "Repetição A-B ativada",
  "focus.loop_toggle_aria": "Alternar loop A-B",
  "focus.no_exercise": "Sem exercício",
  "import.error_file_too_large": "Ficheiro demasiado grande ({current}). Máx.: {max}.",
  "import.error_mxl_entry_count": "O MXL tem entradas demais ({count}). Max: {max}.",
  "import.error_mxl_entry_too_large": "Entrada MXL grande demais ({entry}: {current}). Max: {max}.",
  "import.error_mxl_uncompressed_too_large": "O conteúdo MXL descompactado é demasiado grande ({current}). Máx.: {max}.",
  "import.status_processing_fun": "A processar a partitura...",
  "import.status_error": "Erro de importação: {error}",
  "import.recaptcha_generic_error": "Não foi possível verificar esta importação. Espera uns segundos e tenta novamente.",
  "import.file_too_large": "Este ficheiro é demasiado grande para importar. Tenta com uma partitura mais pequena.",
  "import.file_unavailable": "Não foi possível ler o ficheiro. Escolhe-o novamente: os ficheiros na nuvem (iCloud, Dropbox) podem ainda estar a ser transferidos.",
  "import.status_file_too_large": "Ficheiro demasiado grande ({current}). Máx.: {max}.",
  "import.status_format_not_allowed": "Formato não permitido. Usa apenas: {formats}",
  "import.status_imported_success": "Importado com sucesso: {file}",
  "import.status_select_valid": "Seleciona um ficheiro válido ({formats}).",
  "language.selector_aria": "Idioma",
  "language.short_label": "Idioma",
  "midi.enable": "Ativar MIDI",
  "midi.enable_enabled": "MIDI ativado",
  "midi.error_api_unavailable": "Nenhuma API MIDI disponível.",
  "midi.generic_label": "MIDI",
  "midi.indicator_connected": "MIDI conectado: {input}",
  "midi.indicator_disconnected": "MIDI não ligado",
  "midi.input_generic": "entrada",
  "midi.inputs_aria": "Entradas MIDI",
  "midi.insecure_hint": " | causa possível: HTTP inseguro, experimenta HTTPS",
  "midi.no_inputs": "Sem entradas MIDI",
  "midi.refresh_devices": "Procurar dispositivos",
  "midi.reconnect_prompt_title": "O teclado foi desligado",
  "midi.reconnect_prompt_body": "O teu teclado MIDI pode ter perdido a ligação enquanto o ecrã estava desligado. Reativa-o para continuares a tocar.",
  "midi.reconnect_prompt_action": "Reativar",
  "midi.experimental_tag": "Beta",
  "midi.output_lights_subsection": "Teclas com luzes (opcional)",
  "midi.output_lights_enabled": "Luzes",
  "midi.output_lights_enabled_aria": "Ativar as luzes do teclado",
  "midi.output_lights_profile": "Fabricante/modelo",
  "midi.output_lights_profile_aria": "Fabricante ou modelo de teclado com luzes",
  "midi.output_lights_profile_generic": "Genérico (deteção automática)",
  "midi.output_lights_profile_mustar_meks": "Mustar / MEKS",
  "midi.output_lights_profile_casio_navigate": "Casio (MIDI In Navigate)",
  "midi.output_lights_profile_partykeys": "PopuMusic · PartyKeys",
  "midi.output_lights_profile_popupiano": "PopuMusic · PopuPiano",
  "midi.output_lights_profile_hint_generic": "O modo genérico envia MIDI Note On/Off padrão. Se o teu teclado não reagir, executa o scan automático para detetar o canal.",
  "midi.output_lights_profile_hint_mustar_meks": "O modo Mustar / MEKS envia Note On/Off padrão e também mensagens de luzes Mustar. Se não reagir, executa o scan automático para fixar o canal.",
  "midi.output_lights_profile_hint_casio": "Casio (LK-S): ativa primeiro o MIDI In Navigate no teclado e depois usa o scan automático para fixar o canal que acende as teclas.",
  "midi.output_channel": "Canal de saída",
  "midi.output_channel_aria": "Canal de saída MIDI",
  "midi.select_output_placeholder": "Seleciona recetor...",
  "midi.output_option_web_audio": "Áudio do navegador (Web Audio)",
  "midi.output_channel_scan_help_aria": "Ajuda de configuração automática do canal",
  "midi.output_channel_scan_committed": "Canal definido em {channel}.",
  "midi.output_channel_scan_finished": "Scan 1-16 concluído. Se as luzes responderam, repete-o e toca em \"Usar canal\".",
  "midi.output_channel_scan_running": "A testar o canal {current}/{total}... Toca em \"Usar canal\" se responder.",
  "midi.output_channel_scan_start": "Scan automático 1-16",
  "midi.output_channel_scan_use_current": "Usar canal {channel}",
  "midi.output_channel_scan_modal_title": "Configuração automática do canal",
  "midi.output_channel_scan_modal_body": "Esta funcionalidade testa automaticamente os canais 1-16 e envia uma nota de teste em cada canal.",
  "midi.output_channel_scan_modal_body_mustar_meks": "Para teclados Mustar / MEKS, este scan testa os canais 1-16 com Note On/Off padrão e depois aplica mensagens de luzes Mustar no canal selecionado.",
  "midi.output_channel_scan_modal_body_casio": "Para modelos Casio com teclas iluminadas, este scan envia notas MIDI padrão (Note On/Off).",
  "midi.output_channel_scan_modal_steps": "Quando o teu teclado reagir, carrega novamente em \"Scan automático\" para fixar o canal detetado.",
  "midi.output_channel_scan_modal_steps_mustar_meks": "Executa o scan automático e observa as luzes do teclado. Quando reagir, carrega novamente para fixar o canal.",
  "midi.output_channel_scan_modal_steps_casio": "No teclado, ativa primeiro MIDI In Navigate. Depois executa o scan automático e carrega novamente quando as teclas reagirem.",
  "midi.output_channel_scan_modal_experimental_note": "O comportamento pode variar consoante o modelo do teclado e a versão do firmware.",
  "midi.output_channel_scan_modal_experimental_note_mustar_meks": "Algumas versões de firmware Mustar / MEKS só reagem em portas MIDI de saída específicas.",
  "midi.output_channel_scan_modal_experimental_note_casio": "O MIDI In Navigate é uma configuração do teclado e a app não o pode ativar ou desativar remotamente.",
  "midi.output_volume": "Volume de saída",
  "midi.outputs_aria": "Saídas MIDI",
  "midi.reco_ios_link_label": "Descobre o MIDIWeb Browser (midiweb.cc)",
  "midi.reco_ios_appstore_label": "Descarregar na App Store",
  "midi.reco_ios_body": "Os navegadores no iPhone e no iPad (Safari, Chrome, Edge...) não conseguem ligar-se a um teclado MIDI. A nossa recomendação: MIDIWeb Browser, um navegador gratuito com suporte MIDI. Abre-o e vai a https://midipiano.app.",
  "midi.reco_mac_body": "O Safari no Mac não consegue ligar-se a um teclado MIDI. Usa um navegador com suporte MIDI como o Chrome, o Edge ou o Firefox, ou a nossa alternativa recomendada: o MIDIWeb Browser, também disponível para macOS.",
  "midi.reco_firefox_desktop_body": "O Firefox vai pedir para instalares um pequeno add-on de permissões da Mozilla na primeira vez que ativares o MIDI com um teclado ligado. É normal, seguro e só acontece uma vez. Sem nenhum dispositivo MIDI ligado, o Firefox salta esse pedido e só o teclado virtual é ativado. O Chrome e o Edge funcionam sem passos extra.",
  "midi.reco_firefox_android_body": "O MIDI não está disponível no Firefox para Android. Usa o Chrome ou outro navegador compatível para ligar o teu teclado.",
  "midi.status_activate_first": "Ative o MIDI primeiro.",
  "midi.status_api_missing": "Este navegador não expõe a API WebMIDI para esta página. Experimenta o MIDIWeb Browser via HTTPS.",
  "midi.status_enable_error": "Não foi possível ativar o MIDI ({name}: {message}) [contexto {secure}, {protocol}//{host}]{insecureHint}",
  "midi.status_input_connected": "Entrada conectada: {input}{outputInfo}",
  "midi.status_input_label": "Entrada",
  "midi.status_invalid_input": "Entrada MIDI inválida.",
  "midi.status_invalid_output": "Saída MIDI inválida.",
  "midi.status_web_audio_output_connected": "Recetor ativado: áudio do navegador.",
  "midi.status_native_activated": "MIDI ativado corretamente. Seleciona a entrada e a saída.",
  "midi.status_native_error": "{action} ({errorName}: {errorMessage}).",
  "midi.status_output_connected": "Saída ligada: {output} (vol {volume}){inputInfo}",
  "midi.status_output_selector_missing": "Seletor de saída MIDI indisponível.",
  "midi.status_read_ports_error": "MIDI ativado ({mode}), mas falhou ao ler portas MIDI ({errorName}: {errorMessage}).",
  "midi.status_state_change_error": "MIDI ativado ({mode}), mas falhou ao registar mudanças de estado ({error}).",
  "midi.status_virtual_output": "Saída virtual",
  "virtual_keyboard.output_modal_title": "Configurar entrada/saída de som",
  "virtual_keyboard.output_modal_body": "A prática precisa de uma entrada ativa. Ativa o MIDI, escolhe Navegador web para usar o teclado virtual ou uma entrada MIDI física, e depois escolhe Áudio do navegador ou uma saída MIDI para o som.",
  "virtual_keyboard.output_modal_configure": "Configurar MIDI",
  "virtual_keyboard.output_modal_continue": "Agora não",
  "midi.step_enable": "Passo 1: ativa MIDI",
  "midi.step_select_input": "Passo 2: entrada de som",
  "midi.step_select_output": "Passo 3: saída de som",
  "nav.home": "Início",
  "nav.settings": "Definições",
  "option.exercise_fallback": "Exercício",
  "option.exercise_prefix": "Exercício: {name}",
  "option.score_prefix": "Partitura: {name}",
  "option.temp_prefix": "Temporário: {name}",
  "panel.load.compat_line_1": "• Formatos de partitura suportados: MusicXML (.musicxml, .xml, .mxl) e MEI (.mei). MusicXML/MXL costuma preservar o aspeto visual da partitura.",
  "panel.load.compat_line_2": "• Não suportados diretamente: .mid, .midi, .pdf, .mscz, .sib, .gp/.gp3/.gp4/.gp5. Exporta ou converte primeiro para MusicXML, MXL ou MEI e importa novamente.",
  "panel.load.compat_line_3": "• Podes exportar para MusicXML/MXL a partir de aplicações como musescore.org, Finale ou Sibelius.",
  "panel.load.compat_title": "Que formatos sao aceites?",
  "panel.load.dropzone_subtitle": "Também podes arrastar e largar o ficheiro",
  "panel.load.dropzone_title": "Clica aqui para escolher uma partitura",
  "panel.load.file_aria": "Ficheiro de partitura",
  "panel.load.formats_allowed": "Formatos permitidos: .mxl, .musicxml, .xml, .mei",
  "panel.load.go_imported": "Ir para o exercício importado",
  "panel.load.hint": "Importe uma partitura a partir do seu dispositivo.",
  "panel.load.local_source": "Importar nova partitura",
  "panel.load.processing_detail": "A preparar a renderização MusicXML.",
  "panel.load.processing_file": "A renderizar",
  "panel.load.processing_title": "A processar a partitura...",
  "panel.load.ready": "Partitura carregada. A abrir a vista de prática.",
  "panel.load.select_valid_file": "Seleciona um ficheiro válido.",
  "panel.load.title": "Carregar partitura",
  "panel.midi.hint": "Para praticar, ativa o MIDI, escolhe uma entrada e escolhe uma saída de som. Usa Navegador web como entrada para o teclado virtual.",
  "panel.midi.title": "Conecta o teu instrumento digital",
  "playback.completed": "Reprodução concluída.",
  "playback.modal_need_output_body": "Para usar a reprodução, configura primeiro a ligação MIDI e liga um dispositivo de saída.",
  "playback.modal_need_output_title": "Configurar saída MIDI",
  "playback.modal_open_midi_tab": "Abrir ligação MIDI",
  "playback.need_output": "Liga uma saída MIDI para reproduzir.",
  "playback.no_active_exercise": "Nenhum exercício ativo.",
  "playback.no_notes_for_hand": "Sem notas para o modo de mão selecionado.",
  "playback.output_error": "Erro de saída MIDI: {error}",
  "playback.playing": "A reproduzir: {name}",
  "playback.preparing": "A preparar a reprodução...",
  "playback.stopped": "Reprodução interrompida.",
  "playback.stopped_output_disconnected": "Reprodução interrompida: saída MIDI desligada.",
  "playback.stopped_output_missing": "Reprodução interrompida: saída MIDI indisponível.",
  "practice.auto_restart_count_in": "Reinício automático com contagem",
  "practice.auto_restart_on_end": "Reinício automático no fim",
  "practice.completed_press_start": "Intervalo concluído. Prima Praticar para recomeçar.",
  "practice.count_in_active": "Contagem",
  "practice.count_in_wait": "Contagem ativa: aguarde {beats} batida(s)",
  "practice.diagnosis_both": "Tempo e força instáveis. Pratica mais devagar (tempo 50%).",
  "practice.diagnosis_timing_only": "Desvio puro de timing. Move as duas mãos como um bloco.",
  "practice.diagnosis_velocity_only": "Timing ok, mas o controlo da força é desigual entre os dedos.",
  "practice.difficulty_aria": "Dificuldade",
  "practice.difficulty_beginner": "Iniciante (150 ms)",
  "practice.difficulty_custom": "Personalizada",
  "practice.difficulty_master": "Mestre (40 ms)",
  "practice.difficulty_normal": "Normal (80 ms)",
  "practice.dynamics_fair": "Dinâmica irregular (dV {dv})",
  "practice.dynamics_good": "Dinâmica aceitável (dV {dv})",
  "practice.dynamics_perfect": "Dinâmica equilibrada (dV {dv})",
  "practice.dynamics_voicing": "Voicing detetado +{boost}% (dV {dv})",
  "practice.dynamics_weak": "Dinâmica desequilibrada (dV {dv})",
  "practice.dynamics_weak_feedback": "Notas corretas, mas força desequilibrada (dV {dv})",
  "practice.exercise_aria": "Exercícios",
  "practice.exercise_catalog_label": "Exercícios",
  "practice.exercise_catalog_loading": "A carregar exercícios...",
  "practice.exercise_not_found": "Exercício não encontrado",
  "practice.geometry_not_ready": "A partitura ainda não está pronta para praticar. Tenta novamente.",
  "practice.exercise_topbar_label": "Exercício",
  "practice.extra_note": "Nota extra",
  "practice.hand_mode_aria": "Modo de mão",
  "practice.hand_mode_both": "Ambas as mãos",
  "practice.hand_mode_left": "Só esquerda",
  "practice.hand_mode_right": "Só direita",
  "practice.hands_delta": "Diferença entre mãos: {ms} ms",
  "practice.hands_out_of_sync": "Mãos fora de sincronia ({ms} ms)",
  "practice.incorrect": "Incorreto",
  "practice.loop_ab": "Repetição A-B",
  "practice.loop_enable": "Repetir compassos (A-B)",
  "practice.full_score": "Ver contexto",
  "practice.full_score_aria": "Ver partitura completa do loop",
  "practice.stopped_ready": "Execução parada. Podes repetir ou limpar.",
  "practice.no_active_exercise": "Nenhum exercício ativo",
  "practice.no_exercises_loaded": "Nenhum exercício carregado",
  "practice.no_notes_for_hand": "Sem notas para a mão selecionada",
  "practice.pedagogy.button": "Guia",
  "practice.pedagogy.button_aria": "Abrir guia do exercício",
  "practice.pedagogy.empty": "Este exercício não inclui orientação pedagógica adicional.",
  "practice.pedagogy.focus_label": "Foco:",
  "practice.pedagogy.goal_label": "Objetivo:",
  "practice.pedagogy.level.advanced": "Avançado",
  "practice.pedagogy.level.beginner": "Principiante",
  "practice.pedagogy.level.generic": "Nível",
  "practice.pedagogy.level.intermediate": "Intermédio",
  "practice.pedagogy.level_with_stage": "{level} · Etapa {stage}",
  "practice.pedagogy.tips_title": "Dicas",
  "practice.pedagogy.title": "Guia do exercício",
  "practice.pedagogy.unavailable": "Guia indisponível",
  "practice.note_correct": "Nota correta ({source})",
  "practice.note_correct_off_timing": "Nota correta fora do timing ({source})",
  "practice.note_missed": "Nota falhada",
  "practice.need_midi_access": "Ativa o MIDI antes de começares a praticar.",
  "practice.need_web_audio_output": "Seleciona Audio do navegador como saida de som antes de começares a praticar.",
  "practice.play": "🔊 Ouvir",
  "practice.precision_compact": "🎯 Precisão: {precision}% (Acertos: {success} | Erros: {errors})",
  "practice.press_start_count_in": "Prima Praticar para começar.",
  "practice.preparing": "A preparar...",
  "practice.progress": "Progresso: {progress}",
  "practice.range_aria": "Intervalo de prática por compasso",
  "practice.range_end_aria": "Fim da faixa",
  "practice.range_start_aria": "Início do intervalo",
  "practice.speed_aria": "Velocidade",
  "practice.tempo_advanced_aria": "Detalhes do tempo",
  "practice.tempo_bpm_input": "BPM alvo",
  "practice.tempo_changes_label": "Mudanças de tempo na partitura",
  "practice.tempo_default": "Predefinido",
  "practice.tempo_now": "Agora",
  "practice.tempo_playing_now": "A tocar agora",
  "practice.tempo_reset_100": "Repor 100%",
  "practice.tempo_score": "Tempo da partitura",
  "practice.tempo_variable": "Tempo variável",
  "practice.stop": "■ Parar",
  "practice.timing_compact": "Timing {onTime}/{count} · ±{avg} ms · adiantado {early} · atrasado {late}",
  "practice.timing_guide_count_in": "Guia de timing: contagem {current}/{total}",
  "practice.timing_guide_focus_count_in": "Contagem {current}/{total}",
  "practice.timing_guide_focus_idle": "Guia de pulso",
  "practice.timing_guide_focus_ignored": "Timing ignorado",
  "practice.timing_guide_focus_running": "{delta} · batida {beat}/{beatsPerMeasure}",
  "practice.timing_guide_focus_waiting": "À espera da primeira nota",
  "practice.timing_guide_idle": "Guia de timing: inicia um exercício.",
  "practice.timing_guide_ignored": "Guia de timing desativado (timing ignorado).",
  "practice.timing_guide_running_musical": "Guia de timing: {delta} · batida {beat}/{beatsPerMeasure} · nota {current}/{total}",
  "practice.timing_guide_waiting": "Guia de timing: à espera da primeira nota correta.",
  "practice.timing_ignored_compact": "Timing ignorado",
  "practice.transport_play": "▶ Praticar",
  "practice.transport_pause": "Pausa",
  "practice.transport_paused": "Em pausa",
  "practice.status_ready": "Pronto",
  "practice.status_practicing": "A praticar...",
  "practice.status_listening": "A ouvir...",
  "practice.transport_resume": "Retomar",
  "practice.transport_stop": "⏹ Parar",
  "practice.waiting_start_count_in": "À espera de Praticar",
  "score_surface.processing": "A processar...",
  "score_surface.resizing": "A redimensionar a partitura...",
  "seo.feature_1": "Feedback MIDI em tempo real",
  "seo.feature_2": "Treino de mãos separadas",
  "seo.feature_3": "Suporte multilingue",
  "seo.feature_4": "Importação de partituras MusicXML e MEI",
  "seo.jsonld_description": "Pratica piano online no navegador. Liga o teu teclado MIDI, importa partituras MusicXML ou MEI e treina cada mão com feedback em tempo real.",
  "seo.meta_description": "Pratica piano online no navegador. Liga o teu teclado MIDI, importa partituras MusicXML ou MEI e treina cada mão com feedback em tempo real.",
  "seo.title": "midipiano.app - Prática de Piano Online com MIDI",
  "seo.h1": "Pratica piano online com o teu teclado MIDI",
  "seo.faq_title": "Perguntas frequentes",
  "seo.faq_q1": "Posso praticar piano online com um teclado MIDI?",
  "seo.faq_a1": "Sim. O midipiano.app funciona no navegador: liga um teclado MIDI por USB ou Bluetooth e toca partituras interativas com feedback em tempo real para cada mão.",
  "seo.faq_q2": "Que teclados MIDI são compatíveis?",
  "seo.faq_a2": "Qualquer teclado ou piano digital compatível com MIDI. Usa um navegador com Web MIDI, como o Chrome ou o Edge; no iPhone e iPad podes tocar com a app MIDIWeb Browser. O desafio diário mantém-se entre Lá2 e Sol5, por isso qualquer teclado que chegue ao Dó2 cobre-o.",
  "seo.faq_q3": "Preciso de instalar algo ou criar uma conta?",
  "seo.faq_a3": "Não. O midipiano.app funciona totalmente no navegador: nada para instalar e sem conta.",
  "seo.faq_q4": "Posso importar as minhas próprias partituras?",
  "seo.faq_a4": "Sim. Importa ficheiros MusicXML, MXL ou MEI e estes aparecem como partituras interativas para praticar com cada mão em separado, em loop e ao teu próprio tempo.",
  "seo.faq_q5": "Como funciona o feedback de prática?",
  "seo.faq_a5": "A aplicação ouve o teu teclado MIDI enquanto tocas e pontua cada nota em tempo real (por mão e por passagem), com exercícios integrados do nível iniciante ao avançado.",
  "seo.faq_q6": "O que é o desafio diário?",
  "seo.faq_a6": "Uma peça curta nova todos os dias, a mesma para toda a gente, em três níveis de dificuldade. Tens três tentativas por nível: toca-a à primeira vista, ganha as tuas estrelas do dia e partilha o resultado.",
  "seo.challenge_title": "Desafio diário de piano: uma peça nova todos os dias - midipiano.app",
  "seo.challenge_meta_description": "Uma peça curta nova todos os dias, a mesma para toda a gente, em três níveis. Liga o teu teclado MIDI, toca-a à primeira vista e partilha as tuas estrelas.",
  "seo.challenge_h1": "O desafio diário de piano",
  "seo.challenge_how_title": "Como funciona",
  "seo.challenge_how_body": "Todos os dias à meia-noite UTC aparece uma peça nova, gerada para essa data e igual para toda a gente. Escolhe o teu nível, ouve-a se quiseres e toca-a à primeira vista no teu teclado MIDI enquanto a app pontua cada nota.",
  "seo.challenge_need_title": "O que precisas",
  "seo.challenge_need_body": "Um teclado MIDI ligado por USB ou Bluetooth e um navegador com Web MIDI, como o Chrome ou o Edge. Nada para instalar e sem conta. Tens três tentativas por nível e conta a melhor.",
  "settings.aria_button": "Definições",
  "settings.aria_panel": "Definições",
  "settings.ble_timing_smoothing": "Suavizar timing BLE MIDI (experimental)",
  "settings.ignore_timing": "Ignorar timing (apenas notas)",
  "settings.keep_awake": "Manter o ecrã ativo",
  "settings.recommended_short": "Recom.",
  "settings.section_about": "Sobre midipiano.app",
  "settings.contact_button": "Contactar",
  "settings.error_reporting": "Partilhar diagnósticos opcionais",
  "settings.section_engine": "Motor de avaliação",
  "settings.section_visualization": "Visualização",
  "settings.show_feedback": "Mostrar feedback",
  "settings.show_keyboard": "Mostrar teclado virtual",
  "settings.keep_screen_awake": "Manter o ecrã ativo",
  "settings.keep_screen_awake_unsupported": "Não disponível neste navegador.",
  "settings.staff_zoom": "Zoom da partitura",
  "settings.sync_tolerance": "Tolerância de sincronia (ms)",
  "settings.sync_tolerance_recommended": "Recomendado: {value} ms (clique para aplicar)",
  "settings.title": "Definições",
  "settings.two_hand_sync": "Validar sincronia das duas mãos",
  "settings.vexflow_unavailable": "O VexFlow não está disponível neste navegador.",
  "settings.virtual_metronome": "Metrónomo virtual",
  "settings.virtual_metronome_volume": "Volume do metrónomo",
  "settings.zoom_in_aria": "Aumentar zoom",
  "settings.zoom_out_aria": "Diminuir zoom",
  "summary.completed": "concluído",
  "summary.interrupted": "interrompido",
  "summary.last_result": "Último: {exerciseName} ({handMode}), {completion}. {successCount}/{totalExpectedNotes} acertos, {errorCount} erros, timing {timingOnTime}/{timingCount} no tempo (média ±{timingAvgAbsMs} ms). [{when}]",
  "summary.last_result_timing_ignored": "Último: {exerciseName} ({handMode}), {completion}. {successCount}/{totalExpectedNotes} acertos, {errorCount} erros, timing ignorado. [{when}]",
  "tabs.about": "Sobre",
  "tabs.load": "Carregar partitura",
  "tabs.midi": "Conectar instrumento",
  "tabs.nav_about": "Início",
  "tabs.nav_load": "Importar",
  "tabs.nav_midi": "MIDI",
  "tabs.nav_practice": "Prática",
  "tabs.practice": "Praticar",
  "ui.placeholder_pending": "Pendente no midipiano.app",
  "ui.previous_render_preserved": "A renderização anterior continua visível.",
  "ui.settings_hint": "As definições principais estão a ser migradas para o midipiano.app.",
  "timing.feel_early": "Adiantado ({pct}% da batida)",
  "timing.feel_late": "Atrasado ({pct}% da batida)",
  "timing.feel_on_time": "No tempo",
  "timing.status_early": "Adiantado",
  "timing.status_late": "Atrasado",
  "timing.status_on_time": "No tempo",
  "settings.wait_mode": "Modo espera (pausar até nota correta)",
  "practice.note_near_time": "Nota correta, ligeiramente fora ({source})",
  "feedback.sheet.show": "Mostrar feedback",
  "feedback.sheet.hide": "Ocultar feedback",
  "settings.diagnostics_help_aria": "Sobre os diagnósticos opcionais",
  "settings.diagnostics_modal_title": "Diagnósticos opcionais",
  "settings.diagnostics_modal_body": "Quando esta opção está ativa, o midipiano.app envia dados técnicos de diagnóstico anónimos e temporários que nos ajudam a melhorar a fiabilidade, o desempenho e a compatibilidade com dispositivos, e a saber de forma agregada que definições da app (como o tema da interface) são realmente utilizadas.",
  "settings.diagnostics_modal_close": "Entendido",
  "settings.diagnostics_modal_choice": "Podes alterar esta opção a qualquer momento nas Definições.",
  "settings.diagnostics_modal_more": "Mais informação na nossa",
  "midi.input_option_web_browser": "Navegador web (teclado virtual)",
  "import.part_selection_title": "Escolher parte de piano",
  "import.part_selection_body": "Esta partitura tem mais de uma parte real de piano.",
  "import.part_selection_status": "Escolha que parte de piano importar.",
  "import.render_timeout": "A partitura demorou demasiado ou a ligação foi interrompida. Tenta novamente.",
  "import.part_selection_both": "Ambas",
  "import.part_selection_parts_count": "({count} partes)",
  "feedback.summary_duration": "Duração",
  "feedback.summary_release": "Soltar",
  "feedback.summary_pedal": "Pedal",
  "feedback.summary_chord_clarity": "Clareza dos acordes",
  "feedback.summary_release_early": "Soltas a tecla cedo demais",
  "feedback.summary_release_late": "Soltas a tecla tarde demais",
  "feedback.summary_pedal_check": "Rever mudanças de pedal",
  "feedback.summary_pedal_not_measured": "Pedal não medido",
  "feedback.summary_chords_uneven": "Acordes irregulares",
  "feedback.summary_repeat_weak_measures": "Repetir compassos fracos",
  "feedback.summary_try_speed": "Experimentar {speed}%",
  "feedback.summary_next_objective": "Próximo objetivo: {objective}",
  "feedback.summary_next_objective_no_input": "Próximo objetivo: tocar as primeiras notas",
  "feedback.summary_objective_measure": "no c.{measure}",
  "feedback.summary_objective_accuracy": "Precisão",
  "feedback.summary_objective_timing": "Ritmo",
  "feedback.summary_objective_left_hand": "Mão esquerda",
  "feedback.summary_objective_right_hand": "Mão direita",
  "feedback.summary_objective_sync": "Sincronização das mãos",
  "feedback.summary_objective_release": "Soltar notas",
  "feedback.summary_objective_pedal": "Pedalização",
  "feedback.summary_objective_chord_clarity": "Clareza dos acordes",
  "feedback.summary_objective_balanced": "Sessão equilibrada",
  "feedback.reward_headline_first_result": "Primeira tentativa guardada",
  "feedback.reward_headline_new_best": "Novo recorde pessoal",
  "feedback.reward_headline_improved": "Melhorou",
  "feedback.reward_headline_solid_pass": "Passagem sólida",
  "feedback.reward_headline_next_rep": "A próxima repetição está pronta",
  "feedback.reward_chip_baseline": "Primeira tentativa",
  "feedback.reward_chip_new_best": "Novo recorde",
  "feedback.reward_chip_improved": "+{points} vs anterior",
  "feedback.reward_chip_near_star": "{points} para a próxima estrela",
  "feedback.reward_chip_no_misses": "Sem falhas",
  "feedback.reward_chip_timing_improved": "Timing melhorou",
  "feedback.reward_chip_clean_left": "Esquerda limpa",
  "feedback.reward_chip_clean_right": "Direita limpa",
  "feedback.reward_chip_clean_pass": "Passagem limpa",
  "feedback.reward_history_first": "Primeira tentativa nesta configuração",
  "feedback.reward_history_previous": "Anterior {score}",
  "feedback.reward_history_best": "Melhor {score}",
  "feedback.reward_heatmap_aria": "Mapa de compassos",
  "feedback.reward_heatmap_measure_label": "c.{measure}: {status}",
  "feedback.reward_heatmap_clean": "limpo",
  "feedback.reward_heatmap_ok": "bem",
  "feedback.reward_heatmap_weak": "fraco",
  "feedback.reward_heatmap_not_attempted": "não tentado",
  "feedback.analysis_global_title": "Análise global",
  "feedback.analysis_global_hint": "Métricas do âmbito selecionado.",
  "feedback.analysis_measure_title": "Compasso {measure}",
  "feedback.analysis_measure_hint": "Métricas do compasso selecionado.",
  "feedback.map_title": "Mapa da prática",
  "feedback.map_hint": "Toca num compasso para o rever.",
  "feedback.map_all_measures": "Todos os compassos",
  "feedback.map_selected_measure": "Compasso {measure} selecionado",
  "feedback.score_help_aria": "Como é calculada a pontuação de prática",
  "feedback.score_help_text": "Pontuação = precisão das notas + ritmo.\nDuas mãos: a sincronia conta 10%.\nA técnica fina pode subtrair até 5 pts.\nEstrelas: 5★ 90+ · 4★ 75+ · 3★ 60+ · 2★ 40+.",
  "feedback.scope_label": "Vista",
  "feedback.scope_full": "Exercício completo",
  "feedback.scope_loop": "Ciclo {number}",
  "feedback.map_previous_range": "Compassos anteriores",
  "feedback.map_next_range": "Compassos seguintes",
  "feedback.map_range_label": "Intervalo de compassos",
  "feedback.map_range_option": "Compassos {start}-{end}",
  "feedback.summary_timing": "Ritmo",
  "feedback.summary_clean": "Limpo",
  "settings.feedback_sounds": "Sons de feedback",
  "practice.catalog_filters_aria": "Filtros de exercícios",
  "practice.catalog_filter_level": "Nível",
  "practice.catalog_filter_family": "Família",
  "practice.catalog_filter_hand": "Mão foco",
  "practice.catalog_filter_duration": "Duração",
  "practice.catalog_empty": "Não há exercícios disponíveis.",
  "practice.catalog_no_matches": "Nenhum exercício corresponde a estes filtros.",
  "practice.catalog_count": "{visible} de {total} exercícios",
  "practice.catalog_level_count": "{count} exercícios",
  "practice.catalog_level_count_one": "1 exercício",
  "practice.catalog_expand_level": "Ver",
  "practice.catalog_collapse_level": "Ocultar",
  "practice.catalog_filter_all_levels": "Todos os níveis",
  "practice.catalog_filter_all_families": "Todas as famílias",
  "practice.catalog_filter_all_hands": "Qualquer mão",
  "practice.catalog_filter_any_duration": "Qualquer duração",
  "practice.catalog_filter_duration_3": "Até 3 min",
  "practice.catalog_filter_duration_5": "Até 5 min",
  "practice.catalog_filter_duration_7": "Até 7 min",
  "practice.catalog_minutes": "{minutes} min",
  "practice.catalog_family_scales": "Escalas",
  "practice.catalog_family_arpeggios": "Arpejos",
  "practice.catalog_family_chords": "Acordes",
  "practice.catalog_family_independence": "Independência",
  "practice.catalog_family_leaps": "Saltos",
  "practice.catalog_family_rhythm": "Ritmo",
  "practice.catalog_family_polyrhythm": "Polirritmia",
  "practice.catalog_family_reading": "Leitura",
  "practice.catalog_family_voice-control": "Controlo de vozes",
  "practice.catalog_family_other": "Outro",
  "practice.catalog_hand_both": "Ambas as mãos",
  "practice.catalog_hand_left": "Mão esquerda",
  "practice.catalog_hand_right": "Mão direita",
  "practice.catalog_hand_alternating": "Mãos alternadas",
  "tabs.nav_exercises": "Exercícios",
  "app.top_title.exercises": "Catálogo de exercícios",
  "exercises.title": "Catálogo de exercícios",
  "exercises.search": "Pesquisar",
  "exercises.search_placeholder": "Título, objetivo, etiqueta...",
  "exercises.catalog_col_exercise": "Exercício",
  "exercises.catalog_col_goal": "Objetivo",
  "practice.catalog_filter_tags": "Etiquetas",
  "practice.catalog_filter_all_tags": "Todas as etiquetas",
  "exercises.catalog_col_time": "Recomendações de prática",
  "exercises.curriculum_level_1": "Nível 1 · Principiante básico",
  "exercises.curriculum_level_2": "Nível 2 · Principiante com duas mãos",
  "exercises.curriculum_level_3": "Nível 3 · Elementar",
  "exercises.curriculum_level_4": "Nível 4 · Elementar avançado",
  "exercises.curriculum_level_5": "Nível 5 · Intermédio",
  "exercises.curriculum_level_6": "Nível 6 · Intermédio avançado / avançado inicial",
  "settings.theme": "Tema",
  "settings.theme_midnight": "Concerto da meia-noite",
  "settings.theme_ivory": "Estúdio marfim",
  "settings.theme_ocean": "Prática oceânica",
  "settings.theme_forest": "Foco floresta",
  "settings.theme_aubergine": "Palco beringela",
  "exercises.catalog_variant": "Variante",
  "feedback.summary_not_applicable": "Não aplicável",
  "feedback.summary_not_measured_short": "Não medido",
  "feedback.summary_release_early_count": "{count} largadas cedo",
  "feedback.summary_release_late_count": "{count} largadas tarde",
  "cookies.consent_aria": "Consentimento de cookies",
  "feedback.summary_hand_sync_score": "Sincronia",
  "feedback.summary_fine_technique": "Técnica fina",
  "feedback.metric_accuracy_help": "Percentagem de notas esperadas tocadas corretamente. Notas falhadas, erradas ou fora da janela de timing reduzem esta métrica. É a maior parte da pontuação: 65%.",
  "feedback.metric_timing_help": "Distância média ao pulso esperado nas notas tocadas. Menos milissegundos é melhor. Contribui com 25% da pontuação.",
  "feedback.metric_sync_help": "Mede se as notas da mão esquerda e da mão direita que devem cair juntas são tocadas juntas. Se a passagem usa apenas uma mão, esta métrica não pontua e o seu peso passa para precisão e timing.",
  "feedback.metric_fine_help": "Pequeno ajuste diagnóstico para libertação das notas, duração, pedal, articulação e clareza dos acordes quando podem ser medidos. No máximo retira 5 pontos à pontuação global.",
  "feedback.summary_no_penalty": "Sem penalização",
  "feedback.summary_fine_penalty": "-{points} pt",
  "keyboard.aria_label": "Teclado de piano virtual",
  "service.unavailable_title": "Voltamos já",
  "service.unavailable_body": "O serviço está a fazer uma pausa. Tenta novamente daqui a pouco.",
  "service.offline_load": "Sem ligação. Liga-te à internet para carregar esta partitura.",
  "service.unavailable_short": "Indisponível de momento",
  "feedback.stat_missed": "Falhadas",
  "feedback.stat_wrong": "Erradas",
  "feedback.stat_offtime": "Fora de tempo",
  "feedback.stat_sync": "Sincronia",
  "feedback.stat_releases": "Ao soltar",
  "feedback.summary_hands_title": "Estatísticas por mão",
  "feedback.summary_tends_early": "adianta-se",
  "feedback.summary_tends_late": "atrasa-se",
  "feedback.summary_dragging": "a desacelerar",
  "feedback.summary_rushing": "a acelerar",
  "feedback.summary_touch_evenness": "toque {percent}%",
  "feedback.summary_dir_early": "antes ◀",
  "feedback.summary_dir_late": "tarde ▶",
  "feedback.summary_extra_notes": "Notas a mais",
  "feedback.map_minimap_aria": "Visão geral da peça",
  "exercises.curriculum_level_0": "Nível 0 · Primeiros passos",
  "exercises.curriculum_level_7": "Nível 7 · Avançado",
  "exercises.unit_min": "min",
  "exercises.unit_min_per_chord": "min por acorde",
  "exercises.unit_min_per_arpeggio": "min por arpejo",
  "exercises.unit_reps": "reps",
  "exercises.unit_per_scale": "por escala",
  "exercises.unit_per_key": "por tecla",
  "exercises.unit_measure_fragments": "fragmentos de compasso",
  "exercises.unit_free_loop": "ciclo livre",
  "exercises.challenge_reco_body": "Com este nível já estás pronto para o desafio {tier}: uma peça curta nova todos os dias, à primeira vista. Atreves-te?",
  "exercises.challenge_reco_cta": "Ir para os desafios",
  "feedback.reward_chip_hands_synced": "Mãos sincronizadas",
  "midi.output_channel_scan_modal_feedback": "Algo não funciona? Escreve-nos para feedback@midipiano.app",
  "midi.enable_activating": "A ativar…",
  "midi.refresh_searching": "A procurar…",
  "tabs.nav_challenge": "Desafios",
  "challenge.title": "Desafio do dia",
  "challenge.intro": "Uma peça nova todos os dias, igual para todos: liga o teclado, ouve-a se quiseres, toca em Iniciar o desafio e lê à primeira vista. Vais conseguir?",
  "challenge.unavailable": "O desafio de hoje não está disponível de momento. Volta em breve.",
  "challenge.needs_midi": "Precisas de um teclado MIDI ligado para jogar o desafio.",
  "challenge.needs_midi_cta": "Ligar teclado",
  "challenge.tier_starter": "Iniciação",
  "challenge.tier_intermediate": "Intermédio",
  "challenge.tier_advanced": "Avançado",
  "challenge.tier_starter_hint": "A melodia na sua forma mais simples, num tempo calmo.",
  "challenge.tier_intermediate_hint": "Tempo mais vivo, com notas de passagem na melodia.",
  "challenge.tier_advanced_hint": "Tempo rápido, figuras até semicolcheias, oitavas e acordes de sétima.",
  "challenge.attempts_intro": "Tentativas: {count}. Conta a melhor.",
  "challenge.lives_left": "Tentativas restantes: {count}",
  "challenge.lives_aria": "Tentativas restantes: {remaining} de {total}",
  "challenge.retry": "Tentar novamente",
  "challenge.leave": "Terminar o desafio",
  "challenge.exit": "Sair",
  "challenge.continue_later": "Continuar mais tarde",
  "challenge.practice": "Praticar esta peça",
  "challenge.practice_score_name": "Desafio {tier} · {label}",
  "challenge.practice_locked": "Joga pelo menos uma tentativa do desafio para desbloquear a prática.",
  "challenge.best_so_far": "A tua melhor marca",
  "challenge.no_score": "Desta vez sem pontuação.",
  "challenge.no_score_yet": "Ainda sem pontuação.",
  "challenge.autoscroll_on": "Rolagem automática: ligada",
  "challenge.autoscroll_off": "Rolagem automática: desligada",
  "challenge.play": "Jogar este desafio",
  "challenge.status_done": "Jogado",
  "challenge.share": "Partilhar resultado",
  "challenge.cancel_start": "Ainda não",
  "challenge.start": "Iniciar o desafio",
  "challenge.get_ready": "Prepara-te!",
  "challenge.get_ready_hint": "Mãos ao teclado: a contagem começa dentro de momentos.",
  "challenge.score_name": "Desafio do dia",
  "challenge.preparing": "A preparar o desafio…",
  "challenge.result_title": "Desafio concluído!",
  "challenge.result_title_attempt": "Tentativa concluída",
  "challenge.next_in": "Novo desafio dentro de {time}",
  "challenge.time_hm": "{hours} h {minutes} min",
  "challenge.time_m": "{minutes} min",
  "challenge.share_text": "Desafio do dia {label} · nível {tier}",
  "challenge.share_on": "Partilhar no {network}",
  "challenge.share_other": "Mais opções de partilha",
  "challenge.share_cta": "Partilhar o meu resultado",
  "challenge.view_score": "Ver a partitura",
  "challenge.show_result": "Ver o resultado",
  "midi.firefox_denied_hint": "O Firefox negou o acesso MIDI sem perguntar: é o que faz quando não vê nenhum dispositivo MIDI. Confirma que o teclado está ligado com um cabo USB de dados e aceso, recarrega esta página e volta a ativar o MIDI.",
  "challenge.copy": "Copiar para a área de transferência",
  "challenge.best_score": "A tua melhor pontuação: {score}%",
  "challenge.finish_confirm": "Ainda tens {count} tentativas para melhorar a tua pontuação. Queres mesmo terminar o desafio de hoje?",
  "challenge.finish_confirm_last": "Ainda tens uma tentativa para melhorar a tua pontuação. Queres mesmo terminar o desafio de hoje?",
  "challenge.finish_confirm_action": "Terminar mesmo assim"
}
