Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 56 additions & 2 deletions src/i18n/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -3052,6 +3052,15 @@
"apiEndpointsSearchPlaceholder": "Search endpoints...",
"apiEndpointsRequiresAuth": "Requires auth",
"apiEndpointsNoMatch": "No endpoints match your filter",
"vscodeAliasTitle": "VS Code Token Alias",
"vscodeAliasDescriptionReady": "Ready-to-paste compatibility URLs using the /api/v1/vscode/TOKEN/... endpoint.",
"vscodeAliasDescriptionError": "Showing placeholder URLs because CLI keys could not be loaded in this session.",
"vscodeAliasDescriptionLoading": "Loading CLI keys. Placeholder URLs are shown until a key is available.",
"vscodeAliasDescriptionPlaceholder": "Showing placeholder URLs. Create or activate an API key in CLI Tools to replace TOKEN.",
"vscodeAliasManage": "CLI Tools",
"vscodeAliasBaseLabel": "VS Code base",
"vscodeAliasModelsLabel": "VS Code models",
"vscodeAliasChatLabel": "VS Code chat",
"localServer": "Local Server",
"cloudOmniroute": "Cloud OmniRoute",
"copyUrl": "Copy URL",
Expand Down Expand Up @@ -4919,8 +4928,53 @@
"evictions": "Evictions",
"loadingCacheStats": "Loading cache stats…",
"globalProxy": "Global Proxy",
"globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
"noGlobalProxy": "No global proxy configured",
"proxyPool": "Proxy Pool",
Comment on lines 4928 to +4931
"freePool": "Free Pool",
"proxyDocumentation": "Proxy Documentation",
"proxyGlobalConfigTab": "Global",
"proxyPoolTab": "Proxy Pool",
"freePoolTab": "Free Pool",
"proxyDocumentationTab": "Documentation",
"proxyDocumentationScopeTitle": "Proxy scope resolution",
"proxyDocumentationScopeDescBefore": "OmniRoute resolves the outbound proxy in priority order: ",
"proxyDocumentationScopeOrder": "combo → account → provider → global",
"proxyDocumentationScopeDescAfter": ". The most specific scope wins.",
"proxyDocumentationAddTitle": "Adding a custom proxy",
"proxyDocumentationAddDescBefore": "Go to the ",
"proxyDocumentationAddDescMiddle": " tab → click ",
"proxyDocumentationAddCta": "+ Add proxy",
"proxyDocumentationAddDescAfter": ". Fill in type (http/https/socks5), host, and port. Optionally assign it to a scope.",
"proxyDocumentationBulkTitle": "Bulk import format",
"proxyDocumentationBulkDesc": "Pipe-delimited fields:",
"proxyDocumentationSocks5DescBefore": "SOCKS5 proxies are disabled by default. Set",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The translation key proxyDocumentationSocks5DescBefore ends abruptly with 'Set' and is missing a corresponding proxyDocumentationSocks5DescAfter companion key (unlike other split keys such as proxyDocumentationScopeDescBefore/After or proxyDocumentationVercelRelayDescBefore/After).

If no dynamic or styled text needs to be sandwiched, consider combining this into a single complete translation key. Otherwise, please define the missing companion key to avoid rendering an incomplete sentence in the UI.

