Skip to content
This repository was archived by the owner on Jun 17, 2026. It is now read-only.

Commit cf74b76

Browse files
Merge pull request #581 from nxc-7/feat/pt-BR-translation
feat: add Brazilian Portuguese (pt-BR) translation
2 parents 0abe134 + afc76c3 commit cf74b76

8 files changed

Lines changed: 503 additions & 0 deletions

File tree

src/i18n/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const SUPPORTED_LOCALES = [
1010
"ru",
1111
"tr",
1212
"vi",
13+
"pt-BR",
1314
"zh-CN",
1415
"zh-TW",
1516
] as const;

src/i18n/locales/pt-BR/common.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"actions": {
3+
"cancel": "Cancelar",
4+
"save": "Salvar",
5+
"delete": "Deletar",
6+
"close": "Fechar",
7+
"share": "Compartilhar",
8+
"done": "Concluir",
9+
"open": "Abrir",
10+
"upload": "Upload",
11+
"export": "Exportar",
12+
"showInFolder": "Mostrar na Pasta",
13+
"file": "Arquivo",
14+
"edit": "Editar",
15+
"view": "Visualizar",
16+
"window": "Janela",
17+
"quit": "Sair",
18+
"stopRecording": "Parar Gravação",
19+
"undo": "Desfazer",
20+
"redo": "Refazer",
21+
"cut": "Recortar",
22+
"copy": "Copiar",
23+
"paste": "Colar",
24+
"selectAll": "Selecionar Tudo",
25+
"minimize": "Minimizar",
26+
"reload": "Recarregar",
27+
"forceReload": "Forçar Recarregar",
28+
"toggleDevTools": "Alternar ferramentas de desenvolvedor",
29+
"actualSize": "Tamanho Original",
30+
"zoomIn": "Aumentar Zoom",
31+
"zoomOut": "Diminuir Zoom",
32+
"toggleFullScreen": "Tela Cheia",
33+
"recordingStatus": "Gravando: {{source}}",
34+
"about": "Sobre o OpenScreen",
35+
"services": "Serviços",
36+
"hide": "Ocultar OpenScreen",
37+
"hideOthers": "Ocultar Outros",
38+
"unhide": "Mostrar Todos"
39+
},
40+
"playback": {
41+
"play": "Play",
42+
"pause": "Pause",
43+
"fullscreen": "Tela Cheia",
44+
"exitFullscreen": "Sair da Tela Cheia"
45+
},
46+
"locale": {
47+
"name": "Português Brasileiro",
48+
"short": "PT-BR"
49+
}
50+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
"export": {
3+
"complete": "Exportação Concluída",
4+
"yourFormatReady": "Seu {{format}} está pronto",
5+
"showInFolder": "Mostrar na Pasta",
6+
"finalizingVideo": "Finalizando exportação do vídeo...",
7+
"compilingGifProgress": "Compilando GIF... {{progress}}%",
8+
"compilingGifWait": "Compilando GIF... Isso pode demorar um pouco",
9+
"takeMoment": "Isso pode levar um momento...",
10+
"failed": "Falha na Exportação",
11+
"tryAgain": "Por favor, tente novamente",
12+
"finalizingVideoTitle": "Finalizando Vídeo",
13+
"compilingGif": "Compilando GIF",
14+
"exportingFormat": "Exportando {{format}}",
15+
"compiling": "Compilando",
16+
"renderingFrames": "Renderizando Quadros",
17+
"processing": "Processando...",
18+
"finalizing": "Finalizando...",
19+
"compilingStatus": "Compilando...",
20+
"status": "Status",
21+
"format": "Formato",
22+
"frames": "Quadros",
23+
"cancelExport": "Cancelar Exportação",
24+
"savedSuccessfully": "{{format}} salvo com sucesso!"
25+
},
26+
"tutorial": {
27+
"triggerLabel": "Como funciona o recorte",
28+
"title": "Como Funciona o Recorte",
29+
"description": "Entendendo como cortar partes indesejadas do seu vídeo.",
30+
"explanationBefore": "A ferramenta de Recorte funciona definindo os segmentos que você deseja",
31+
"remove": "remover",
32+
"explanationMiddle": " — qualquer coisa",
33+
"covered": "coberta",
34+
"explanationAfter": "por um segmento de recorte vermelho será removida quando você exportar.",
35+
"visualExample": "Exemplo Visual",
36+
"removed": "REMOVIDO",
37+
"kept": "Mantido",
38+
"part1": "Parte 1",
39+
"part2": "Parte 2",
40+
"part3": "Parte 3",
41+
"finalVideo": "Vídeo Final",
42+
"step1Title": "1. Adicionar Recorte",
43+
"step1DescriptionBefore": "Pressione ",
44+
"step1DescriptionAfter": " ou clique no ícone da tesoura para marcar uma seção para remoção.",
45+
46+
"step2Title": "2. Ajustar",
47+
"step2Description": "Arraste as bordas da região vermelha para cobrir exatamente o que você deseja cortar."
48+
},
49+
"unsavedChanges": {
50+
"title": "Alterações Não Salvas",
51+
"message": "Você tem alterações não salvas.",
52+
"detail": "Deseja salvar seu projeto antes de fechar?",
53+
"saveAndClose": "Salvar e Fechar",
54+
"discardAndClose": "Descartar e Fechar",
55+
"loadProject": "Carregar Projeto…",
56+
"saveProject": "Salvar Projeto…",
57+
"saveProjectAs": "Salvar Projeto Como…"
58+
},
59+
"fileDialogs": {
60+
"saveGif": "Salvar GIF Exportado",
61+
"saveVideo": "Salvar Vídeo Exportado",
62+
"selectVideo": "Selecionar Arquivo de Vídeo",
63+
"saveProject": "Salvar Projeto OpenScreen",
64+
"openProject": "Abrir Projeto OpenScreen",
65+
"gifImage": "Imagem GIF",
66+
"mp4Video": "Vídeo MP4",
67+
"videoFiles": "Arquivos de Vídeo",
68+
"openscreenProject": "Projeto OpenScreen",
69+
"allFiles": "Todos os Arquivos"
70+
}
71+
}

