feat(i18n): add Brazilian Portuguese locale (#8203)

Add the `pt` frontend and backend locale bundles, register the language in
the language selector, and add a Portuguese README linked from the other
READMEs.

Co-authored-by: Nicolas Pastorello <opastorello@MacBookPro.pastorello.infra>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Nícolas Pastorello
2026-10-08 12:48:30 +08:00
committed by GitHub
co-authored by Nicolas Pastorello Claude Sonnet 5.5
parent 4a125681bd
commit 6b4d4e1551
21 changed files with 1845 additions and 21 deletions
+4 -3
View File
@@ -11,13 +11,14 @@ A Clash Meta GUI based on <a href="https://github.com/tauri-apps/tauri">Tauri</a
<p align="center">
Languages:
<a href="./README.md">简体中文</a> ·
<a href="./docs/README_en.md">English</a> ·
<a href="./docs/README_es.md">Español</a> ·
<a href="./docs/README_ru.md">Русский</a> ·
<a href="./docs/README_fa.md">فارسی</a> ·
<a href="./docs/README_ja.md">日本語</a> ·
<a href="./docs/README_ko.md">한국어</a> ·
<a href="./docs/README_fa.md">فارسی</a>
<a href="./docs/README_pt.md">Português</a> ·
<a href="./docs/README_ru.md">Русский</a> ·
<a href="./README.md">简体中文</a>
</p>
## Preview
+90
View File
@@ -0,0 +1,90 @@
_version: 1
notifications:
dashboardToggled:
title: Painel
body: A visibilidade do painel foi atualizada.
clashModeChanged:
title: Troca de modo
body: Alterado para {mode}.
systemProxyToggled:
title: Proxy do sistema
'on': O proxy do sistema foi ativado.
'off': O proxy do sistema foi desativado.
systemProxyFailed:
title: Proxy do sistema
body: Não foi possível definir o proxy do sistema. Abra o Clash Verge para ver o motivo.
systemProxyGuardStopped:
title: Proteção do proxy do sistema
body: A proteção parou após várias falhas de execução. Abra o Clash Verge para ver o motivo.
tunModeToggled:
title: Modo TUN
'on': O modo TUN foi ativado.
'off': O modo TUN foi desativado.
lightweightModeEntered:
title: Modo leve
body: Modo leve ativado.
profilesReactivated:
title: Perfis
body: Perfil reativado.
appQuit:
title: Prestes a sair
body: O Clash Verge está prestes a sair.
updateReady:
title: Atualização do Clash Verge
body: Uma nova versão (v{version}) foi baixada e está pronta para instalar.
installNow: Instalar agora
later: Depois
service:
adminInstallPrompt: A instalação do serviço do Clash Verge requer privilégios de administrador.
adminUninstallPrompt: A desinstalação do serviço do Clash Verge requer privilégios de administrador.
launchGuard:
currentExeError: 'Não foi possível determinar a localização do aplicativo: {error}'
homeDirError: 'Não foi possível determinar o diretório pessoal do usuário atual. O aplicativo será encerrado: {error}'
translocated: O macOS está executando este aplicativo a partir de um caminho temporário de App Translocation. No Finder, mova-o manualmente para /Applications ou ~/Applications e abra-o novamente.
rejected: |-
Este aplicativo deve ser iniciado a partir de um diretório de Aplicativos.
{reason}
notInBundle: O executável não está dentro de um pacote de aplicativo.
canonicalizeBundleError: 'Não foi possível resolver o caminho do pacote do aplicativo: {error}'
bundleNameError: Não foi possível determinar o nome do pacote do aplicativo. O aplicativo será encerrado.
replacePrompt: Já existe um aplicativo em {destination}. Substituí-lo e reabrir a partir de Aplicativos?
movePrompt: Para iniciar o serviço em segundo plano com segurança, o aplicativo precisa ser movido para {destination}. Mover e reabrir agora?
createApplicationsDirError: 'Não foi possível criar o diretório de Aplicativos: {error}'
moveFailed: Falha ao mover o aplicativo. Mova-o manualmente no Finder e tente novamente.
replaceFailed: 'Não foi possível substituir o aplicativo existente com segurança: {error}'
relaunchFailed: O aplicativo foi copiado, mas não pôde ser reaberto automaticamente. Abra-o manualmente a partir de Aplicativos.
cancel: Cancelar
move: Mover
ok: OK
tray:
dashboard: Painel
ruleMode: Modo regra
globalMode: Modo global
directMode: Modo direto
outboundModes: Modos de saída
rule: Regra
direct: Direto
global: Global
profiles: Perfis
proxies: Proxies
systemProxy: Proxy do sistema
tunMode: Modo TUN
closeAllConnections: Fechar todas as conexões
lightweightMode: Modo leve
copyEnv: Copiar variáveis de ambiente
confDir: Diretório de configuração
coreDir: Diretório do núcleo
logsDir: Diretório de logs
openDir: Abrir diretório
appLog: Log do aplicativo
coreLog: Log do núcleo
restartClash: Reiniciar o núcleo do Clash
restartApp: Reiniciar o aplicativo
vergeVersion: Versão do Verge
more: Mais
exit: Sair
tooltip:
systemProxy: Proxy do sistema
tun: TUN
profile: Perfil
+4 -3
View File
@@ -11,13 +11,14 @@ A Clash Meta GUI built with <a href="https://github.com/tauri-apps/tauri">Tauri<
<p align="center">
Languages:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## Preview
+4 -3
View File
@@ -11,13 +11,14 @@ Una interfaz gráfica para Clash Meta construida con <a href="https://github.com
<p align="center">
Idiomas:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## Vista previa
+4 -3
View File
@@ -11,13 +11,14 @@
<p align="center">
زبان‌ها:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## پیش‌نمایش
+4 -3
View File
@@ -11,13 +11,14 @@
<p align="center">
言語:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## プレビュー
+4 -3
View File
@@ -11,13 +11,14 @@
<p align="center">
언어:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## 미리보기
+125
View File
@@ -0,0 +1,125 @@
<h1 align="center">
<img src="../src-tauri/icons/icon.png" alt="Clash" width="128" />
<br>
Continuação do <a href="https://github.com/zzzgydi/clash-verge">Clash Verge</a>
<br>
</h1>
<h3 align="center">
Uma interface gráfica para o Clash Meta construída com <a href="https://github.com/tauri-apps/tauri">Tauri</a>.
</h3>
<p align="center">
Idiomas:
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## Pré-visualização
| Escuro | Claro |
| -------------------------------------- | -------------------------------------- |
| ![Visual escuro](./preview_dark.png) | ![Visual claro](./preview_light.png) |
## Instalação
Acesse a [página de lançamentos](https://github.com/clash-verge-rev/clash-verge-rev/releases) e baixe o instalador correspondente à sua plataforma.<br>
Oferecemos pacotes para Windows (x64/x86), Linux (x64/arm64) e macOS 10.15+ (Intel/Apple).
#### Como escolher o canal de lançamento
| Canal | Descrição | Link |
| :---------- | :--------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------- |
| Stable | Versões oficiais de alta confiabilidade, ideais para o uso diário. | [Release](https://github.com/clash-verge-rev/clash-verge-rev/releases) |
| Alpha (EOL) | Versões antigas usadas para validar o fluxo de publicação. | [Alpha](https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/alpha) |
| AutoBuild | Versões contínuas para testes e feedback. Espere mudanças típicas de beta. | [AutoBuild](https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/autobuild) |
#### Guias de instalação e perguntas frequentes
Consulte a [documentação do projeto](https://clash-verge-rev.github.io/) para ver os passos de instalação, a solução de problemas e as perguntas frequentes.
### Canal do Telegram
Entre em [@clash_verge_rev](https://t.me/clash_verge_re) para acompanhar as novidades.
---
## Promoções
#### [Doggygo VPN — Acelerador global focado em desempenho](https://cvr.dginv.click/#/register?code=oaxsAGo6)
- Serviço internacional de alto desempenho com teste gratuito, planos com desconto, desbloqueio de streaming e suporte de primeira linha ao protocolo Hysteria.
- Cadastre-se pelo link exclusivo do Clash Verge e ganhe um teste de 3 dias com 1 GB de tráfego diário: [Cadastre-se](https://cvr.dginv.click/#/register?code=oaxsAGo6)
- Cupom exclusivo de 20% de desconto para usuários do Clash Verge: `verge20` (limitado a 500 usos)
- Plano promocional a partir de ¥15,8 por mês com 160 GB, mais 20% de desconto adicional no pagamento anual
- Equipe sediada no exterior para um serviço confiável, com até 50% de comissão compartilhada
- Clusters balanceados com rotas dedicadas de alta velocidade (compatíveis com clientes antigos), latência extremamente baixa, reprodução 4K sem travamentos
- Primeiro provedor global com **protocolo QUIC**, agora com protocolos da família QUIC mais rápidos (ideal para o cliente Clash Verge)
- Desbloqueia serviços de streaming e acesso ao ChatGPT
- Site oficial: [https://狗狗加速.com](https://cvr.dginv.click/#/register?code=oaxsAGo6)
### 🤖 [GPTKefu — Plataforma de atendimento ao cliente com IA integrada ao Crisp](https://gptkefu.com)
- 🧠 Compreensão profunda de todo o contexto da conversa + reconhecimento de imagens, com respostas profissionais e precisas de forma automática, sem respostas robóticas.
- ♾️ **Respostas ilimitadas**, sem preocupação com cotas — ao contrário de outros produtos de IA que cobram por mensagem.
- 💬 Consultas de pré-venda, suporte pós-venda, resolução de problemas complexos — cobre todos os cenários com facilidade, com casos reais comprovados.
- ⚡ Configuração em 3 minutos, sem curva de aprendizado — melhora na hora a eficiência e a satisfação do cliente.
- 🎁 Teste gratuito de 14 dias do plano Premium — experimente antes de pagar: 👉 [Testar grátis](https://gptkefu.com)
- 📢 Canal do Telegram do atendimento com IA: [@crisp_ai](https://t.me/crisp_ai)
---
## Funcionalidades
- Baseado em Rust de alto desempenho e no framework Tauri 2
- Inclui o núcleo integrado [Clash.Meta (mihomo)](https://github.com/MetaCubeX/mihomo) e permite trocar para o canal `Alpha`
- Interface limpa e elegante, com controles de cor do tema, ícones de grupos de proxy/bandeja e `CSS Injection`
- Gerenciamento avançado de perfis (ferramentas Merge e Script) com sugestões de sintaxe para as configurações
- Controle do proxy do sistema, modo guardião e suporte a `TUN` (adaptador de rede virtual)
- Editores visuais para nós e regras
- Backup e sincronização via WebDAV
### Perguntas frequentes
Acesse a [página de FAQ](https://clash-verge-rev.github.io/faq/windows.html) para ver instruções específicas por plataforma.
### Doações
[Apoie o desenvolvimento do Clash Verge Rev](https://github.com/sponsors/clash-verge-rev)
## Desenvolvimento
Consulte o [CONTRIBUTING.md](../CONTRIBUTING.md) para ver as diretrizes de contribuição.
Depois de instalar todos os pré-requisitos do **Tauri**, execute o ambiente de desenvolvimento com:
```shell
pnpm i
pnpm run prebuild
pnpm dev
```
## Contribuições
Issues e pull requests são bem-vindos.
## Agradecimentos
O Clash Verge Rev é baseado nos projetos a seguir, ou se inspira neles:
- [zzzgydi/clash-verge](https://github.com/zzzgydi/clash-verge): Interface gráfica para o Clash baseada em Tauri. Compatível com Windows, macOS e Linux.
- [tauri-apps/tauri](https://github.com/tauri-apps/tauri): Crie aplicativos de desktop menores, mais rápidos e mais seguros com um frontend web.
- [Dreamacro/clash](https://github.com/Dreamacro/clash): Túnel baseado em regras escrito em Go.
- [MetaCubeX/mihomo](https://github.com/MetaCubeX/mihomo): Túnel baseado em regras escrito em Go.
- [Fndroid/clash_for_windows_pkg](https://github.com/Fndroid/clash_for_windows_pkg): Interface do Clash para Windows e macOS.
- [vitejs/vite](https://github.com/vitejs/vite): Ferramentas de frontend de nova geração com uma experiência ultrarrápida.
## Licença
Licença GPL-3.0. Consulte o [arquivo de licença](../LICENSE) para mais detalhes.
+4 -3
View File
@@ -11,13 +11,14 @@ Clash Meta GUI базируется на <a href="https://github.com/tauri-apps/
<p align="center">
Языки:
<a href="../README.md">简体中文</a> ·
<a href="./README_en.md">English</a> ·
<a href="./README_es.md">Español</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="./README_fa.md">فارسی</a> ·
<a href="./README_ja.md">日本語</a> ·
<a href="./README_ko.md">한국어</a> ·
<a href="./README_fa.md">فارسی</a>
<a href="./README_pt.md">Português</a> ·
<a href="./README_ru.md">Русский</a> ·
<a href="../README.md">简体中文</a>
</p>
## Предпросмотр
@@ -44,6 +44,7 @@ const languageOptions = supportedLanguages.map((code) => {
es: 'Español',
jp: '日本語',
zhtw: '繁體中文',
pt: 'Português',
}
const label = labels[code] || code
return { code, label }
+34
View File
@@ -0,0 +1,34 @@
{
"page": {
"title": "Conexões"
},
"components": {
"fields": {
"host": "Host",
"dlSpeed": "Vel. de download",
"ulSpeed": "Vel. de upload",
"chains": "Cadeias",
"rule": "Regra",
"process": "Processo",
"time": "Hora",
"source": "Origem",
"destination": "Destino",
"destinationPort": "Porta de destino",
"type": "Tipo"
},
"order": {
"default": "Padrão",
"uploadSpeed": "Velocidade de upload",
"downloadSpeed": "Velocidade de download"
},
"actions": {
"active": "Ativas",
"closed": "Fechadas",
"closeConnection": "Fechar conexão"
},
"columnManager": {
"title": "Colunas",
"dragHandle": "Alça de arrastar"
}
}
}
+156
View File
@@ -0,0 +1,156 @@
{
"page": {
"tooltips": {
"lightweightMode": "Modo leve",
"manual": "Manual",
"settings": "Configurações do início"
},
"cards": {
"trafficStats": "Estatísticas de tráfego",
"networkSettings": "Configurações de rede",
"proxyMode": "Modo de proxy"
},
"settings": {
"cards": {
"profile": "Cartão de perfil",
"currentProxy": "Cartão do proxy atual",
"network": "Cartão de configurações de rede",
"proxyMode": "Cartão do modo de proxy",
"traffic": "Cartão de estatísticas de tráfego",
"tests": "Cartão de testes de sites",
"ip": "Cartão de informações de IP",
"clashInfo": "Cartões de informações do Clash",
"systemInfo": "Cartões de informações do sistema"
},
"title": "Configurações do início"
},
"title": "Início"
},
"components": {
"proxyTun": {
"status": {
"systemProxyEnabled": "Proxy do sistema ativado",
"systemProxyDisabled": "Proxy do sistema desativado",
"tunModeServiceRequired": "Modo TUN requer o serviço",
"tunModeEnabled": "Modo TUN ativado",
"tunModeDisabled": "Modo TUN desativado"
},
"tooltips": {
"systemProxy": "Informações do proxy do sistema",
"tunMode": "Informações de interceptação do modo TUN"
}
},
"clashInfo": {
"title": "Informações do Clash",
"fields": {
"coreVersion": "Versão do núcleo",
"systemProxyAddress": "Endereço do proxy do sistema",
"mixedPort": "Porta mista",
"uptime": "Tempo ativo",
"rulesCount": "Quantidade de regras"
}
},
"systemInfo": {
"title": "Informações do sistema",
"fields": {
"osInfo": "Informações do SO",
"autoLaunch": "Início automático",
"runningMode": "Modo de execução",
"lastCheckUpdate": "Última verificação de atualização",
"vergeVersion": "Versão do Verge"
},
"actions": {
"settings": "Configurações"
},
"badges": {
"notRunning": "Núcleo não está em execução",
"adminMode": "Modo administrador",
"serviceMode": "Modo serviço",
"sidecarMode": "Modo usuário",
"adminServiceMode": "Modo admin + serviço"
}
},
"ipInfo": {
"title": "Informações de IP",
"labels": {
"ip": "IP",
"asn": "ASN",
"isp": "ISP",
"org": "ORG",
"location": "Localização",
"timezone": "Fuso horário",
"autoRefresh": "Atualização automática",
"unknown": "Desconhecido"
},
"errors": {
"load": "Falha ao obter informações de IP",
"loadWithDetails": "Falha ao obter informações de IP: {{message}}",
"noServices": "Nenhum serviço de detecção de IP disponível"
}
},
"currentProxy": {
"title": "Nó atual",
"actions": {
"refreshDelay": "Teste de latência"
},
"labels": {
"globalMode": "Modo global",
"directMode": "Modo direto",
"group": "Grupo",
"proxy": "Proxy",
"noActiveNode": "Nenhum nó de proxy ativo"
},
"status": {
"testing": "Testando",
"untested": "Não testado",
"error": "Erro",
"timeout": "Tempo esgotado",
"latencyHigh": "Latência alta",
"latencyMedium": "Latência moderada",
"latencyGood": "Latência boa",
"latencyExcellent": "Latência excelente",
"uninitialized": "Não inicializado",
"noProxyNode": "Nenhum nó de proxy"
}
},
"tests": {
"title": "Testes de sites"
},
"traffic": {
"metrics": {
"uploadSpeed": "Velocidade de upload",
"downloadSpeed": "Velocidade de download",
"activeConnections": "Conexões ativas",
"memoryUsage": "Uso do núcleo"
},
"legends": {
"upload": "Envio",
"download": "Recebimento"
},
"patterns": {
"minutes": "{{time}} minutos"
},
"unknownTime": "Horário desconhecido",
"chartStyles": {
"smooth": "Suave",
"linear": "Linear"
},
"diagnostics": "Pontos: {{points}} | Agrupados: {{compressed}} | FPS: {{fps}}"
},
"clashMode": {
"errors": {
"communication": "Erro de comunicação com o núcleo, reinicie o computador e tente novamente"
},
"labels": {
"rule": "Regra",
"global": "Global",
"direct": "Direto"
},
"descriptions": {
"rule": "Escolhe proxies automaticamente de acordo com o conjunto de regras.",
"global": "Encaminha todas as requisições de rede pelo proxy selecionado.",
"direct": "Ignora o proxy e conecta diretamente à internet."
}
}
}
}
+61
View File
@@ -0,0 +1,61 @@
{
"components": {
"navigation": {
"tabs": {
"home": "Início",
"proxies": "Proxies",
"profiles": "Perfis",
"connections": "Conexões",
"rules": "Regras",
"logs": "Logs",
"unlock": "Teste",
"settings": "Ajustes"
},
"menu": {
"reorderMode": "Modo de reordenação do menu",
"restoreDefaultOrder": "Restaurar ordem padrão",
"unlock": "Desbloquear ordem do menu",
"lock": "Bloquear ordem do menu",
"collapseNavBar": "Recolher barra de navegação",
"expandNavBar": "Expandir barra de navegação"
}
},
"serviceMigration": {
"locationRefusedMessage": "O serviço não pode iniciar o núcleo porque o caminho de instalação ou as permissões do diretório falharam em uma verificação de segurança. Reinstale o serviço para restaurar seus arquivos e permissões e tente novamente. O Windows pode solicitar aprovação de administrador.",
"notAutoStartedMessage": "O tipo de inicialização do serviço Clash Verge foi alterado para Manual ou Desativado (geralmente por ferramentas de otimização do sistema), então ele não inicia mais com o Windows; esta sessão está usando Sidecar. Reinstale o serviço para restaurar a inicialização automática. O Windows pode solicitar aprovação de administrador.",
"title": "Atualização do serviço necessária",
"message": "A versão do serviço Clash Verge não corresponde à versão exigida por este app. Escolha Reinstalar serviço para desinstalar o serviço existente e instalar a versão exigida, ou continue com o Sidecar nesta sessão.",
"checkingMessage": "Verificando o status do serviço do sistema e o modo de execução atual. Aguarde…",
"unavailableMessage": "O serviço Clash Verge necessário não está disponível. Instale ou repare-o, ou continue com o Sidecar nesta sessão.",
"reinstall": "Reinstalar serviço",
"repair": "Reparar serviço",
"continueSidecar": "Continuar com Sidecar",
"success": "O serviço Clash Verge foi atualizado com sucesso",
"errors": {
"actionFailed": "A operação do serviço falhou",
"stateRefreshFailed": "Falha ao atualizar o estado do serviço",
"restartFailed": "Falha ao reiniciar o núcleo",
"revalidationFailed": "Falha ao atualizar o estado de execução",
"sidecarFailed": "Falha ao continuar com o Sidecar"
}
},
"sysproxyPrivilege": {
"title": "Não foi possível definir o proxy do sistema",
"message": "O macOS recusou a alteração por falta de privilégios. Instalar o serviço Clash Verge permite que ele faça alterações de proxy como administrador, e este aviso não voltará.",
"serviceReadyMessage": "O serviço Clash Verge está pronto, mas o núcleo ainda está em execução como sidecar, por isso a definição do proxy do sistema foi recusada. Mudar para o modo serviço resolve — sem precisar reinstalar.",
"alternative": "Como alternativa, desative “exigir senha de administrador para acessar as configurações do sistema” em Ajustes do Sistema → Privacidade e Segurança → Avançado.",
"later": "Depois",
"installing": "Instalando o serviço do sistema. Pode ser solicitada a senha de administrador.",
"restarting": "Serviço instalado. Reiniciando o núcleo por meio dele…",
"applying": "Aplicando a alteração do proxy do sistema…",
"tunTitle": "O modo TUN precisa do serviço do sistema",
"tunMessage": "O modo TUN precisa do serviço do sistema Clash Verge para assumir o tráfego de rede. Depois de instalado, o modo TUN será ativado para você."
}
},
"feedback": {
"errors": {
"restartCoreStopFailed": "Não foi possível parar o núcleo com segurança, então a reinicialização foi cancelada",
"quitCoreStopFailed": "Não foi possível parar o núcleo com segurança, então a saída foi cancelada"
}
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"page": {
"title": "Logs"
},
"actions": {
"showDescending": "Mais recentes primeiro",
"showAscending": "Mais antigos primeiro"
}
}
+221
View File
@@ -0,0 +1,221 @@
{
"page": {
"actions": {
"updateAll": "Atualizar todos os perfis",
"viewRuntimeConfig": "Ver configuração em execução",
"reactivate": "Reativar perfis",
"import": "Importar"
},
"batch": {
"actions": {
"delete": "Excluir perfis selecionados",
"selectAll": "Selecionar tudo",
"deselectAll": "Desmarcar tudo",
"done": "Concluído"
},
"summary": {
"selected": "Selecionados",
"items": "itens"
},
"title": "Operações em lote"
},
"importForm": {
"placeholder": "URL do perfil",
"actions": {
"paste": "Colar"
}
},
"feedback": {
"errors": {
"invalidUrl": "URL de perfil inválida. Insira uma URL começando com http:// ou https://",
"onlyYaml": "Somente arquivos YAML são suportados",
"createFailed": "Falha ao criar o perfil",
"deleteFailed": "Falha ao excluir o perfil",
"enhanceFailed": "Falha ao reativar os perfis",
"importFailed": "Falha ao importar o perfil",
"openFailed": "Falha ao abrir o perfil",
"readFailed": "Falha ao ler o perfil",
"reorderFailed": "Falha ao reordenar os perfis",
"switchFailed": "Falha ao trocar de perfil",
"updateFailed": "Falha ao atualizar o perfil"
},
"notifications": {
"importRetry": "Falha na importação, tentando novamente com o proxy Clash...",
"importFail": "Falha na importação mesmo com o proxy Clash",
"importNeedsRefresh": "Perfil importado, mas pode precisar de atualização manual",
"importSuccess": "Perfil importado com sucesso, reinicie se não aparecer",
"profileSwitched": "Perfil trocado",
"profileReactivated": "Perfil reativado",
"switchBusy": "A troca de perfil já está em andamento",
"batchDeleted": "Perfis selecionados excluídos com sucesso"
},
"notices": {
"forceRefreshCompleted": "Atualização forçada concluída",
"discardedKeys": "As extensões gravaram {{keys}}, que são gerenciados pelas Configurações, então esses valores foram descartados",
"emergencyRefreshFailed": "Falha na atualização de emergência: {{message}}"
},
"tooltips": {
"forceRefreshStaleData": "Os dados do perfil estão indisponíveis; clique para forçar a atualização"
}
},
"title": "Perfis"
},
"components": {
"card": {
"labels": {
"clickToImport": "Clique para importar a assinatura"
}
},
"fileInput": {
"chooseFile": "Escolher arquivo"
},
"menu": {
"home": "Início",
"select": "Selecionar",
"shareQrCode": "Compartilhar QR Code",
"editInfo": "Editar informações",
"editFile": "Editar arquivo",
"editRules": "Editar regras",
"editProxies": "Editar proxies",
"editGroups": "Editar grupos de proxy",
"extendConfig": "Configuração de extensão",
"extendScript": "Script de extensão",
"openFile": "Abrir arquivo",
"update": "Atualizar",
"updateViaProxy": "Atualizar via proxy"
},
"more": {
"global": {
"merge": "Extensão global",
"script": "Script de extensão global"
},
"chips": {
"merge": "Mesclar",
"script": "Script"
}
},
"profileItem": {
"tooltips": {
"showLast": "Clique para mostrar a última atualização",
"showNext": "Clique para mostrar a próxima atualização"
},
"status": {
"lastUpdateFailed": "Falha na última atualização",
"nextUp": "Próxima",
"noSchedule": "Sem agendamento",
"unknown": "Desconhecido",
"autoUpdateDisabled": "Atualização automática desativada"
}
}
},
"modals": {
"profileForm": {
"title": {
"create": "Criar perfil",
"edit": "Editar perfil"
},
"fields": {
"type": "Tipo",
"description": "Descrição",
"subscriptionUrl": "URL da assinatura",
"userAgent": "User Agent",
"httpTimeout": "Tempo limite HTTP",
"updateInterval": "Intervalo de atualização",
"useSystemProxy": "Usar proxy do sistema",
"useClashProxy": "Usar proxy Clash",
"acceptInvalidCerts": "Permitir certificados inválidos (perigoso)",
"allowAutoUpdate": "Permitir atualização automática"
},
"types": {
"remote": "Remoto",
"local": "Local"
},
"errors": {
"typeRequired": "Selecione um tipo de perfil",
"urlRequired": "Insira a URL da assinatura",
"uidMissing": "O identificador do perfil está ausente",
"saveFailed": "Falha ao salvar o perfil"
},
"warnings": {
"frequentUpdate": "Um intervalo curto recarrega o núcleo com essa frequência e derruba as conexões existentes. Recomendados: {{minutes}} minutos (24 horas)."
},
"feedback": {
"notifications": {
"creationRetry": "Falha ao criar o perfil, tentando novamente com o proxy Clash...",
"creationSuccess": "Perfil criado com sucesso com o proxy Clash"
}
}
},
"proxiesEditor": {
"title": "Editar proxies",
"placeholders": {
"multiUri": "Use quebras de linha para várias URIs (Base64 suportado)"
},
"actions": {
"prepend": "Adicionar proxy no início",
"append": "Adicionar proxy no fim"
}
},
"groupsEditor": {
"title": "Editar grupos de proxy",
"errors": {
"nameRequired": "Nome do grupo obrigatório",
"nameExists": "O nome do grupo já existe"
},
"fields": {
"type": "Tipo de grupo",
"name": "Nome do grupo",
"icon": "Ícone do grupo de proxy",
"proxies": "Usar proxies",
"provider": "Usar provedor",
"healthCheckUrl": "URL de verificação de saúde",
"expectedStatus": "Status esperado",
"interval": "Intervalo",
"maxFailedTimes": "Máximo de falhas",
"interfaceName": "Nome da interface",
"routingMark": "Marca de roteamento",
"filter": "Filtro",
"excludeFilter": "Filtro de exclusão",
"excludeType": "Tipo de exclusão",
"includeAll": "Incluir todos os proxies e provedores",
"includeAllProxies": "Incluir todos os proxies",
"includeAllProviders": "Incluir todos os provedores"
},
"toggles": {
"lazy": "Lazy",
"disableUdp": "Desativar UDP",
"hidden": "Oculto"
},
"actions": {
"prepend": "Adicionar grupo no início",
"append": "Adicionar grupo no fim"
}
},
"editor": {
"actions": {
"format": "Formatar documento"
},
"messages": {
"readOnly": "Não é possível editar em um editor somente leitura"
},
"enhance": {
"globalMerge": "Aplica-se a todos os perfis, após as configurações do app. O script global, a configuração do perfil e o script do perfil ainda podem alterar o resultado.",
"globalScript": "Aplica-se a todos os perfis, usando o resultado da mesclagem da configuração global. A configuração do perfil e o script do perfil ainda podem alterar o resultado.",
"profileMerge": "Aplica-se somente a este perfil, após a configuração global e o script global. O script do perfil ainda pode alterar o resultado.",
"profileScript": "Aplica-se somente a este perfil, usando o resultado da mesclagem da configuração do perfil. Esta é a última etapa de extensão antes de as configurações do app serem reaplicadas.",
"order": "Ordem: Perfil original → Configurações do app → <globalMerge>Configuração de extensão global</globalMerge> → <globalScript>Script de extensão global</globalScript> → <profileMerge>Configuração de extensão do perfil</profileMerge> → <profileScript>Script de extensão do perfil</profileScript> → Configurações do app reaplicadas",
"settingsPriority": "Nota: os campos gerenciados pelas configurações do app sempre usam essas configurações na configuração final. Alterar esses campos nas extensões não tem efeito."
}
},
"confirmDelete": {
"title": "Confirmar exclusão",
"message": "Esta operação não é reversível"
},
"logViewer": {
"title": "Console de scripts"
},
"qrViewer": {
"title": "QR Code da assinatura"
}
}
}
+122
View File
@@ -0,0 +1,122 @@
{
"page": {
"modes": {
"rule": "Regra",
"global": "Global",
"direct": "Direto"
},
"actions": {
"toggleChain": "Proxy em cadeia",
"connect": "Conectar",
"disconnect": "Desconectar",
"connecting": "Conectando...",
"clearChainConfig": "Excluir configuração da cadeia"
},
"provider": {
"title": "Provedor de proxy",
"actions": {
"updateAll": "Atualizar tudo",
"update": "Atualizar"
}
},
"rules": {
"title": "Regras de proxy",
"select": "Selecionar regras"
},
"labels": {
"proxyCount": "Quantidade de proxies",
"delayCheckReset": "Teste de latência para cancelar a fixação",
"nodeCount": "{{count}} nós"
},
"tooltips": {
"locate": "localizar",
"delayCheck": "Teste de latência",
"sortDefault": "Ordenar por padrão",
"sortDelay": "Ordenar por latência",
"sortName": "Ordenar por nome",
"delayCheckUrl": "URL do teste de latência",
"showBasic": "Proxy básico",
"showDetail": "Proxy detalhado",
"filter": "Filtro"
},
"placeholders": {
"delayCheckUrl": "URL do teste de latência"
},
"empty": {
"noAvailableGroups": "Nenhum grupo de proxy disponível",
"noProxies": "Nenhum proxy",
"noSubscriptions": {
"title": "Nenhuma assinatura importada",
"description": "Não há nada para exibir na página Proxies. Vá para Perfis para importar e ativar uma assinatura."
},
"inactiveSubscription": {
"title": "Nenhuma assinatura ativa",
"description": "Foram encontradas assinaturas, mas nenhuma está ativa. Vá para Perfis e selecione uma para ativar."
},
"coreUnavailable": {
"title": "Núcleo temporariamente indisponível",
"description": "Não foi possível obter as informações de proxy do núcleo. Tente reiniciá-lo. Se o problema persistir, abra a pasta de logs e verifique os logs do núcleo."
},
"noProxyInfo": {
"title": "Nenhuma informação de proxy disponível",
"description": "Não há grupos de proxy nem nós para exibir. Verifique se a assinatura ativa contém grupos e nós de proxy válidos, ou reinicie o núcleo e revise os logs."
},
"actions": {
"openProfiles": "Ir para Perfis",
"restartCore": "Reiniciar núcleo",
"openLogs": "Abrir pasta de logs"
}
},
"chain": {
"header": "Configuração do proxy em cadeia",
"warning": "O proxy em cadeia reduz significativamente a velocidade da rede. Se você não tem uma necessidade clara ou não entende esta configuração, mantenha-o desativado.",
"empty": "O proxy em cadeia reduz significativamente a velocidade da rede. Se você não tem uma necessidade clara ou não entende esta configuração, mantenha-o desativado.",
"instruction": "Clique nos nós em ordem para adicioná-los à cadeia de proxy",
"minimumNodes": "O proxy em cadeia requer pelo menos 2 nós",
"minimumNodesHint": "O proxy em cadeia requer pelo menos 2 nós. Adicione mais um nó.",
"connectFailed": "Falha ao conectar à cadeia de proxy",
"disconnectFailed": "Falha ao desconectar da cadeia de proxy",
"duplicateNode": "O nó de proxy já existe na cadeia",
"entryNode": "Entrada",
"exitNode": "Saída"
},
"messages": {
"directMode": "Modo direto"
},
"title": {
"default": "Grupos de proxy",
"chainMode": "Modo de proxy em cadeia"
}
},
"feedback": {
"warnings": {
"invalidTestUrl": "A URL de teste deve começar com http:// ou https://"
},
"notifications": {
"provider": {
"updateSuccess": "{{name}} atualizado com sucesso",
"updateFailed": "Falha ao atualizar {{name}}: {{message}}",
"genericError": "Falha na atualização: {{message}}",
"none": "Nenhum provedor disponível para atualizar",
"allUpdated": "Todos os provedores atualizados com sucesso"
}
}
},
"components": {
"enums": {
"strategies": {
"select": "Selecionar proxy manualmente",
"url-test": "Selecionar proxy com base na latência do teste de URL",
"fallback": "Alternar para outro proxy em caso de erro",
"load-balance": "Distribuir proxies com balanceamento de carga",
"relay": "Passar pela cadeia de proxy definida"
},
"policies": {
"DIRECT": "Os dados saem diretamente (DIRECT)",
"REJECT": "Intercepta as requisições (REJECT)",
"REJECT-DROP": "Descarta as requisições (REJECT-DROP)",
"PASS": "Ignora esta regra quando houver correspondência (PASS)"
}
}
}
}
+82
View File
@@ -0,0 +1,82 @@
{
"page": {
"provider": {
"trigger": "Provedor de regras",
"dialogTitle": "Provedores de regras",
"actions": {
"updateAll": "Atualizar tudo",
"update": "Atualizar"
}
},
"title": "Regras"
},
"feedback": {
"notifications": {
"provider": {
"updateSuccess": "{{name}} atualizado com sucesso",
"updateFailed": "Falha ao atualizar {{name}}: {{message}}",
"genericError": "Falha na atualização: {{message}}",
"none": "Nenhum provedor disponível para atualizar",
"allUpdated": "Todos os provedores foram atualizados com sucesso"
}
}
},
"modals": {
"editor": {
"form": {
"labels": {
"type": "Tipo de regra",
"content": "Conteúdo da regra",
"proxyPolicy": "Política de proxy"
},
"toggles": {
"noResolve": "Sem resolução"
},
"actions": {
"prependRule": "Adicionar regra no início",
"appendRule": "Adicionar regra no fim"
},
"validation": {
"conditionRequired": "Condição da regra obrigatória",
"invalidRule": "Regra inválida"
}
},
"ruleTypes": {
"DOMAIN": "Corresponder ao domínio completo (DOMAIN)",
"DOMAIN-SUFFIX": "Corresponder ao sufixo de domínio (DOMAIN-SUFFIX)",
"DOMAIN-KEYWORD": "Corresponder à palavra-chave do domínio (DOMAIN-KEYWORD)",
"DOMAIN-REGEX": "Corresponder ao domínio por regex (DOMAIN-REGEX)",
"GEOSITE": "Corresponder a domínios do GeoSite (GEOSITE)",
"GEOIP": "Corresponder ao código de país do IP (GEOIP)",
"SRC-GEOIP": "Corresponder ao código de país do IP de origem (SRC-GEOIP)",
"IP-ASN": "Corresponder ao ASN do IP (IP-ASN)",
"SRC-IP-ASN": "Corresponder ao ASN do IP de origem (SRC-IP-ASN)",
"IP-CIDR": "Corresponder à faixa de endereços IP (IP-CIDR)",
"IP-CIDR6": "Corresponder à faixa de endereços IPv6 (IP-CIDR6)",
"SRC-IP-CIDR": "Corresponder à faixa de endereços IP de origem (SRC-IP-CIDR)",
"IP-SUFFIX": "Corresponder à faixa de sufixo de IP (IP-SUFFIX)",
"SRC-IP-SUFFIX": "Corresponder à faixa de sufixo de IP de origem (SRC-IP-SUFFIX)",
"SRC-PORT": "Corresponder à faixa de portas de origem (SRC-PORT)",
"DST-PORT": "Corresponder à faixa de portas de destino (DST-PORT)",
"IN-PORT": "Corresponder à porta de entrada (IN-PORT)",
"DSCP": "Tag DSCP (apenas entrada TPROXY UDP) (DSCP)",
"PROCESS-NAME": "Corresponder ao nome do processo (PROCESS-NAME)",
"PROCESS-PATH": "Corresponder ao caminho completo do processo (PROCESS-PATH)",
"PROCESS-NAME-REGEX": "Corresponder ao nome do processo por regex (PROCESS-NAME-REGEX)",
"PROCESS-PATH-REGEX": "Corresponder ao caminho completo do processo por regex (PROCESS-PATH-REGEX)",
"NETWORK": "Corresponder ao protocolo de rede (TCP/UDP) (NETWORK)",
"UID": "Corresponder ao ID de usuário Linux (UID)",
"IN-TYPE": "Corresponder ao tipo de entrada (IN-TYPE)",
"IN-USER": "Corresponder ao usuário de entrada (IN-USER)",
"IN-NAME": "Corresponder ao nome da entrada (IN-NAME)",
"SUB-RULE": "Sub-regra (SUB-RULE)",
"RULE-SET": "Corresponder ao conjunto de regras (RULE-SET)",
"AND": "E lógico (AND)",
"OR": "OU lógico (OR)",
"NOT": "NÃO lógico (NOT)",
"MATCH": "Corresponder a todas as requisições (MATCH)"
},
"title": "Editar regras"
}
}
}
+716
View File
@@ -0,0 +1,716 @@
{
"page": {
"actions": {
"manual": "Manual",
"telegram": "Canal do Telegram",
"github": "Repositório do Github"
},
"actionsGroupLabel": "Links das configurações",
"title": "Configurações"
},
"sections": {
"system": {
"title": "Configurações do Sistema",
"toggles": {
"tunMode": "Modo Tun",
"systemProxy": "Proxy do Sistema"
},
"tooltips": {
"silentStart": "Inicia o programa em segundo plano sem exibir o painel"
},
"fields": {
"autoLaunch": "Iniciar com o Sistema",
"silentStart": "Início Silencioso"
},
"notifications": {
"tunMode": {
"autoDisabled": "Modo TUN desativado automaticamente porque o serviço está indisponível",
"autoDisableFailed": "Falha ao desativar o Modo TUN automaticamente"
}
}
},
"proxyControl": {
"tooltips": {
"systemProxy": "Ative para modificar as configurações de proxy do sistema operacional. Se a ativação falhar, modifique as configurações de proxy do sistema operacional manualmente",
"tunMode": "Modo Tun (placa de rede virtual): captura todo o tráfego do sistema. Quando ativado, não é necessário ativar o proxy do sistema.",
"tunUnavailable": "O TUN requer o Modo Serviço ou o Modo Administrador"
},
"actions": {
"installService": "Instalar Serviço",
"uninstallService": "Desinstalar Serviço",
"switchToServiceMode": "Mudar para o modo serviço"
},
"fields": {
"systemProxy": "Proxy do Sistema",
"tunMode": "Modo Tun"
},
"messages": {
"installedCheckProxy": "O serviço está instalado e o núcleo está em execução por meio dele. Verifique o interruptor do proxy do sistema e refaça a alteração se ela não tiver sido aplicada.",
"installedCoreNotOnService": "O serviço está instalado, mas o núcleo não está em execução por meio dele. Verifique o núcleo e tente novamente.",
"installedProxyRestored": "O serviço está instalado, o núcleo está em execução por meio dele e a alteração do proxy do sistema foi aplicada."
}
},
"externalController": {
"title": "Controlador Externo",
"fields": {
"enable": "Ativar Controlador Externo",
"address": "Controlador Externo",
"secret": "Segredo do Núcleo"
},
"placeholders": {
"address": "Obrigatório",
"secret": "Recomendado"
},
"tooltips": {
"copy": "Copiar para a área de transferência"
},
"messages": {
"addressRequired": "O endereço do controlador não pode estar vazio",
"secretRequired": "O segredo não pode estar vazio",
"copyFailed": "Falha ao copiar",
"controllerCopied": "Endereço do controlador copiado para a área de transferência",
"secretCopied": "Segredo copiado para a área de transferência"
}
},
"externalCors": {
"title": "Configuração de CORS Externo",
"fields": {
"allowPrivateNetwork": "Permitir acesso à rede privada",
"allowedOrigins": "Origens Permitidas"
},
"placeholders": {
"origin": "Insira uma URL válida"
},
"actions": {
"add": "Adicionar"
},
"messages": {
"alwaysIncluded": "Origens sempre incluídas: {{urls}}"
},
"tooltips": {
"open": "Configurações de CORS Externo"
}
},
"appearance": {
"light": "Claro",
"dark": "Escuro",
"system": "Sistema"
},
"clash": {
"title": "Configurações do Clash",
"form": {
"fields": {
"allowLan": "Permitir LAN",
"dnsOverwrite": "Sobrescrever DNS",
"ipv6": "IPv6",
"unifiedDelay": "Atraso Unificado",
"logLevel": "Nível de Log",
"portConfig": "Configuração de Portas",
"external": "Externo",
"webUI": "Web UI",
"clashCore": "Núcleo do Clash",
"openUwpTool": "Abrir ferramenta UWP",
"updateGeoData": "Atualizar GeoData",
"tunnels": {
"title": "Gerenciamento de Túneis",
"localAddr": "Endereço de Escuta Local",
"localPort": "Porta de Escuta Local",
"targetAddr": "Endereço de Destino",
"targetPort": "Porta de Destino",
"proxyGroup": "Grupo de Proxy",
"proxyNode": "Nó de Proxy",
"protocols": "Protocolo",
"existing": "Túneis Existentes",
"default": "Seguir a Configuração Atual",
"optional": "Opcional",
"messages": {
"incomplete": "Preencha todos os campos obrigatórios do túnel",
"invalidLocalAddr": "Endereço de escuta local inválido",
"invalidLocalPort": "Porta de escuta local inválida",
"invalidTargetAddr": "Endereço de destino inválido",
"invalidTargetPort": "Porta de destino inválida"
},
"actions": {
"add": "Adicionar",
"addNew": "Adicionar Novo Túnel"
}
}
},
"tooltips": {
"networkInterface": "Interface de Rede",
"unifiedDelay": "Com o atraso unificado ativado, dois testes de atraso são realizados para eliminar as diferenças de atraso entre diferentes tipos de nós causadas por handshakes de conexão, etc.",
"logLevel": "Este parâmetro é válido apenas para os arquivos de log do núcleo na pasta Service do diretório de logs",
"openUwpTool": "Desde o Windows 8, os aplicativos UWP (como a Microsoft Store) são impedidos de acessar diretamente os serviços de rede do host local, e esta ferramenta pode ser usada para contornar essa restrição"
},
"options": {
"logLevel": {
"debug": "Debug",
"info": "Info",
"warning": "Aviso",
"error": "Erro",
"silent": "Silencioso"
}
}
}
}
},
"components": {
"verge": {
"basic": {
"title": "Configurações Básicas do Verge",
"actions": {
"browse": "Procurar"
},
"trayOptions": {
"showMainWindow": "Abrir Janela",
"showTrayMenu": "Abrir Menu",
"disable": "Desativar"
},
"fields": {
"language": "Idioma",
"themeMode": "Modo do Tema",
"trayClickEvent": "Ação de Clique na Bandeja",
"copyEnvType": "Tipo de Env ao Copiar",
"startPage": "Página Inicial",
"startupScript": "Script de Inicialização",
"themeSetting": "Configurações do Tema",
"layoutSetting": "Configurações de Layout",
"misc": "Diversos",
"hotkeySetting": "Configurações de Atalhos"
}
},
"advanced": {
"title": "Configurações Avançadas do Verge",
"tooltips": {
"backupInfo": "Suporta backup local ou via WebDAV dos arquivos de configuração",
"openConfDir": "Se o software funcionar de forma anormal, FAÇA BACKUP e exclua todos os arquivos desta pasta e reinicie o software",
"liteMode": "Fecha a interface gráfica e mantém apenas o núcleo em execução"
},
"actions": {
"copyVersion": "Copiar Versão"
},
"notifications": {
"latestVersion": "Você já está na versão mais recente",
"versionCopied": "Versão copiada para a área de transferência"
},
"fields": {
"backupSetting": "Configurações de Backup",
"runtimeConfig": "Configuração em Execução",
"openConfDir": "Abrir Pasta de Configuração",
"openCoreDir": "Abrir Pasta do Núcleo",
"openLogsDir": "Abrir Pasta de Logs",
"checkUpdates": "Verificar Atualizações",
"openDevTools": "Ferramentas de Desenvolvedor",
"liteModeSettings": "Configurações do Modo Leve",
"exit": "Sair",
"exportDiagnostics": "Exportar Informações de Diagnóstico",
"vergeVersion": "Versão do Verge"
}
},
"theme": {
"title": "Configurações do Tema",
"fields": {
"primaryColor": "Cor Primária",
"secondaryColor": "Cor Secundária",
"primaryText": "Texto Primário",
"secondaryText": "Texto Secundário",
"infoColor": "Cor de Informação",
"warningColor": "Cor de Aviso",
"errorColor": "Cor de Erro",
"successColor": "Cor de Sucesso",
"fontFamily": "Família da Fonte",
"cssInjection": "Injeção de CSS"
},
"actions": {
"editCss": "Editar CSS"
},
"dialogs": {
"editCssTitle": "Editar CSS"
}
},
"layout": {
"title": "Configurações de Layout",
"fields": {
"preferSystemTitlebar": "Preferir Barra de Título do Sistema",
"trafficGraph": "Gráfico de Tráfego",
"memoryUsage": "Uso do Núcleo",
"proxyGroupIcon": "Ícone do Grupo de Proxy",
"toastPosition": "Posição das Notificações",
"hoverNavigator": "Navegador de Salto ao Passar o Mouse",
"hoverNavigatorDelay": "Atraso do Navegador de Salto ao Passar o Mouse",
"navIcon": "Ícone de Navegação",
"collapseNavBar": "Recolher Barra de Navegação",
"trayIcon": "Ícone da Bandeja",
"proxyGroupsDisplayMode": "Modo de Exibição dos Grupos de Proxy",
"showOutboundModesInline": "Mostrar Modos de Saída em Linha",
"commonTrayIcon": "Ícone Comum da Bandeja",
"systemProxyTrayIcon": "Ícone da Bandeja do Proxy do Sistema",
"tunTrayIcon": "Ícone da Bandeja do Tun",
"enableTrayIcon": "Ativar Ícone da Bandeja",
"enableTraySpeed": "Ativar Velocidade na Bandeja",
"pauseRenderTrafficStatsOnBlur": "Pausar a renderização das estatísticas de tráfego quando sem foco"
},
"tooltips": {
"hoverNavigator": "Rola automaticamente até o grupo de proxy correspondente ao passar o mouse sobre as letras do alfabeto",
"hoverNavigatorDelay": "Atraso antes da rolagem automática ao passar o mouse, em milissegundos"
},
"options": {
"icon": {
"monochrome": "Monocromático",
"colorful": "Colorido",
"disable": "Desativar"
},
"toastPosition": {
"topLeft": "Superior Esquerdo",
"topRight": "Superior Direito",
"bottomLeft": "Inferior Esquerdo",
"bottomRight": "Inferior Direito"
},
"proxyGroupsDisplayMode": {
"default": "Padrão",
"inline": "Em Linha",
"disable": "Desativar"
}
}
}
}
},
"modals": {
"clashPort": {
"title": "Configuração de Portas",
"fields": {
"mixed": "Porta Mista",
"socks": "Porta Socks",
"http": "Porta Http(s)",
"redir": "Porta Redir",
"tproxy": "Porta Tproxy"
},
"actions": {
"random": "Porta Aleatória"
},
"messages": {
"portInUse": "A porta {{port}} já está em uso",
"runningPort": "Usando atualmente a porta {{port}}",
"duplicatePort": "Os listeners ativados devem usar portas diferentes",
"invalidPort": "Insira uma porta entre 1 e 65535",
"saved": "Configurações de porta salvas",
"saveFailed": "Falha ao salvar as configurações de porta",
"automaticFallback": "A porta {{oldPort}} estava em uso, então esta sessão é executada em {{newPort}}. Sua configuração não foi alterada e {{oldPort}} será tentada novamente na próxima inicialização.",
"automaticFallbackFailed": "Falha no fallback automático da porta mista do proxy: {{error}}",
"portTooLow": "A porta deve ser 1000 ou maior",
"portTooHigh": "A porta deve ser 65535 ou menor"
}
},
"clashCore": {
"variants": {
"release": "Versão Release",
"alpha": "Versão Alpha"
}
},
"liteMode": {
"title": "Configurações do Modo Leve",
"actions": {
"enterNow": "Entrar no Modo Leve Agora"
},
"toggles": {
"autoEnter": "Entrar Automaticamente no Modo Leve"
},
"tooltips": {
"autoEnter": "Ative para acionar automaticamente o Modo Leve depois que a janela ficar fechada por um período"
},
"fields": {
"delay": "Atraso para Entrar Automaticamente no Modo Leve"
},
"messages": {
"autoEnterHint": "Ao fechar a janela, o Modo Leve será ativado automaticamente após {{n}} minutos"
}
},
"backup": {
"title": "Configurações de Backup",
"tabs": {
"local": "Backup local",
"webdav": "Backup WebDAV"
},
"actions": {
"selectTarget": "Selecionar destino do backup",
"backup": "Backup",
"export": "Exportar",
"exportBackup": "Exportar Backup",
"importBackup": "Importar Backup",
"deleteBackup": "Excluir Backup",
"restore": "Restaurar",
"restoreBackup": "Restaurar Backup",
"viewHistory": "Ver histórico"
},
"fields": {
"webdavUrl": "URL do Servidor WebDAV",
"username": "Usuário",
"info": "Os backups são armazenados localmente no diretório de dados do aplicativo. Use a lista abaixo para restaurar ou excluir backups."
},
"messages": {
"webdavUrlRequired": "A URL do WebDAV não pode estar vazia",
"invalidWebdavUrl": "Formato de URL do WebDAV inválido",
"usernameRequired": "O usuário não pode estar vazio",
"passwordRequired": "A senha não pode estar vazia",
"webdavConfigSaved": "Configuração do WebDAV salva com sucesso",
"webdavConfigSaveFailed": "Falha ao salvar a configuração do WebDAV: {{error}}",
"backupCreated": "Backup criado com sucesso",
"backupFailed": "Falha no backup: {{error}}",
"localBackupCreated": "Backup local criado com sucesso",
"localBackupFailed": "Falha no backup local",
"restoreSuccess": "Restauração concluída, o aplicativo será reiniciado em 1s",
"localBackupExported": "Backup local exportado com sucesso",
"localBackupExportFailed": "Falha ao exportar o backup local",
"localBackupImported": "Backup local importado com sucesso",
"localBackupImportFailed": "Falha ao importar o backup local: {{error}}",
"webdavRefreshSuccess": "Atualização do WebDAV concluída com sucesso",
"webdavRefreshFailed": "Falha na atualização do WebDAV: {{error}}",
"confirmDelete": "Confirmar a exclusão deste arquivo de backup?",
"confirmRestore": "Confirmar a restauração deste arquivo de backup?"
},
"auto": {
"title": "Backup automático",
"scheduleLabel": "Ativar backup agendado",
"scheduleHelper": "Cria backups locais em segundo plano no intervalo configurado.",
"intervalLabel": "Frequência do backup",
"changeLabel": "Backup em alterações críticas",
"changeHelper": "Faz backup automaticamente quando a Configuração/Script Global Estendido é alterado.",
"options": {
"hours": "A cada {{n}} horas",
"days": "A cada {{n}} dias"
}
},
"manual": {
"title": "Backup manual",
"local": "Cria um snapshot neste dispositivo, armazenado no diretório de dados do aplicativo.",
"webdav": "Envia um snapshot para o seu servidor WebDAV assim que as credenciais forem definidas.",
"configureWebdav": "Configurar WebDAV"
},
"history": {
"title": "Histórico de backups",
"summary": "{{count}} backups • mais recente {{recent}}",
"empty": "Nenhum backup disponível",
"unknownPlatform": "desconhecida",
"unknownTime": "Hora desconhecida"
},
"webdav": {
"title": "Configurações do WebDAV"
},
"table": {
"filename": "Nome do Arquivo",
"backupTime": "Hora do Backup",
"actions": "Ações",
"noBackups": "Nenhum backup disponível",
"rowsPerPage": "Linhas por página"
}
},
"misc": {
"title": "Diversos",
"fields": {
"appLogLevel": "Nível de Log do Aplicativo",
"appLogMaxSize": "Tamanho Máximo do Log do Aplicativo",
"appLogMaxCount": "Quantidade Máxima de Logs do Aplicativo",
"autoCloseConnections": "Fechar Conexões Automaticamente",
"autoCheckUpdate": "Verificar Atualizações Automaticamente",
"enableBuiltinEnhanced": "Ativar Aprimoramento Integrado",
"proxyLayoutColumns": "Colunas do Layout de Proxy",
"autoLogClean": "Limpeza Automática de Logs",
"autoDelayDetection": "Detecção Automática de Atraso",
"autoDelayDetectionInterval": "Intervalo da Detecção Automática de Atraso",
"defaultLatencyTest": "Teste de Latência Padrão",
"defaultLatencyTimeout": "Tempo Limite de Latência Padrão"
},
"tooltips": {
"autoCloseConnections": "Encerra as conexões estabelecidas quando a seleção do grupo de proxy ou o modo de proxy muda",
"enableBuiltinEnhanced": "Tratamento de compatibilidade para o arquivo de configuração",
"autoDelayDetection": "Testa periodicamente a latência do nó atual em segundo plano",
"defaultLatencyTest": "Usado apenas para testes de requisição do cliente HTTP e não afeta o arquivo de configuração"
},
"options": {
"proxyLayoutColumns": {
"auto": "Colunas Automáticas"
},
"autoLogClean": {
"never": "Nunca Limpar",
"retainDays": "Manter {{n}} Dias"
}
}
},
"update": {
"title": "Nova Versão v{{version}}",
"actions": {
"goToRelease": "Ir para a Página da Release",
"update": "Atualizar"
},
"messages": {
"breakChangeError": "Esta versão é uma atualização importante e não oferece suporte a atualizações dentro do aplicativo. Desinstale-a e baixe e instale a nova versão manualmente",
"available": "Uma nova versão está disponível"
},
"alerts": {
"note": "Nota",
"tip": "Dica",
"important": "Importante",
"warning": "Aviso",
"caution": "Cuidado"
}
},
"sysproxy": {
"title": "Configurações do Proxy do Sistema",
"fieldsets": {
"currentStatus": "Proxy do Sistema Atual"
},
"fields": {
"enableStatus": "Status de Ativação:",
"serverAddr": "Endereço do Servidor: ",
"pacUrl": "URL do PAC: ",
"proxyHost": "Host do Proxy",
"usePacMode": "Usar Modo PAC",
"proxyGuard": "Proteção do Proxy",
"guardDuration": "Duração da Proteção",
"alwaysUseDefaultBypass": "Sempre usar o Bypass Padrão",
"enableBypassCheck": "Validar Formato do Bypass do Proxy",
"proxyBypass": "Configurações de Bypass do Proxy: ",
"bypass": "Bypass: ",
"pacScriptContent": "Conteúdo do Script PAC"
},
"tooltips": {
"proxyGuard": "Ative para impedir que outros softwares modifiquem as configurações de proxy do sistema operacional"
},
"messages": {
"durationTooShort": "A duração do daemon do proxy não pode ser menor que 1 segundo",
"invalidBypass": "Formato de Bypass inválido",
"invalidProxyHost": "Formato de host do proxy inválido"
},
"actions": {
"editPac": "Editar PAC"
}
},
"tun": {
"title": "Modo Tun",
"fields": {
"stack": "Stack do Tun",
"device": "Nome do Dispositivo",
"autoRoute": "Rota Automática",
"routeExcludeAddress": "Endereços Excluídos da Rota",
"strictRoute": "Rota Estrita",
"autoDetectInterface": "Detectar Interface Automaticamente",
"dnsHijack": "Sequestro de DNS",
"mtu": "Unidade Máxima de Transmissão",
"autoRedirect": "Redirecionamento Automático"
},
"tooltips": {
"dnsHijack": "Use , para separar vários servidores DNS",
"autoRedirect": "Configura automaticamente os redirecionamentos TCP do nftables/iptables"
},
"messages": {
"applied": "Configurações Aplicadas",
"invalidRouteExcludeAddress": "Insira um bloco CIDR válido",
"routeExcludeAddressHint": "Somente CIDR IPv4/IPv6 é suportado, como 192.168.0.0/16 ou fd00::/8"
}
},
"dns": {
"dialog": {
"title": "Sobrescrever DNS",
"profileScope": "A opção de sobrescrever DNS é salva separadamente para cada perfil e se aplica somente a esse perfil.",
"warning": "Se você não está familiarizado com estas configurações, não as modifique e mantenha a Sobrescrita de DNS desativada"
},
"protection": {
"title": "Ativar Sobrescrita de DNS?",
"message": "Esta assinatura contém configurações de DNS personalizadas. A Sobrescrita de DNS pode substituí-las, impedindo que os nós se conectem ou que alguns sites sejam carregados. Ativar mesmo assim?",
"enableAnyway": "Ativar mesmo assim",
"keepDisabled": "Manter desativada",
"autoDisabled": "A Sobrescrita de DNS foi desativada para preservar as configurações de DNS personalizadas da assinatura atual."
},
"sections": {
"general": "Configurações de DNS",
"fallbackFilter": "Configurações do Filtro de Fallback",
"hosts": "Configurações de Hosts"
},
"fields": {
"enable": "Ativar DNS",
"listen": "Escuta do DNS",
"enhancedMode": "Modo Aprimorado",
"fakeIpRange": "Intervalo de Fake IP",
"fakeIpRange6": "Intervalo de Fake IP (IPv6)",
"fakeIpFilterMode": "Modo do Filtro de Fake IP",
"ipv6": {
"label": "IPv6",
"description": "Ativar resolução DNS IPv6"
},
"preferH3": {
"label": "Preferir H3",
"description": "O DNS DOH usa HTTP/3"
},
"respectRules": {
"label": "Respeitar Regras",
"description": "As conexões DNS seguem as regras de roteamento"
},
"useHosts": {
"label": "Usar Hosts",
"description": "Ative para resolver hosts por meio do arquivo hosts"
},
"useSystemHosts": {
"label": "Usar Hosts do Sistema",
"description": "Ative para resolver hosts por meio do arquivo hosts do sistema"
},
"directPolicy": {
"label": "Nameserver Direto Segue a Política",
"description": "Define se deve seguir a política de nameserver"
},
"defaultNameserver": {
"label": "Nameserver Padrão",
"description": "Servidores DNS padrão usados para resolver servidores DNS"
},
"nameserver": {
"label": "Nameserver",
"description": "Lista de servidores DNS, separados por vírgula"
},
"fallback": {
"label": "Fallback",
"description": "Lista de servidores DNS de fallback, separados por vírgula"
},
"proxy": {
"label": "Nameserver do Servidor Proxy",
"description": "Servidores DNS para resolução de domínios dos nós de proxy"
},
"directNameserver": {
"label": "Nameserver Direto",
"description": "Servidores DNS para resolução de domínios de saída direta, suporta a palavra-chave 'system', separados por vírgula"
},
"fakeIpFilter": {
"label": "Filtro de Fake IP",
"description": "Domínios que ignoram a resolução de fake IP, separados por vírgula"
},
"nameserverPolicy": {
"label": "Política de Nameserver",
"description": "Servidor DNS específico por domínio, vários servidores separados por ponto e vírgula, formato: domínio=servidor1;servidor2"
},
"geoipFiltering": {
"label": "Filtragem GeoIP",
"description": "Ativar filtragem GeoIP para o fallback"
},
"geoipCode": "Código GeoIP",
"fallbackIpCidr": {
"label": "CIDR de IP do Fallback",
"description": "CIDRs de IP que não usam servidores de fallback, separados por vírgula"
},
"fallbackDomain": {
"label": "Domínio do Fallback",
"description": "Domínios que usam servidores de fallback, separados por vírgula"
},
"hosts": {
"label": "Hosts",
"description": "Mapeamento personalizado de domínio para IP ou domínio"
}
},
"messages": {
"saved": "Configurações de DNS salvas",
"configError": "Erro na configuração de DNS:"
},
"errors": {
"invalid": "Configuração inválida",
"invalidYaml": "Formato YAML inválido"
}
},
"webUI": {
"actions": {
"openUrl": "Abrir URL"
},
"title": "Web UI",
"messages": {
"supportedPlaceholders": "Suporta %host, %port, %secret",
"placeholderInstruction": "Substitua host, port, secret por %host, %port, %secret"
},
"errors": {
"clashInfoUnavailable": "As informações de conexão do núcleo não estão disponíveis",
"invalidServer": "O endereço do servidor do núcleo \"{{server}}\" é inválido",
"openFailed": "Falha ao abrir a Web UI"
}
},
"hotkey": {
"toggles": {
"enableGlobal": "Ativar Atalho Global"
},
"title": "Configurações de Atalhos",
"functions": {
"rule": "Modo Regra",
"global": "Modo Global",
"openOrCloseDashboard": "Abrir/Fechar Painel",
"toggleSystemProxy": "Ativar/Desativar Proxy do Sistema",
"toggleTunMode": "Ativar/Desativar Modo Tun",
"entryLightweightMode": "Entrar no Modo Leve",
"direct": "Modo Direto",
"reactivateProfiles": "Reativar Perfis"
}
},
"networkInterface": {
"title": "Interface de Rede",
"fields": {
"ipAddress": "Endereço IP",
"macAddress": "Endereço MAC"
}
}
},
"feedback": {
"errors": {
"clash": {
"configUpdateFailed": "Falha ao atualizar a configuração do núcleo",
"modeUpdateFailed": "Falha ao alterar o modo de proxy",
"restartFailed": "Falha ao reiniciar o núcleo",
"startFailed": "Falha ao iniciar o núcleo",
"serviceCoreStopped": "O núcleo do serviço parou inesperadamente",
"stopFailed": "Falha ao parar o núcleo"
},
"clashService": {
"installFailed": "Falha ao instalar o serviço",
"uninstallFailed": "Falha ao desinstalar o serviço",
"reinstallFailed": "Falha ao reinstalar o serviço",
"repairFailed": "Falha ao reparar o serviço",
"sidecarFailed": "Falha ao continuar com o Sidecar",
"coreAlreadyRunning": "Não foi possível iniciar o modo normal (Sidecar): outro núcleo ainda está em execução (PID {{pid}}). Saia das outras instâncias do Clash Verge ou do aplicativo que usa este núcleo e tente novamente."
},
"sysproxy": {
"privilegeRequired": "Não é possível definir o proxy do sistema: o macOS recusou a alteração por falta de privilégios. Instale o serviço do Clash Verge; um administrador também pode desativar a exigência de senha de administrador para configurações do sistema, nas opções avançadas em Ajustes do Sistema → Privacidade e Segurança.",
"directFallback": "Falha ao definir o proxy do sistema; o tráfego foi revertido para conexão direta.",
"guardStopped": "A proteção do proxy do sistema parou após falhar várias vezes ao executar. O proxy do sistema não está mais sendo mantido.",
"sidecarWhileServiceReady": "Não foi possível definir o proxy do sistema porque o núcleo ainda está em execução como Sidecar, embora o serviço do Clash Verge esteja pronto. Reinicie o núcleo para mudar para o modo serviço.",
"coreNotReady": "Não foi possível ativar o proxy do sistema porque o núcleo não está em execução. Inicie o núcleo (ou instale/repare o serviço do Clash Verge) e tente novamente.",
"systemCallFailed": "Não foi possível gravar o proxy do sistema porque uma chamada de sistema do Windows falhou. Geralmente é temporário, então tente novamente."
}
},
"notifications": {
"clash": {
"restartSuccess": "Núcleo do Clash Reiniciado",
"versionUpdated": "Versão do Núcleo Atualizada",
"alreadyLatestVersion": "Já Está Usando a Versão Mais Recente do Núcleo",
"changeSuccess": "Núcleo alterado com sucesso",
"changeFailed": "Falha ao alterar o núcleo",
"geoDataUpdated": "GeoData Atualizado"
},
"clashService": {
"appDataNotOwned": "O serviço se recusou a iniciar o núcleo porque, no disco, a pasta de dados do aplicativo não pertence à sua conta (comum quando a pasta pessoal está em um disco externo). Reparar o serviço não resolverá isso. Execute este comando em um terminal e reinicie o aplicativo:",
"installSuccess": "Serviço Instalado com Sucesso",
"permissionFallback": "{{reason}} Mudou para o modo normal (Sidecar); o TUN requer privilégios de administrador. Siga o guia para corrigir e reinstalar o serviço. Se preferir não corrigir ou não souber como, execute o aplicativo como administrador sem instalar o serviço.",
"permissionWritableReason": "Contas comuns podem modificar os arquivos do núcleo ou uma pasta superior, então o serviço se recusou a executar o núcleo com privilégios elevados.",
"permissionRejectedReason": "O serviço não conseguiu confirmar que os arquivos e pastas do núcleo são seguros para execução com privilégios elevados.",
"permissionRepairGuide": "Ver instruções de reparo",
"sidecarFallback": "O serviço não conseguiu iniciar o núcleo. Mudou para o modo Sidecar; o serviço continua indisponível.",
"uninstallSuccess": "Serviço Desinstalado com Sucesso"
},
"updater": {
"withClashProxySuccess": "Atualização com o proxy do Clash concluída com sucesso",
"withClashProxyFailed": "A atualização falhou mesmo com o proxy do Clash"
}
}
},
"statuses": {
"clash": {
"stopping": "Parando o Núcleo...",
"restarting": "Reiniciando o Núcleo..."
},
"clashService": {
"installing": "Instalando o Serviço...",
"uninstalling": "Desinstalando o Serviço..."
}
}
}
+139
View File
@@ -0,0 +1,139 @@
{
"actions": {
"cancel": "Cancelar",
"close": "Fechar",
"confirm": "Confirmar",
"save": "Salvar",
"delete": "Excluir",
"edit": "Editar",
"new": "Novo",
"enable": "Ativar",
"upgrade": "Atualizar versão",
"restart": "Reiniciar",
"resetToDefault": "Restaurar padrão",
"refresh": "Atualizar",
"retry": "Tentar novamente",
"refreshPage": "Recarregar página",
"showDetails": "Mostrar detalhes",
"hideDetails": "Ocultar detalhes",
"listView": "Visualização em lista",
"tableView": "Visualização em tabela",
"pause": "Pausar",
"resume": "Retomar",
"closeAll": "Fechar tudo",
"clear": "Limpar",
"previous": "Anterior",
"next": "Próximo",
"check": "Verificar"
},
"labels": {
"updateAt": "Atualizado em",
"timeout": "Tempo limite",
"icon": "Ícone",
"name": "Nome",
"readOnly": "Somente leitura",
"expireTime": "Expira em",
"updateTime": "Hora da atualização",
"usedTotal": "Usado / Total",
"from": "De",
"password": "Senha",
"retryAttempts": "Tentativas",
"downloaded": "Baixado",
"uploaded": "Enviado"
},
"statuses": {
"enabled": "Ativado",
"disabled": "Desativado",
"saving": "Salvando...",
"empty": "Vazio",
"loading": "Carregando..."
},
"units": {
"milliseconds": "ms",
"seconds": "segundos",
"minutes": "min",
"hours": "h",
"kilobytes": "KB",
"files": "Arquivos"
},
"placeholders": {
"resetInput": "Limpar entrada",
"filter": "Condições do filtro",
"matchCase": "Diferenciar maiúsculas",
"matchWholeWord": "Palavra inteira",
"useRegex": "Usar expressão regular"
},
"validation": {
"invalidRegex": "Expressão regular inválida"
},
"window": {
"maximize": "Maximizar",
"minimize": "Minimizar"
},
"editorModes": {
"visualization": "Visualização",
"advanced": "Avançado"
},
"feedback": {
"errors": {
"unexpected": "Algo deu errado",
"label": "Erro",
"unknown": "Erro desconhecido",
"details": "Detalhes do erro",
"stack": "Pilha de erros",
"componentStack": "Pilha de componentes",
"trafficUnavailable": "Dados de tráfego indisponíveis",
"operationFailed": "A operação falhou",
"trafficStats": "Erro nas estatísticas de tráfego",
"trafficStatsDescription": "O componente de estatísticas de tráfego encontrou um erro e foi desativado para evitar falhas."
},
"notices": {
"raw": "{{message}}",
"prefixedRaw": "{{prefix}} {{message}}"
},
"notifications": {
"importSuccess": "Perfil importado com sucesso",
"importSubscriptionSuccess": "Assinatura importada com sucesso",
"importWithClashProxy": "Perfil importado com o proxy do Clash",
"updateAvailable": "Atualização disponível",
"saved": "Salvo com sucesso",
"common": {
"copySuccess": "Copiado com sucesso",
"saveSuccess": "Configuração salva com sucesso",
"saveFailed": "Falha ao salvar a configuração",
"refreshFailed": "Falha ao atualizar; exibindo o último valor carregado"
}
},
"validation": {
"config": {
"failed": "A validação da configuração da assinatura falhou. Verifique o arquivo de configuração da assinatura; as modificações foram revertidas.",
"bootFailed": "A validação da configuração da assinatura na inicialização falhou. Iniciado com a configuração padrão; verifique o arquivo de configuração da assinatura.",
"processTerminated": "O processo de validação foi encerrado. Verifique se algum software de segurança está impedindo a execução do núcleo ou se a CPU e o ambiente de execução do seu computador são compatíveis com o executável do núcleo."
},
"script": {
"syntaxError": "Erro de sintaxe no script, alterações revertidas",
"missingMain": "Erro no script, alterações revertidas",
"fileNotFound": "Arquivo ausente, alterações revertidas",
"fileError": "Erro no arquivo de script, alterações revertidas"
},
"yaml": {
"syntaxError": "Erro de sintaxe YAML, alterações revertidas",
"readError": "Erro de leitura YAML, alterações revertidas",
"mappingError": "Erro de mapeamento YAML, alterações revertidas"
},
"merge": {
"syntaxError": "Erro de sintaxe no arquivo de mesclagem, alterações revertidas",
"mappingError": "Erro de mapeamento no arquivo de mesclagem, alterações revertidas"
}
}
},
"filters": {
"logLevels": {
"all": "ALL",
"debug": "DEBUG",
"info": "INFO",
"warn": "WARN",
"error": "ERROR"
}
}
}
+60
View File
@@ -0,0 +1,60 @@
{
"page": {
"actions": {
"testAll": "Testar tudo"
},
"title": "Testar"
},
"components": {
"item": {
"actions": {
"test": "Testar"
}
}
},
"modals": {
"test": {
"title": {
"create": "Criar teste",
"edit": "Editar teste"
},
"fields": {
"url": "URL de teste"
},
"errors": {
"nameRequired": "Informe um nome",
"urlRequired": "Informe uma URL de teste",
"invalidSvg": "O ícone não é um SVG válido",
"uidMissing": "O identificador do item de teste está ausente",
"saveFailed": "Falha ao salvar o item de teste"
}
}
},
"statuses": {
"test": {
"pending": "Pendente",
"yes": "Sim",
"no": "Não",
"failed": "Falhou",
"completed": "Concluído",
"disallowedIsp": "ISP não permitido",
"originalsOnly": "Somente originais",
"noDisney": "Não (IP banido pelo Disney+)",
"unsupportedRegion": "País/região não suportado",
"failedNetwork": "Falhou (conexão de rede)"
}
},
"unlock": {
"page": {
"actions": {
"testing": "Testando..."
},
"empty": "Nenhum item de teste de desbloqueio",
"messages": {
"detectionFailedWithName": "Falha na detecção de {{name}}",
"detectionTimeout": "Tempo limite da detecção esgotado ou falhou"
},
"title": "Teste de desbloqueio"
}
}
}
+1
View File
@@ -15,6 +15,7 @@ export const supportedLanguages = [
'es',
'jp',
'zhtw',
'pt',
]
export const FALLBACK_LANGUAGE = 'zh'