"proxyDocumentationFreePoolDesc": "The Free Pool tab aggregates proxies from 1proxy, Proxifly, and IPLocate. Use ⊕ to test and promote a proxy to your registry. Only proxies that pass the connectivity test are added.",
"proxyDocumentationVercelRelayDescBefore": "The Vercel Relay is an outbound edge relay — not an inbound tunnel. Deploying one sends LLM API calls through Vercel's dynamic IPs, bypassing datacenter geo-blocks and rate limits. The relay is protected by a generated secret header",
"proxyDocumentationVercelRelayDescAfter": "Your Vercel token is used only during deploy and is never stored.",
"vercelRelayTokenRequired": "Token is required",
"vercelRelayDeployFailed": "Deploy failed",
"vercelRelayTokenHint": "Token is used only during deploy — never stored.",
"proxyFreePoolFilterProtocol": "Filter by protocol",
"proxyFreePoolProtocol": "Protocol",
"proxyFreePoolCountryPlaceholder": "Country (e.g. US)",
"proxyFreePoolFilterCountry": "Filter by country",
"proxyFreePoolMinQualityPlaceholder": "Min quality",
"proxyFreePoolMinQualityLabel": "Minimum quality score",
"proxyFreePoolSyncAll": "Sync All",
"proxyFreePoolTotal": "Total",
"proxyFreePoolInPool": "In pool",
"proxyFreePoolAvgQuality": "Avg quality",
"proxyFreePoolSelected": "{count} selected",
"proxyFreePoolAddSelected": "Add selected to pool",
"proxyFreePoolAddVisible": "Add all visible to pool",
"proxyFreePoolSource": "Source",
"proxyFreePoolHostPort": "Host:Port",
"proxyFreePoolType": "Type",
"proxyFreePoolCountry": "Country",
"proxyFreePoolQuality": "Quality",
"proxyFreePoolLatency": "Latency",
"proxyFreePoolEmpty": "No proxies found. Click Sync All to fetch from sources.",
"close": "Close",
"cancel": "Cancel",
"globalLabel": "Global",
"configure": "Configure",
"globalSystemPrompt": "Global System Prompt",
Expand Down
60 changes: 55 additions & 5 deletions src/i18n/messages/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -3159,7 +3159,16 @@
"tierAlwaysProtected": "Sempre Protegido",
"tierPublic": "Público",
"hideInternal": "Ocultar Internos",
"showInternal": "Mostrar Internos"
"showInternal": "Mostrar Internos",
"vscodeAliasTitle": "Alias de Token do VS Code",
"vscodeAliasDescriptionReady": "URLs de compatibilidade prontas para colar usando o endpoint /api/v1/vscode/TOKEN/... .",
"vscodeAliasDescriptionError": "Mostrando URLs com placeholder porque as chaves de CLI não puderam ser carregadas nesta sessão.",
"vscodeAliasDescriptionLoading": "Carregando chaves de CLI. As URLs com placeholder serão mostradas até que uma chave esteja disponível.",
"vscodeAliasDescriptionPlaceholder": "Mostrando URLs com placeholder. Crie ou ative uma chave de API em CLI Tools para substituir TOKEN.",
"vscodeAliasManage": "CLI Tools",
"vscodeAliasBaseLabel": "Base do VS Code",
"vscodeAliasModelsLabel": "Modelos do VS Code",
"vscodeAliasChatLabel": "Chat do VS Code"
},
"endpointOptions": {
"speech": "Speech",
Expand Down Expand Up @@ -4635,7 +4644,6 @@
"proxySourceGlobal": "Global",
"proxySourceProvider": "Provedor",
"proxySourceKey": "Chave",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"autoPriority": "Auto: {priority}",
Comment on lines 4644 to 4647
"proxy": "Proxy",
"retestAuthentication": "Retestar autenticação",
Expand Down Expand Up @@ -5330,7 +5338,7 @@
"title": "Compartilhamento de Cota",
"description": "Compartilhe cotas de provedores entre API keys com limites %",
"newPool": "Novo pool",
"betaTitle": "Beta — UI preview.",
"betaTitle": "Beta",
"betaDescription": "A configuração é salva em localStorage (ainda não persistida no servidor). A aplicação dos caps por request ainda não está conectada ao pipeline da proxy. Esta tela permite desenhar e visualizar a divisão de cota; a aplicação real virá em uma próxima iteração com persistência no banco e interceptação na chamada upstream.",
"kpiActivePools": "Pools ativos",
"kpiKeysAllocated": "Keys alocadas",
Expand Down Expand Up @@ -5452,7 +5460,6 @@
"endpointsAnthropicNote": "nativo Anthropic",
"endpointsResponsesNote": "OpenAI Responses — codex/github",
"endpointsWsNote": "WebSocket — somente codex",
"betaTitle": "Beta",
"betaText": "O Quota Share está funcional, mas bugs são esperados. Encontrou um? Reporte, por favor.",
"betaReportLink": "Abrir uma issue",
"deleteGroup": "Excluir grupo",
Expand Down Expand Up @@ -6775,7 +6782,50 @@
"proxyGlobalConfigTab": "Configuração Global",
"proxyPoolTab": "Pool de Proxy",
"freePoolTab": "Pool Gratuito",
"proxyDocumentationTab": "Documentação"
"proxyDocumentationTab": "Documentação",
"proxyPool": "Pool de Proxies",
"freePool": "Pool Gratuito",
"proxyDocumentation": "Documentação de Proxy",
"proxyDocumentationScopeTitle": "Resolução de escopo de proxy",
"proxyDocumentationScopeDescBefore": "O OmniRoute resolve o proxy de saída na seguinte ordem de prioridade: ",
"proxyDocumentationScopeOrder": "combo → conta → provedor → global",
"proxyDocumentationScopeDescAfter": ". O escopo mais específico vence.",
"proxyDocumentationAddTitle": "Adicionando um proxy personalizado",
"proxyDocumentationAddDescBefore": "Vá para a aba ",
"proxyDocumentationAddDescMiddle": " → clique em ",
"proxyDocumentationAddCta": "+ Adicionar proxy",
"proxyDocumentationAddDescAfter": ". Preencha tipo (http/https/socks5), host e porta. Opcionalmente, atribua-o a um escopo.",
"proxyDocumentationBulkTitle": "Formato de importação em massa",
"proxyDocumentationBulkDesc": "Campos delimitados por pipe:",
"proxyDocumentationSocks5DescBefore": "Proxies SOCKS5 vêm desativados por padrão. Defina",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The translation key proxyDocumentationSocks5DescBefore ends abruptly with 'Defina' and is missing a corresponding proxyDocumentationSocks5DescAfter companion key.

Please ensure the companion key is added or combine the text into a single key to prevent rendering an incomplete sentence in the Portuguese UI.

"proxyDocumentationFreePoolDesc": "A aba Pool Gratuito agrega proxies do 1proxy, Proxifly e IPLocate. Use ⊕ para testar e promover um proxy ao seu registro. Somente proxies que passarem no teste de conectividade serão adicionados.",
"proxyDocumentationVercelRelayDescBefore": "O Vercel Relay é um relay de borda de saída, não um túnel de entrada. Fazer deploy dele envia chamadas de API de LLM pelos IPs dinâmicos da Vercel, contornando bloqueios geográficos de datacenter e limites de taxa. O relay é protegido por um header secreto gerado",
"proxyDocumentationVercelRelayDescAfter": "Seu token da Vercel é usado apenas durante o deploy e nunca é armazenado.",
"vercelRelayTokenRequired": "Token obrigatório",
"vercelRelayDeployFailed": "Falha no deploy",
"vercelRelayTokenHint": "O token é usado apenas durante o deploy e nunca é armazenado.",
"proxyFreePoolFilterProtocol": "Filtrar por protocolo",
"proxyFreePoolProtocol": "Protocolo",
"proxyFreePoolCountryPlaceholder": "País (ex.: US)",
"proxyFreePoolFilterCountry": "Filtrar por país",
"proxyFreePoolMinQualityPlaceholder": "Qualidade mín.",
"proxyFreePoolMinQualityLabel": "Pontuação mínima de qualidade",
"proxyFreePoolSyncAll": "Sincronizar tudo",
"proxyFreePoolTotal": "Total",
"proxyFreePoolInPool": "No pool",
"proxyFreePoolAvgQuality": "Qualidade média",
"proxyFreePoolSelected": "{count} selecionados",
"proxyFreePoolAddSelected": "Adicionar selecionados ao pool",
"proxyFreePoolAddVisible": "Adicionar todos os visíveis ao pool",
"proxyFreePoolSource": "Origem",
"proxyFreePoolHostPort": "Host:Porta",
"proxyFreePoolType": "Tipo",
"proxyFreePoolCountry": "País",
"proxyFreePoolQuality": "Qualidade",
"proxyFreePoolLatency": "Latência",
"proxyFreePoolEmpty": "Nenhum proxy encontrado. Clique em Sincronizar tudo para buscar nas fontes.",
"close": "Fechar",
"cancel": "Cancelar"
},
"sidebar": {
"home": "Início",
Expand Down