Files
oak-editor/assets/i18n/pt.yaml
T
Mike-Solar 4622a1af1e i18n: six new languages; packs become fully data-driven
New complete language packs (431 keys each, key-aligned with en-US):
French, German, Russian, Japanese, Spanish, Portuguese — contributed
via the translation subagent, reviewed for key parity and genuine
translations.

Runtime discovery replaces compiled-in packs: include_str! and the
Language enum are gone; every <code>.yaml found in the searched
directories registers a language, so adding one needs neither a
rebuild nor a code change. Each pack names itself via its
"language.name" key (the endonym), which the pickers display. The
menu bar language submenu is built from the discovered packs (menu ids
in the new LANG_ITEM_BASE range, dispatched before the registry), the
preferences combo enumerates them the same way, and switching goes
through set_language_code. The C++-style LangZh/LangEn registry
actions are removed (menu ids 303/304 stay reserved). pack_dirs gains
the system-install layout <exe>/../share/oak/i18n, and en.yaml is
renamed en-US.yaml so the discovered code matches the fallback code.

Test hardening (a Windows/Linux CI flake chain exposed by this work):
the two language-test mutexes are one shared poison-tolerant mutex;
every test that flips the process language restores en-US before
releasing it; tests that match menus by localized labels take the lock
and pin en-US first.
2026-08-21 15:35:10 +08:00

434 lines
20 KiB
YAML