src/i18n/locales/pt-BR/editor.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"newRecording": {
3+
"title": "Voltar ao Gravador",
4+
"description": "Sua sessão atual foi salva.",
5+
"cancel": "Cancelar",
6+
"confirm": "Confirmar"
7+
},
8+
"loadingVideo": "Carregando vídeo...",
9+
"errors": {
10+
"noVideoLoaded": "Nenhum vídeo carregado",
11+
"videoNotReady": "Vídeo não está pronto",
12+
"unableToDetermineSourcePath": "Não foi possível determinar o caminho do vídeo de origem",
13+
"failedToSaveGif": "Falha ao salvar GIF",
14+
"gifExportFailed": "Falha na exportação do GIF",
15+
"failedToSaveVideo": "Falha ao salvar vídeo",
16+
"exportFailed": "Falha na exportação",
17+
"exportFailedWithError": "Falha na exportação: {{error}}",
18+
"exportBackgroundLoadFailed": "Falha na exportação: não foi possível carregar a imagem de fundo ({{url}})",
19+
"failedToSaveExport": "Falha ao salvar exportação",
20+
"failedToSaveExportedVideo": "Falha ao salvar vídeo exportado",
21+
"failedToRevealInFolder": "Erro ao mostrar na pasta: {{error}}"
22+
},
23+
"export": {
24+
"canceled": "Exportação cancelada",
25+
"exportedSuccessfully": "{{format}} exportado com sucesso"
26+
},
27+
"project": {
28+
"saveCanceled": "Salvamento do projeto cancelado",
29+
"failedToSave": "Falha ao salvar o projeto",
30+
"savedTo": "Projeto salvo em {{path}}",
31+
"failedToLoad": "Falha ao carregar o projeto",
32+
"invalidFormat": "Formato de arquivo de projeto inválido",
33+
"loadedFrom": "Projeto carregado de {{path}}"
34+
},
35+
"recording": {
36+
"failedCameraAccess": "Falha ao solicitar acesso à câmera.",
37+
"cameraBlocked": "O acesso à câmera está bloqueado. Ative-o nas configurações do sistema para usar a webcam.",
38+
"systemAudioUnavailable": "Áudio do sistema não disponível. Gravando sem áudio do sistema.",
39+
"microphoneDenied": "Acesso ao microfone negado. A gravação continuará sem áudio.",
40+
"cameraDenied": "Acesso à câmera negado. A gravação continuará sem webcam.",
41+
"cameraDisconnected": "Webcam desconectada.",
42+
"cameraNotFound": "Câmera não encontrada.",
43+
"permissionDenied": "Permissão de gravação negada. Por favor, permita a gravação de tela."
44+
}
45+
}

src/i18n/locales/pt-BR/launch.json

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"tooltips": {
3+
"hideHUD": "Ocultar HUD",
4+
"closeApp": "Fechar App",
5+
"restartRecording": "Reiniciar gravação",
6+
"cancelRecording": "Cancelar gravação",
7+
"pauseRecording": "Pausar gravação",
8+
"resumeRecording": "Retomar gravação",
9+
"openVideoFile": "Abrir arquivo de vídeo",
10+
"openProject": "Abrir projeto"
11+
},
12+
"audio": {
13+
"enableSystemAudio": "Ativar áudio do sistema",
14+
"disableSystemAudio": "Desativar áudio do sistema",
15+
"enableMicrophone": "Ativar microfone",
16+
"disableMicrophone": "Desativar microfone",
17+
"defaultMicrophone": "Microfone Padrão"
18+
},
19+
"webcam": {
20+
"enableWebcam": "Ativar webcam",
21+
"disableWebcam": "Desativar webcam",
22+
"defaultCamera": "Câmera Padrão",
23+
"searching": "Procurando...",
24+
"noneFound": "Nenhuma câmera encontrada",
25+
"unavailable": "Câmera indisponível"
26+
},
27+
"cursor": {
28+
"useEditableCursor": "Usar cursor editável",
29+
"useSystemCursor": "Usar cursor do sistema"
30+
},
31+
"sourceSelector": {
32+
"loading": "Carregando fontes...",
33+
"screens": "Telas ({{count}})",
34+
"windows": "Janelas ({{count}})",
35+
"defaultSourceName": "Tela"
36+
},
37+
"recording": {
38+
"selectSource": "Por favor, selecione uma fonte para gravar"
39+
},
40+
"language": "Idioma",
41+
"systemLanguagePrompt": {
42+
"title": "Usar o idioma do seu sistema?",
43+
"description": "Detectamos {{language}} como o idioma do seu sistema. Deseja mudar o OpenScreen para {{language}}?",
44+
"switch": "Mudar para {{language}}",
45+
"keepDefault": "Manter idioma atual"
46+
}
47+
}

0 commit comments

Comments
 (0)