# Oak Video Editor UI strings — Português (pt)
# Format: "i18n.key": "Translated text". Add new languages as new files named <lang>.yaml.
"menu.file": "Arquivo(A)"
"menu.edit": "Editar(E)"
"menu.view": "Ver(V)"
"menu.playback": "Reprodução(R)"
"menu.sequence": "Sequência(S)"
"menu.window": "Janela(J)"
"menu.tools": "Ferramentas(F)"
"menu.help": "Ajuda(A)"
"menu.file.new": "Novo"
"menu.file.new_project": "Novo projeto…"
"menu.file.new_sequence": "Nova sequência…"
"menu.file.new_folder": "Nova pasta"
"menu.file.open_project": "Abrir arquivo de projeto…"
"menu.file.open_library": "Abrir da biblioteca…"
"menu.file.open_recent": "Abrir recentes"
"menu.file.clear_recent": "Limpar lista de recentes"
"menu.file.project_manager": "Gerenciador de projetos…"
"menu.file.import_footage": "Importar mídia…"
"menu.file.export_project": "Exportar arquivo de projeto…"
"menu.file.save_as": "Salvar como…"
"menu.file.revert": "Reverter"
"menu.file.export_media": "Exportar mídia…"
"menu.file.project_properties": "Propriedades do projeto…"
"menu.file.close": "Fechar projeto"
"menu.file.quit": "Sair"
"menu.edit.undo": "Desfazer"
"menu.edit.redo": "Refazer"
"menu.edit.cut": "Recortar"
"menu.edit.copy": "Copiar"
"menu.edit.paste": "Colar"
"menu.edit.paste_insert": "Colar como inserção"
"menu.edit.duplicate": "Duplicar"
"menu.edit.rename": "Renomear"
"menu.edit.delete": "Excluir"
"menu.edit.ripple_delete": "Exclusão em cadeia"
"menu.edit.split": "Dividir no cursor"
"menu.edit.speed_duration": "Velocidade/Duração…"
"menu.edit.default_transition": "Definir como transição padrão"
"menu.edit.link_unlink": "Vincular/Desvincular"
"menu.edit.enable_disable": "Ativar/Desativar"
"menu.edit.nest": "Aninhar"
"menu.edit.select_all": "Selecionar tudo"
"menu.edit.deselect_all": "Desmarcar tudo"
"menu.edit.insert": "Inserir"
"menu.edit.overwrite": "Sobrescrever"
"menu.edit.ripple_to_in": "Ondulação até a entrada"
"menu.edit.ripple_to_out": "Ondulação até a saída"
"menu.edit.edit_to_in": "Editar até a entrada"
"menu.edit.edit_to_out": "Editar até a saída"
"menu.edit.nudge_left": "Deslocar para a esquerda"
"menu.edit.nudge_right": "Deslocar para a direita"
"menu.edit.move_in_to_playhead": "Mover ponto de entrada para o cursor"
"menu.edit.move_out_to_playhead": "Mover ponto de saída para o cursor"
"menu.edit.set_in_point": "Definir ponto de entrada"
"menu.edit.set_out_point": "Definir ponto de saída"
"menu.edit.reset_in": "Redefinir ponto de entrada"
"menu.edit.reset_out": "Redefinir ponto de saída"
"menu.edit.clear_in_out": "Limpar entrada/saída"
"menu.edit.delete_in_out": "Excluir da entrada à saída"
"menu.edit.ripple_delete_in_out": "Exclusão em cadeia da entrada à saída"
"menu.edit.marker": "Adicionar marcador"
"menu.view.theme": "Tema"
"menu.view.theme.dark": "Olive Dark"
"menu.view.theme.light": "Olive Light"
"menu.view.language": "Idioma"
"language.name": "Português"
"menu.view.zoom_in": "Aproximar"
"menu.view.zoom_out": "Afastar"
"menu.view.increase_track_height": "Aumentar altura da trilha"
"menu.view.decrease_track_height": "Diminuir altura da trilha"
"menu.view.show_all": "Mostrar todas as trilhas"
"menu.view.full_screen": "Tela cheia"
"menu.view.full_screen_viewer": "Visualizador em tela cheia"
"menu.view.preferences": "Preferências…"
"menu.playback.play_pause": "Reproduzir/Pausar"
"menu.playback.play_in_to_out": "Reproduzir da entrada à saída"
"menu.playback.loop": "Loop"
"menu.playback.shuttle_left": "Shuttle à esquerda"
"menu.playback.shuttle_stop": "Parar shuttle"
"menu.playback.shuttle_right": "Shuttle à direita"
"menu.playback.prev_frame": "Quadro anterior"
"menu.playback.next_frame": "Próximo quadro"
"menu.playback.to_start": "Ir para o início da sequência"
"menu.playback.go_to_end": "Ir para o fim da sequência"
"menu.playback.prev_cut": "Ir para o corte anterior"
"menu.playback.next_cut": "Ir para o próximo corte"
"menu.playback.go_to_in": "Ir para o ponto de entrada"
"menu.playback.go_to_out": "Ir para o ponto de saída"
"menu.sequence.add_video_track": "Adicionar trilha de vídeo"
"menu.sequence.add_audio_track": "Adicionar trilha de áudio"
"menu.sequence.remove_track": "Remover trilha selecionada"
"menu.sequence.remove_marker": "Remover marcador"
"menu.sequence.set_workarea": "Definir área de trabalho"
"menu.sequence.clear_workarea": "Limpar área de trabalho"
"menu.sequence.cache": "Cache de renderização"
"menu.sequence.cache_in_out": "Cache de renderização da entrada à saída"
"menu.sequence.cache_clear": "Limpar cache de renderização"
"menu.sequence.settings": "Configurações da sequência…"
"menu.window.project": "Projeto"
"menu.window.source_viewer": "Visualizador de origem"
"menu.window.program_viewer": "Visualizador de programa"
"menu.window.node_editor": "Editor de nós"
"menu.window.inspector": "Inspetor"
"menu.window.history": "Histórico"
"menu.window.timeline": "Linha do tempo"
"menu.window.effect_library": "Biblioteca de efeitos"
"menu.window.multicam": "Multicâmera"
"menu.window.maximize_panel": "Maximizar painel"
"menu.window.reset_layout": "Redefinir layout"
"menu.tools.pointer": "Ponteiro"
"menu.tools.track_select": "Seleção de trilha"
"menu.tools.edit": "Edição"
"menu.tools.ripple": "Ondulação"
"menu.tools.rolling": "Rolagem"
"menu.tools.razor_tool": "Navalha"
"menu.tools.slip": "Deslizamento"
"menu.tools.slide": "Deslocamento"
"menu.tools.hand": "Mão"
"menu.tools.zoom_tool": "Zoom"
"menu.tools.transition": "Transição"
"menu.tools.add": "Adicionar"
"menu.tools.record": "Gravar"
"menu.tools.addable.empty": "Clipe vazio"
"menu.tools.addable.bars": "Barras de cores"
"menu.tools.addable.shape": "Forma"
"menu.tools.addable.solid": "Cor sólida"
"menu.tools.addable.title": "Título"
"menu.tools.addable.tone": "Tom de teste"
"menu.tools.addable.subtitle": "Legenda"
"menu.tools.snapping": "Ajuste"
"menu.tools.use_proxy": "Usar mídia proxy"
"menu.tools.proxy_settings": "Configurações de proxy…"
"menu.help.action_search": "Pesquisar ações…"
"menu.help.feedback": "Enviar comentários…"
"menu.help.about": "Sobre o Oak…"
"shortcut.space": "Espaço"
"panel.project": "Projeto"
"panel.source_viewer": "Visualizador de origem"
"panel.program_viewer": "Visualizador de programa"
"panel.node_editor": "Editor de nós"
"panel.inspector": "Inspetor"
"panel.history": "Histórico"
"panel.timeline": "Linha do tempo"
"panel.effect_library": "Biblioteca de efeitos"
"panel.multicam": "Multicâmera"
"multicam.no_multicam": "Nenhum clipe multicâmera detectado"
"multicam.switch_1": "Alternar para a câmera 1"
"multicam.switch_2": "Alternar para a câmera 2"
"multicam.switch_3": "Alternar para a câmera 3"
"multicam.switch_4": "Alternar para a câmera 4"
"multicam.switch_5": "Alternar para a câmera 5"
"multicam.switch_6": "Alternar para a câmera 6"
"multicam.switch_7": "Alternar para a câmera 7"
"multicam.switch_8": "Alternar para a câmera 8"
"multicam.switch_9": "Alternar para a câmera 9"
"effect_library.hint": "Clique duas vezes para adicionar ao clipe selecionado"
"effect_library.group.builtin": "Integrados"
"status.ready": "Pronto"
"status.cache": "Cache: ativado"
"status.proxy.on": "Proxy: ativado"
"status.proxy.off": "Proxy: desativado"
"status.storage.written": "Biblioteca: salva"
"status.storage.unbound": "Biblioteca: desativada"
"status.storage.error": "Biblioteca: falha ao gravar"
"status.untitled": "Projeto sem título"
"status.backend": "Mecanismo:"
"manager.title": "Gerenciador de projetos"
"manager.new": "Novo projeto"
"manager.new.default_name": "Projeto sem título"
"manager.open": "Abrir"
"manager.rename": "Renomear…"
"manager.rename.title": "Renomear projeto"
"manager.rename.label": "Novo nome"
"manager.duplicate": "Duplicar"
"manager.delete": "Excluir"
"manager.delete.title": "Excluir projeto"
"manager.delete.confirm": "Excluir o projeto \"{name}\" da biblioteca? Esta ação não pode ser desfeita."
"manager.import": "Importar…"
"manager.import.title": "Importar projeto"
"manager.export": "Exportar…"
"manager.export.title": "Exportar projeto"
"manager.col.name": "Nome"
"manager.col.modified": "Modificado"
"manager.col.duration": "Duração"
"manager.col.tracks": "Trilhas"
"manager.col.clips": "Clipes"
"manager.col.footage": "Mídia"
"manager.empty": "Ainda não há projetos na biblioteca."
"timeline.tool.select": "Seleção"
"timeline.tool.razor": "Navalha"
"timeline.tool.ripple": "Ondulação"
"timeline.tool.slip": "Deslizamento"
"timeline.tool.roll": "Rolagem"
"timeline.tool.zoom": "Zoom"
"timeline.tool.slide": "Deslocamento"
"timeline.tool.track_select": "Seleção de trilha"
"timeline.zoom": "Zoom"
"timeline.zoom_in": "Aproximar"
"timeline.zoom_out": "Afastar"
"timeline.track_height": "Altura da trilha"
"timeline.snap": "Ajuste"
"timeline.add_video_track": "Adicionar trilha de vídeo"
"timeline.add_audio_track": "Adicionar trilha de áudio"
"bin.footage": "Mídia"
"bin.music": "Música"
"history.command": "Comando"
"history.empty": "Sem histórico"
"history.jump_here": "Ir para esta etapa"
"node.fit": "Ajustar"
"viewer.picture": "Imagem"
"viewer.scopes": "Escopos"
"scope.histogram": "Histograma"
"scope.waveform": "Forma de onda"
"scope.vectorscope": "Vectorscópio"
"viewer.in_point": "Definir ponto de entrada"
"viewer.step_back": "Quadro anterior"
"viewer.play": "Reproduzir"
"viewer.pause": "Pausar"
"viewer.step_forward": "Próximo quadro"
"viewer.out_point": "Definir ponto de saída"
"viewer.clear_range": "Limpar intervalo entrada/saída"
"explorer.tree": "Árvore"
"explorer.icons": "Ícones"
"viewer.safe_frames": "Margens seguras"
"viewer.zoom": "Zoom"
"viewer.no_frame_source": "Nenhuma fonte de quadro"
"effect_stack.empty": "Nenhuma seleção"
"effect_stack.add": "+ Adicionar efeito"
"inspector.params": "Nenhum parâmetro editável"
"inspector.add_effect": "Adicionar efeito"
"inspector.badge.openfx": "OpenFX"
"ofx.progress.title": "Progresso do plugin OpenFX"
"ofx.color.hex": "Hexadecimal"
"ofx.color.ok": "Confirmar"
"ofx.color.cancel": "Cancelar"
"ofx.color.invalid": "Cor hexadecimal inválida"
"dialog.cancel": "Cancelar"
"dialog.close": "Fechar"
"file.open.title": "Abrir projeto"
"file.import_footage.title": "Importar mídia"
"preferences.title": "Preferências"
"preferences.section.general": "Geral"
"preferences.section.render": "Renderização"
"preferences.section.cache": "Cache"
"preferences.section.proxy": "Proxy"
"preferences.section.color": "Cor"
"preferences.color.enable": "Exibir gerenciamento de cores (ICC da tela)"
"preferences.color.custom": "Perfil ICC personalizado"
"preferences.color.browse": "Procurar…"
"preferences.color.restart_hint": "A alteração do modo entra em vigor após reiniciar."
"preferences.section.project": "Projeto"
"preferences.section.audio": "Áudio"
"preferences.backend": "Backend do renderizador"
"preferences.hwdecode.enable": "Decodificação de vídeo acelerada por hardware (VideoToolbox / VA-API / NVDEC / D3D11VA)"
"preferences.backend.placeholder": "Selecionar um backend…"
"preferences.language": "Idioma"
"preferences.language.placeholder": "Selecionar um idioma…"
"preferences.theme": "Tema"
"preferences.theme.dark": "Olive Dark"
"preferences.theme.light": "Olive Light"
"preferences.cache.dir": "Diretório do cache em disco"
"preferences.cache.browse": "Procurar…"
"preferences.proxy.enable": "Usar mídia proxy"
"preferences.proxy.resolution": "Resolução do proxy"
"preferences.proxy.full": "Resolução completa"
"preferences.snapshot.interval": "Intervalo de salvamento automático (snapshot), em segundos"
"preferences.transition.default": "Duração padrão das transições, em segundos"
"preferences.audio.output": "Dispositivo de saída de áudio"
"preferences.audio.output.placeholder": "Selecionar um dispositivo de saída…"
"preferences.audio.input": "Dispositivo de entrada de áudio"
"preferences.audio.input.placeholder": "Selecionar um dispositivo de entrada…"
"preferences.audio.default": "Padrão do sistema"
"preferences.hint": "O backend do renderizador é aplicado ao worker de renderização no próximo início; as demais configurações entram em vigor imediatamente e são salvas ao sair."
"preferences.tab.general": "Geral"
"preferences.tab.keyboard": "Teclado"
"preferences.section.keyboard": "Teclado"
"preferences.keyboard.search": "Pesquisar ação ou atalho"
"preferences.keyboard.action": "Ação"
"preferences.keyboard.shortcut": "Atalho"
"preferences.keyboard.click_to_edit": "Clique para definir o atalho…"
"preferences.keyboard.capturing": "Pressione as teclas… (Esc para cancelar)"
"preferences.keyboard.unbound": "Nenhum"
"preferences.keyboard.import": "Importar…"
"preferences.keyboard.export": "Exportar…"
"preferences.keyboard.reset_selected": "Redefinir selecionados"
"preferences.keyboard.reset_all": "Redefinir tudo"
"preferences.keyboard.reset_all.confirm": "Tem certeza de que deseja redefinir todos os atalhos de teclado para os padrões?"
"preferences.keyboard.conflict": "O atalho já está atribuído a {action}; a atribuição foi movida."
"preferences.keyboard.cleared": "Atalho limpo (ação sem atribuição)."
"preferences.keyboard.reset": "Atalho redefinido para o padrão."
"preferences.keyboard.reset_all_done": "Todos os atalhos foram redefinidos para os padrões."
"preferences.keyboard.imported": "Atalhos importados com sucesso."
"preferences.keyboard.exported": "Atalhos exportados com sucesso."
"preferences.keyboard.import_failed": "Não foi possível abrir o arquivo para leitura."
"preferences.keyboard.export_failed": "Não foi possível abrir o arquivo para gravação."
"actionsearch.search_placeholder": "Pesquisar ação…"
"actionsearch.empty": "Nenhuma ação correspondente"
"actionsearch.no_actions": "Nenhuma ação disponível"
"export.title": "Exportar sequência"
"export.format": "Formato"
"export.format.placeholder": "Selecionar um formato…"
"export.path": "Caminho de saída"
"export.run": "Exportar"
"export.hint": "A sequência é exportada pelo caminho de exportação do oaktask; o progresso é exibido no diálogo."
"export.progress.title": "Exportando"
"export.progress.label": "Renderizando quadros…"
"proxydialog.title": "Configurações de proxy"
"proxydialog.footage_group": "Mídia"
"proxydialog.no_footage": "Nenhuma mídia no projeto"
"proxydialog.custom": "Usar configurações personalizadas para a mídia"
"proxydialog.custom_suffix": " (configurações personalizadas)"
"proxydialog.global": "Configurações globais de proxy"
"proxydialog.resolution": "Resolução do proxy"
"proxydialog.resolution.custom": "Tamanho personalizado"
"proxydialog.resolution.half": "1/2 da origem"
"proxydialog.resolution.quarter": "1/4 da origem"
"proxydialog.resolution.eighth": "1/8 da origem"
"proxydialog.width": "Largura do proxy"
"proxydialog.height": "Altura do proxy"
"proxydialog.crf": "CRF do proxy"
"proxydialog.preset": "Predefinição do proxy"
"proxydialog.include_audio": "Incluir áudio nos proxies"
"proxydialog.ffmpeg": "Executável do ffmpeg"
"proxydialog.generate": "Gerar proxies"
"proxydialog.delete": "Excluir proxies"
"proxydialog.close": "Fechar"
"proxydialog.state.missing": "Ausente"
"proxydialog.state.generating": "Gerando"
"proxydialog.state.ready": "Pronto"
"proxydialog.state.failed": "Falha"
"menu.color.label": "Rótulo de cor"
"menu.color.red": "Vermelho"
"menu.color.maroon": "Castanho"
"menu.color.orange": "Laranja"
"menu.color.brown": "Marrom"
"menu.color.yellow": "Amarelo"
"menu.color.oak": "Carvalho"
"menu.color.lime": "Lima"
"menu.color.green": "Verde"
"menu.color.cyan": "Ciano"
"menu.color.teal": "Verde-azulado"
"menu.color.blue": "Azul"
"menu.color.navy": "Azul-marinho"
"menu.color.pink": "Rosa"
"menu.color.purple": "Roxo"
"menu.color.silver": "Prata"
"menu.color.gray": "Cinza"
"menu.context.properties": "Propriedades"
"timeline.context.sync_source_time": "Sincronizar pelo tempo da origem"
"timeline.context.sync_waveform": "Sincronizar pela forma de onda"
"timeline.context.sync_waveform_speed": "Sincronizar pela forma de onda (ajustar velocidade)"
"timeline.context.cache": "Cache"
"timeline.context.auto_cache": "Cache automático"
"timeline.context.cache_all": "Armazenar tudo em cache"
"timeline.context.cache_in_out": "Armazenar entrada/saída em cache"
"timeline.context.cache_discard": "Descartar"
"timeline.context.proxy": "Proxy"
"timeline.context.generate_proxy": "Gerar proxy"
"timeline.context.use_proxy": "Usar proxy"
"timeline.context.reveal_proxy": "Revelar proxy"
"timeline.context.delete_proxy": "Excluir proxy"
"timeline.context.reveal_in_footage_viewer": "Revelar no visualizador de mídia"
"timeline.context.reveal_in_project": "Revelar no projeto"
"timeline.context.multicam": "Multicâmera"
"timeline.context.use_audio_time_units": "Usar unidades de tempo de áudio"
"timeline.context.show_thumbnails": "Mostrar miniaturas"
"timeline.context.thumbnails_off": "Desativadas"
"timeline.context.thumbnails_at_in_points": "Somente nos pontos de entrada"
"timeline.context.thumbnails_on": "Ativadas"
"timeline.context.show_waveforms": "Mostrar formas de onda"
"timeline.context.add_video_track": "Adicionar trilha de vídeo"
"timeline.context.add_audio_track": "Adicionar trilha de áudio"
"timeline.context.delete_track": "Excluir"
"timeline.context.delete_all_empty": "Excluir todas as trilhas vazias"
"timeline.context.timecode_drop_frame": "Drop-frame"
"timeline.context.timecode_non_drop_frame": "Non-drop-frame"
"timeline.context.timecode_seconds": "Segundos"
"timeline.context.timecode_frames": "Quadros"
"timeline.context.timecode_milliseconds": "Milissegundos"
"node.category.output": "Saída"
"node.category.effect": "Efeito"
"node.category.generator": "Gerador"
"node.category.input": "Entrada"
"node.category.math": "Matemática"
"node.category.color": "Cor"
"node.category.distort": "Distorção"
"node.category.filter": "Filtro"
"node.category.keying": "Chroma key"
"node.category.openfx": "OpenFX"
"node.category.group": "Grupo"
"project.context.new": "Novo"
"project.context.reveal_in_finder": "Revelar no Finder"
"project.context.replace_footage": "Substituir mídia"
"project.context.rename": "Renomear"
"project.context.delete": "Excluir"
"project.context.open_in_new_tab": "Abrir em nova guia"
"project.context.open_in_new_window": "Abrir em nova janela"
"viewer.context.zoom": "Zoom"
"viewer.context.zoom_fit": "Ajustar"
"viewer.context.full_screen": "Tela cheia"
"viewer.context.playback_resolution": "Resolução de reprodução"
"viewer.context.res_full": "Completa"
"viewer.context.res_half": "1/2"
"viewer.context.res_quarter": "1/4"
"viewer.context.res_eighth": "1/8"
"viewer.context.safe_margins": "Margens seguras"
"viewer.context.safe_off": "Desativado"
"viewer.context.safe_on": "Ativado"
"viewer.context.safe_custom": "Proporção personalizada"
"viewer.context.stop_on_last": "Parar reprodução no último quadro"
"viewer.context.audio_waveform": "Forma de onda de áudio"
"viewer.context.wf_automatic": "Mostrar/ocultar automaticamente"
"viewer.context.wf_only": "Mostrar somente a forma de onda"
"viewer.context.wf_both": "Mostrar visualizador e forma de onda"
"viewer.context.show_fps": "Mostrar FPS"
"viewer.context.save_frame": "Salvar quadro como imagem"
"node.context.group": "Agrupar"
"node.context.ungroup": "Desagrupar"
"node.context.open_in_viewer": "Abrir no visualizador"
"node.context.show_in_param_editor": "Mostrar no editor de parâmetros"
"node.context.smooth_edges": "Suavizar bordas"
"node.context.direction": "Direção"
"node.context.dir_top_bottom": "De cima para baixo"
"node.context.dir_bottom_top": "De baixo para cima"
"node.context.dir_left_right": "Da esquerda para a direita"
"node.context.dir_right_left": "Da direita para a esquerda"
"node.context.add": "Adicionar"
"inspector.context.enable": "Ativar"
"inspector.context.disable": "Desativar"
"inspector.context.remove": "Remover"
"inspector.context.rename": "Renomear"