Files
dbx/apps/desktop/src/i18n/locales/pt-BR.ts
T

6799 lines
348 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { withEnglishFallback } from "./fallback";
export default withEnglishFallback({
app: {
name: "DBX",
},
auth: {
rateLimited: "Tente novamente em {seconds}s",
setupTitle: "Configurar senha de acesso",
setupDescription: "Defina uma senha para proteger sua instância",
loginDescription: "Ferramenta de gerenciamento de banco de dados",
newPassword: "Digite a nova senha",
confirmPassword: "Confirmar senha",
enterPassword: "Digite a senha de acesso",
passwordMismatch: "As senhas não coincidem",
setPassword: "Definir Senha",
login: "Entrar",
processing: "Processando...",
loginFailed: "Senha incorreta",
connectFailed: "Falha na conexão",
changePassword: "Alterar Senha",
oldPassword: "Senha atual",
oldPasswordWrong: "A senha atual está incorreta",
passwordChanged: "Senha alterada com sucesso",
changePasswordFailed: "Falha ao alterar a senha",
changePasswordDescription: "Digite sua senha atual e escolha uma nova",
},
toolbar: {
newConnection: "Nova Conexão",
newQuery: "Nova Consulta",
execute: "Executar",
executeShortcut: "Executar seleção/consulta (Cmd+Enter)",
stopQuery: "Parar consulta",
explainPlan: "Explicar plano",
stopExplain: "Parar explicação",
autotrace: "Autotrace (executa a query)",
explainAnalyze: "EXPLAIN ANALYZE (executa a query)",
actualPlan: "Plano de execução real (SET STATISTICS XML)",
formatSql: "Formatar SQL",
formatSqlFailed: "Falha ao formatar SQL",
formatAutoDetectFailed: "Não foi possível reconhecer ou formatar o conteúdo selecionado",
compressSql: "Comprimir SQL",
keywordCaseLower: "Usar palavras-chave SQL em minúsculas",
keywordCaseUpper: "Usar palavras-chave SQL em maiúsculas",
autoCommit: "Auto Commit",
manualTransaction: "Transação Manual",
autoCommitAgent: "Auto Commit (depende do backend do Agente)",
manualTransactionAgent: "Transação Manual (depende do backend do Agente)",
commit: "Confirmar",
rollback: "Reverter",
txnAutoRolledBack: "Transação revertida automaticamente após 5 minutos de inatividade",
previewSql: "Visualizar SQL",
previewQuery: "Visualizar consulta",
hidePreviewSql: "Ocultar Visualização SQL",
saveSql: "Salvar na Biblioteca SQL",
openSql: "Abrir arquivo SQL",
exPasteSqlInCondition: "ExPaste: colar como condição IN",
theme: "Tema",
themeLight: "Claro",
themeDark: "Escuro",
themeSystem: "Seguir o sistema",
sqlSaved: "SQL salvo",
sqlOpenFailed: "Falha ao abrir o arquivo: {message}",
sqlSaveFailed: "Falha ao salvar o arquivo: {message}",
driverManager: "Gerenciador de Drivers",
updatableDriverCount: "Quantidade de drivers atualizáveis",
blockDangerousRedisCommands: "Bloquear comandos perigosos",
},
updates: {
title: "Atualizações",
check: "Verificar atualizações",
availableTitle: "Atualização disponível",
availableMessage: "DBX {latest} está disponível. Você está usando {current}.",
upToDate: "O DBX está atualizado ({version}).",
failed: "Falha ao verificar atualizações: {error}",
rateLimited: "As verificações de atualização do GitHub estão temporariamente limitadas. Você ainda pode abrir a página de lançamento para verificar manualmente.",
openRelease: "Abrir Lançamento",
downloadAndInstall: "Baixar e Instalar",
activeTasksBlockUpdate: "Há {count} tarefa(s) em execução. Aguarde a conclusão antes de atualizar o DBX.",
portableAutomaticUpdate: "O DBX baixará o ZIP portátil assinado, substituirá apenas o DBX.exe após sair e reiniciará automaticamente. O portable.dbx e os dados serão mantidos.",
windows7ManualUpdate: "O Windows 7 requer o instalador offline dedicado do WebView2 109. Abra a página da versão e baixe o pacote para Windows 7.",
downloading: "Baixando {progress}%",
downloadFailed: "Falha ao baixar a atualização: {error}",
downloadCanceled: "Download da atualização cancelado.",
networkOrMirrorFailed: "O tempo de conexão esgotou ou os espelhos de download estão indisponíveis. Verifique sua rede ou clique em 'Abrir Lançamento' para baixar manualmente.",
installing: "Instalando atualização...",
installFailed: "Falha ao instalar a atualização: {error}",
restart: "Sair e Reiniciar",
restartFailed: "Falha ao reiniciar o aplicativo: {error}",
exitAndUpdate: "Sair e Atualizar",
dockerUsersRun: "Usuários do Docker devem executar",
toUpdate: "para atualizar",
},
sidebar: {
connections: "CONEXÕES",
noConnections: "Nenhuma conexão ainda",
import: "Importar Conexões",
importDbx: "Importar Configuração DBX",
importNavicat: "Importar Navicat NCX",
importDbeaver: "Importar DBeaver",
importDatagrip: "Importar DataGrip",
export: "Exportar Conexões",
collapseAll: "Recolher tudo",
collapse: "Recolher barra lateral",
expand: "Expandir barra lateral",
showMore: "Mostrar mais {count}...",
filterByType: "Filtrar por tipo",
showActiveConnectionsOnly: "Mostrar apenas conexões ativas",
sortConnections: "Ordenar conexões",
sortConnectionsManual: "Ordem manual",
sortConnectionsAscending: "Nome: A–Z",
sortConnectionsDescending: "Nome: Z–A",
searchScopeConnection: "Conexão",
searchScopeDatabase: "Banco de dados",
searchScopeSchema: "Schema",
searchScopeTable: "Tabela",
searchScopeView: "Visão",
searchTablesInCurrentScope: "Pesquisar tabelas neste banco...",
clearTableSearch: "Limpar busca de tabelas",
localTableSearch: "Busca local",
localTableSearchTooltip: "Pesquisa o índice local de tabelas sem solicitações remotas. Desative para pesquisar remotamente. Use atualizar para criar ou atualizar o índice.",
refreshLocalTableSearchIndex: "Atualizar índice local de tabelas",
globalLocalSearch: "Busca local",
globalLocalSearchTooltip: "Pesquisa apenas os objetos da barra lateral carregados no momento, sem solicitações remotas.",
clearFilter: "Limpar filtro",
locateActiveTab: "Localizar na barra lateral",
},
savedSql: {
saveToLibrary: "Salvar na Biblioteca SQL",
saveToFile: "Salvar localmente",
save: "Salvar",
saved: "SQL salvo",
saveFailed: "Falha ao salvar SQL: {message}",
fileName: "Nome do arquivo",
folder: "Pasta",
rootFolder: "Biblioteca SQL",
newQuery: "Nova Consulta",
newFolder: "Nova Pasta SQL",
newSubfolder: "Nova Subpasta",
newFolderDefault: "Nova Pasta",
renameFolder: "Renomear Pasta",
deleteFolder: "Excluir Pasta",
deleteFolderConfirm: "Excluir “{name}” e os arquivos SQL dentro dela?",
open: "Abrir SQL",
renameFile: "Renomear SQL",
deleteFile: "Excluir SQL",
deleteFileConfirm: "Excluir “{name}”?",
createFolderOption: "Criar pasta “{name}”",
folderPlaceholder: "Selecionar pasta",
searchPlaceholder: "Pesquisar pastas...",
createFolderFailed: "Falha ao criar pasta: {message}",
},
sqlLibrary: {
title: "Biblioteca SQL",
openInCurrentDatabase: "Abrir no banco de dados atual",
empty: "Nenhuma consulta salva",
emptyFolder: "Pasta vazia",
unfiled: "Sem categoria",
exportFile: "Exportar SQL",
exportFolder: "Exportar pasta",
exportLibrary: "Exportar biblioteca SQL",
importDirectory: "Importar pasta local",
importIntoFolder: "Importar para esta pasta",
openStorageDirectory: "Abrir diretório de SQL",
chooseSyncDirectory: "Definir diretório de sincronização local",
disableSyncDirectory: "Desativar sincronização local",
syncDirectorySaved: "Diretório de sincronização local de SQL salvo",
syncDirectoryDisabled: "Sincronização local de SQL desativada",
syncDirectoryFailed: "Falha ao definir diretório de sincronização: {message}",
openDirectoryFailed: "Falha ao abrir diretório: {message}",
noSyncDirectory: "Defina um diretório de sincronização local primeiro",
exported: "Exportado",
exportFailed: "Falha na exportação: {message}",
importFailed: "Falha na importação: {message}",
importNone: "Nenhum arquivo .sql encontrado na pasta selecionada",
imported: "Importados {count} arquivos SQL",
desktopOnly: "Este recurso está disponível apenas no desktop",
noConnection: "Nenhuma conexão disponível para importar",
batchDelete: "Exclusão em lote",
batchDeleteConfirm: "Tem certeza de que deseja excluir {count} itens selecionados? Esta ação não pode ser desfeita.",
batchDeleteSuccess: "{count} itens excluídos com sucesso",
moveToFolder: "Mover para pasta...",
moveSelectedToFolder: "Mover {count} SQL para pasta...",
moveSuccess: "{count} SQL movidos",
clearSelection: "Limpar seleção",
sortByDate: "Ordenar por data de modificação",
sortByFolder: "Ordenar por estrutura de pastas",
},
connection: {
title: "Nova Conexão",
name: "Nome",
namePlaceholder: "Nome da conexão, gerado automaticamente se vazio",
note: "Observações",
notePlaceholder: "Não salve senhas em texto simples nas observações",
type: "Tipo",
host: "Host",
filePath: "Caminho do Arquivo",
h2FileMode: "Arquivo",
h2TcpMode: "TCP",
h2FilePathRequired: "O caminho do arquivo H2 não pode ficar vazio",
createDuckDbFile: "Criar arquivo DuckDB",
createSqliteFile: "Criar banco de dados SQLite",
memoryDatabasePathHint: "Use :memory: para criar um banco de dados SQLite ou DuckDB na memória.",
sqliteCipherKey: "Chave SQLCipher",
sqliteCipherKeyPlaceholder: "Deixe vazio para SQLite não criptografado",
sqliteExtensions: "Extensões SQLite",
sqliteExtensionsPlaceholder: "/caminho/para/regexp.dylib\n/caminho/para/text.dylib|sqlite3_text_init",
sqliteExtensionsHint: "Um .dylib/.so/.dll por linha. Use “caminho|ponto de entrada” quando um ponto de entrada for necessário. Carregado ao conectar, depois load_extension é desabilitado.",
initScript: "Script de inicialização",
initScriptPlaceholder: "INSTALL quack;\nLOAD quack;\nATTACH 'quack:host' AS remote (TOKEN '...');",
initScriptHint: "Instruções SQL executadas sempre que a conexão é aberta (INSTALL/LOAD, SET, CREATE SECRET, ATTACH ...). Os bancos de dados anexados aqui aparecem na barra lateral.",
sqliteExtensionBrowse: "Selecionar extensão SQLite",
user: "Usuário",
password: "Senha",
database: "Banco de dados",
databasePlaceholder: "Opcional",
databasePlaceholderRequired: "Obrigatório, informe um banco de dados existente",
databasePlaceholderWithDefault: "Opcional, padrão é {database}",
kingbaseDatabaseRequired: "Kingbase exige um banco de dados existente antes de conectar ou carregar a lista de bancos de dados.",
defaultDatabase: "BD padrão",
authDatabase: "BD de autenticação",
authDatabasePlaceholder: "Opcional, geralmente admin",
authMechanism: "Mecanismo de Autenticação",
authMechanismDefault: "Padrão",
driverMode: "Driver",
mongoDriverAuto: "Automático",
mongoDriverLegacy: "Legacy",
serviceName: "Service/SID",
serviceNameOnly: "Service Name",
oracleTnsAlias: "Alias de rede",
oracleTnsAliasPlaceholder: "Alias do tnsnames.ora",
oracleTnsAdminPlaceholder: "Diretório que contém tnsnames.ora",
oracleTnsAdminBrowse: "Selecionar tnsnames.ora",
oracleTnsPathHint: "O caminho é lido pelo backend do DBX/Oracle Agent. No desktop é local; no Web e Docker pertence ao servidor.",
oracleTnsAliasRequired: "O modo Oracle TNS requer um alias de rede.",
oracleTnsAdminRequired: "O modo Oracle TNS requer o diretório TNS_ADMIN que contém tnsnames.ora.",
oracleTnsTransportUnsupported: "Oracle TNS não pode usar túneis SSH, proxy ou HTTP. Remova a camada de transporte ou use Serviço/SID.",
version: "Versão",
driverInstallHintPrefix: "Instale o driver necessário em ",
driverInstallHintSuffix: " na barra de ferramentas superior antes de conectar.",
driverName: "Nome do Driver",
driverNamePlaceholder: "Nome do fornecedor ou ambiente",
urlParams: "Parâmetros da URL",
d1AccountId: "ID da conta",
d1DatabaseId: "ID do banco de dados",
d1ApiToken: "Token da API",
d1TokenHint: "O token precisa de pelo menos a permissão D1 Read; gravações, DDL e importações também exigem D1 Write.",
d1FieldsRequired: "O ID da conta Cloudflare, o ID do banco de dados D1 e o token da API são obrigatórios.",
gbaseServer: "GBASEDBTSERVER",
informixServer: "INFORMIXSERVER",
sslEnable: "Habilitar conexão criptografada",
caCertPath: "Certificado CA",
caCertPathPlaceholder: "Opcional, ex.: ~/.yandex/RootCA.crt",
caCertPathBrowse: "Procurar certificado",
damengSslFilesPath: "Diretório de certificados",
damengSslFilesPathPlaceholder: "/path/to/dmcert",
damengSslFilesPathBrowse: "Selecionar diretório de certificados",
damengSslKeystorePassword: "Senha do keystore",
damengSslHint: "O DM8 JDBC lê os certificados SSL deste diretório e envia os dois valores por parâmetros de URL.",
damengSslProtocol: "Protocolo SSL",
damengSslProtocolPlaceholder: "Opcional, ex.: TLSv1.2",
damengSslVerificationHint: "A verificação do certificado depende de ENABLE_ENCRYPT no servidor DM8. O modo 5 verifica o certificado do servidor; o modo 4 criptografa sem verificar certificados.",
redisTlsInsecure: "Ignorar verificação de certificado",
redisTlsInsecureHint: "Equivalente a redis-cli --tls --insecure, para certificados autoassinados ou CAs privadas.",
mysqlTlsMode: "Modo TLS",
mysqlTlsModePreferred: "Preferencial",
mysqlTlsModeDisabled: "Desabilitado",
mysqlTlsModeRequired: "Obrigatório",
mysqlTlsModeVerifyCa: "Verificar CA",
mysqlTlsModeVerifyIdentity: "Verificar Identidade",
mysqlCleartextPasswordAuth: "Autenticação de senha em texto claro",
mysqlCleartextPasswordAuthHint: "Ative somente quando o servidor MySQL exigir o plugin de autenticação de senha em texto claro.",
mysqlCaCertHint: "Necessário para Verificar CA e Verificar Identidade quando o certificado do servidor usa uma CA privada.",
mysqlClientCert: "Autenticação do Cliente",
mysqlClientCertPlaceholder: "/caminho/para/client.crt",
mysqlClientKeyPlaceholder: "/caminho/para/client.key",
mysqlClientCertHint: "O certificado e a chave privada do cliente devem ser fornecidos juntos quando o MySQL exige mTLS.",
mysqlTlsConnectionFailureHint: "Se o servidor MySQL não exigir TLS, edite a conexão, defina o Modo TLS como Desabilitado e tente novamente.",
mysqlClientCertBrowse: "Escolher certificado do cliente",
mysqlClientKeyBrowse: "Escolher chave privada do cliente",
postgresSslMode: "Modo TLS",
postgresSslModeDisable: "Desabilitar",
postgresSslModePrefer: "Preferencial",
postgresSslModeRequire: "Obrigatório",
postgresSslModeVerifyCa: "Verificar CA",
postgresSslModeVerifyFull: "Verificar Completo",
postgresServerCert: "CA do Servidor",
postgresRootCertPlaceholder: "/caminho/para/ca.crt",
postgresRootCertHint: "Use isto para verify-ca ou verify-full quando o certificado do servidor é assinado por uma CA privada.",
postgresRootCertBrowse: "Escolher certificado CA",
postgresClientCert: "Autenticação do Cliente",
postgresClientCertPlaceholder: "/caminho/para/client.crt",
postgresClientKeyPlaceholder: "/caminho/para/client.key",
postgresClientCertHint: "O certificado e a chave privada do cliente devem ser fornecidos juntos quando o PostgreSQL exige mTLS.",
postgresClientCertBrowse: "Escolher certificado do cliente",
postgresClientKeyBrowse: "Escolher chave privada do cliente",
connectionUrlOptional: "URL (opcional)",
connectionUrlPlaceholder: "postgresql://user:pass{'@'}host:5432/db?sslmode=require",
parseConnectionUrl: "Analisar URL de conexão",
parseConnectionUrlApplied: "URL de conexão aplicada",
parseConnectionUrlFailed: "Falha ao analisar a URL de conexão: {message}",
mode: "Modo de Conexão",
modeForm: "Formulário",
redisStandaloneMode: "Standalone",
redisSentinelMode: "Sentinel",
redisClusterMode: "Cluster",
oceanbaseMySQLMode: "Modo MySQL",
oceanbaseOracleMode: "Modo Oracle",
redisFirstSentinel: "Primeiro Sentinel",
redisFirstClusterNode: "Primeiro Nó Semente",
redisSentinelNodes: "Nós Sentinel",
redisClusterNodes: "Nós Semente do Cluster",
redisSentinelMaster: "Nome do Master",
redisSentinelUser: "Usuário do Sentinel",
redisSentinelPassword: "Senha do Sentinel",
redisSentinelTls: "TLS do Sentinel",
redisSentinelTlsHint: "Usar TLS ao conectar aos nós Sentinel",
redisKeySeparator: "Separador de namespace de chave",
etcdEndpoints: "Endpoints",
etcdEndpointsHint: "Um endpoint por linha. Deixe em branco para usar o host e porta acima.",
etcdCaCertPlaceholder: "/caminho/para/ca.crt",
etcdCaCertBrowse: "Escolher certificado CA",
etcdClientAuth: "Autenticação do Cliente",
etcdClientCertPlaceholder: "/caminho/para/client.crt",
etcdClientKeyPlaceholder: "/caminho/para/client.key",
etcdClientCertHint: "O certificado e a chave privada do cliente devem ser fornecidos juntos quando o etcd exige mTLS.",
etcdClientCertBrowse: "Escolher certificado do cliente",
etcdClientKeyBrowse: "Escolher chave privada do cliente",
etcdClientCertPairRequired: "O certificado e a chave privada do cliente devem ser fornecidos juntos.",
zookeeperConnectString: "String de Conexão",
zookeeperConnectStringHint: "Entradas host:porta separadas por vírgula ou linha. Deixe em branco para usar o host e porta acima.",
zookeeperCreateModePersistent: "Persistente",
zookeeperCreateModeEphemeral: "Efêmero",
zookeeperCreateModePersistentSequential: "Persistente Sequencial",
zookeeperCreateModeEphemeralSequential: "Efêmero Sequencial",
nacosConsoleUrl: "URL da OpenAPI / API administrativa",
nacosConsoleUrlHint: "Use o endereço correspondente ao perfil Nacos selecionado. URLs completas do navegador e da API são aceitas.",
nacosConsoleUrlRequired: "A URL da OpenAPI / API administrativa do Nacos é obrigatória",
nacosConsoleUrlAutoAdjusted: "URL do console Nacos ajustada de {from} para {to}.",
nacosRNacosOpenApiAutoAdjusted: "Alterado automaticamente para a OpenAPI do r-nacos: {from} → {to} (Context Path: /nacos).",
nacosImplementation: "Implementação do serviço",
nacosVersion: "Versão do Nacos",
nacosVersionAuto: "Detectar automaticamente",
nacosPrimaryAddressRNacos: "Endereço de API compatível com Nacos",
nacosPrimaryAddressV2: "Endereço do serviço (API e console compartilhados)",
nacosPrimaryAddressV3: "Endereço de Server / Admin API",
nacosPrimaryAddressAuto: "Endereço de administração do Nacos",
nacosPrimaryAddressHint: "No Nacos 3, use o endereço de Server / Admin API (normalmente http://host:8848/nacos), não o console na porta 8080; prefixos de proxy personalizados são preservados.",
nacosRequestsUse: "As solicitações usarão {address}/…",
nacosNamespace: "Namespace",
nacosContextPath: "Caminho de contexto",
nacosContextPathPlaceholder: "Deixe vazio ou /nacos",
nacosContextPathRestoreAuto: "Restaurar automático",
nacosConfigurationHistory: "Histórico de configuração",
nacosConfigurationHistoryEnable: "Ativar histórico de configuração",
nacosConfigurationHistoryHint:
"O histórico de configuração do r-nacos está disponível apenas pelo console independente (normalmente na porta 10848). O console usa uma sessão de login separada da OpenAPI compatível com Nacos: a OpenAPI pode não exigir autenticação, enquanto o console ainda exige. Use a mesma conta de usuário do r-nacos, a menos que você precise usar outra conta.",
nacosRNacosConsoleUrl: "URL do console r-nacos",
nacosRNacosConsoleUrlPlaceholder: "http://127.0.0.1:10848",
nacosRNacosConsoleUrlHint: "Opcional. Use a URL do console independente (normalmente a porta 10848), não a URL OpenAPI; ela habilita o histórico e a leitura do tipo e da descrição das configurações do r-nacos.",
nacosRNacosOpenApiRequired: "O endereço principal do r-nacos deve usar a API compatível com Nacos, não a URL do console independente.",
nacosRNacosConsoleUrlRequired: "O histórico de configurações do r-nacos exige uma URL do console.",
nacosConsoleAuthSeparateRequired: "A autenticação principal é Nenhuma; configure credenciais de console separadas.",
nacosAuth: "Autenticação",
nacosAuthNone: "Nenhuma",
nacosAuthUserPassword: "Usuário / Senha",
nacosConsoleAuthentication: "Autenticação do console",
nacosConsoleAuthInherit: "Usar credenciais principais",
nacosConsoleAuthSeparate: "Credenciais separadas",
nacosConsoleAuthPrimaryNone: "A autenticação principal é Nenhuma; use credenciais de console separadas.",
nacosConsoleUser: "Usuário do console",
nacosConsolePassword: "Senha do console",
nacosConsoleUsernameRequired: "O usuário do console r-nacos é obrigatório",
nacosUsernameRequired: "O usuário Nacos é obrigatório",
nacosTls: "TLS",
nacosTlsSkipVerify: "Ignorar verificação do certificado",
nacosPageSize: "Tamanho da página",
nacosMetrics: "Métricas Prometheus",
nacosMetricsAuto: "Detecção automática",
nacosMetricsDisabled: "Desativado",
nacosMetricsCustom: "URL personalizada",
nacosMetricsAutoHint: "Tentativas em ordem: {addresses}",
nacosMetricsUrl: "URL de métricas",
nacosMetricsUrlInvalid: "Informe uma URL HTTP ou HTTPS absoluta, sem credenciais ou fragmento.",
searchDatabasePlaceholder: "Pesquisar tipos de banco de dados",
searchResults: "Resultados da busca",
databaseCategories: "Categorias",
databaseCategorySql: "Relacionais",
databaseCategoryAnalytics: "Análises",
databaseCategoryDomestic: "BD chineses",
databaseCategoryLightweight: "Leves",
databaseCategoryDocument: "Docs/cache/busca",
databaseCategoryGraphAi: "Grafos/vetores",
databaseCategoryTimeseries: "Séries",
databaseCategoryMq: "Filas",
databaseCategoryRegistryConfig: "Registro/config.",
jdbcConnection: "Conexão JDBC",
iconView: "Visualização em ícones",
listView: "Visualização em lista",
selectedDatabase: "Selecionado",
noDatabaseMatches: "Nenhum banco de dados correspondente",
next: "Próximo",
back: "Anterior",
basicTab: "Conexão",
tlsTab: "TLS/SSL",
test: "Testar",
testing: "Testando...",
copyTestResult: "Copiar resultado do teste",
sqlServerLegacyCompatibilityMode: "Modo de compatibilidade legado",
sqlServerLegacyCompatibilityModeEnable: "Ativar",
sqlServerLegacyCompatibilityModeHint: "Para instâncias do SQL Server limitadas a TLS 1.0, criptografia apenas no login ou sem criptografia.\nAlguns recursos podem ser limitados; use apenas em redes confiáveis.",
sqlServerLegacyCompatibilityComponent: "Componente de compatibilidade legada do SQL Server",
gaussdbConnectionMode: "Modo de conexão",
gaussdbConnectionModeNative: "Compatível com PostgreSQL (driver integrado)",
gaussdbConnectionModeMJdbc: "Modo M (driver JDBC do fornecedor)",
gaussdbConnectionModeNativeHint: "Usa o protocolo compatível com PostgreSQL integrado ao DBX para os modos A/PG/Oracle do GaussDB.",
gaussdbConnectionModeMJdbcHint: "Usa jdbc:gaussdb com com.huawei.gaussdb.jdbc.Driver para o modo M do GaussDB.",
gaussdbMJdbcDriver: "Driver JDBC do GaussDB",
gaussdbMJdbcDriverPlaceholder: "Selecione gaussdbjdbc.jar compatível com a versão do servidor",
gaussdbMJdbcDriverHint: "O driver é distribuído com cada versão do GaussDB. Obtenha gaussdbjdbc.jar no pacote de driver correspondente.",
gaussdbMJdbcDriverRequired: "O modo M do GaussDB requer o driver JDBC do fornecedor. Selecione gaussdbjdbc.jar compatível com o servidor.",
gaussdbMJdbcPluginInstalling: "Instalando o runtime JDBC...",
gaussdbIdentifierQuoteStyle: "Compatibilidade de identificadores",
gaussdbIdentifierQuoteAuto: "Automático (driver/padrão)",
gaussdbIdentifierQuoteDouble: 'Oracle/PostgreSQL (aspas duplas ")',
gaussdbIdentifierQuoteBacktick: "MySQL/M (crases `)",
gaussdbIdentifierQuoteHint: "O modo automático usa os metadados do driver JDBC ou o padrão do GaussDB nativo. Selecione um modo manualmente apenas quando o SQL gerado usar aspas de identificador incorretas.",
saveAndConnect: "Salvar e Conectar",
save: "Salvar",
editTitle: "Editar Conexão",
testSuccess: "Conexão bem-sucedida",
connecting: "Conectando a {name}...",
connectSuccess: "Conectado a {name}",
connectFailed: "Falha na conexão: {message}",
driverNotInstalled: "O driver {driver} não está instalado. Instale-o pelo Gerenciador de Drivers.",
jreNotInstalled: "O runtime JRE {jre} não está instalado. Instale-o pelo Gerenciador de Drivers.",
systemJavaNotFound: "O runtime Java do sistema não foi encontrado no PATH. Instale o Java ou escolha um executável Java personalizado.",
customJavaPathEmpty: "O caminho do runtime Java personalizado está vazio. Escolha um executável Java.",
agentJavaTooOld: "Este driver requer Java 21. Use o JRE 21 gerenciado pelo DBX ou selecione um executável Java 21 no Gerenciador de Drivers.",
agentDriverUpdateConnectionHint: "Há uma atualização de driver integrada disponível para esta conexão. A falha de conexão pode estar relacionada a um driver local desatualizado. Atualize o driver correspondente no Gerenciador de Drivers e tente novamente.",
jdbcPluginNotInstalled: "O plugin JDBC não está instalado. Instale o plugin JDBC opcional para usar esta conexão.",
connectFailedTitle: "Falha na conexão",
fullErrorMessage: "Mensagem de erro completa",
copyError: "Copiar erro",
optionalSuffix: " (opcional)",
customColorPlaceholder: "#ff0000 ou rgba(…)",
tursoHostPlaceholder: "your-database.turso.io ou libsql://your-database.turso.io",
tursoHostHint: "Suporta os protocolos libsql:// e https://. Você também pode informar apenas o nome do host (HTTPS é usado automaticamente).",
tursoTokenHint: "Crie um token com:",
tursoUrlParamsPlaceholder: "authToken=xxx (opcional, o campo Auth Token acima tem prioridade)",
driverInstall: {
installingTitle: "Instalando driver",
failedTitle: "Falha na instalação do driver",
fullError: "Erro completo",
statusFailed: "Falha na instalação",
statusWaiting: "Aguardando instalação",
statusPreparing: "Preparando a instalação do driver...",
statusExtractingJre: "Extraindo JRE...",
stepJre: "Baixando JRE",
stepDriver: "Baixando driver",
stepDefault: "Instalando driver",
installingButton: "Instalando...",
},
lastError: "Erro de conexão",
errorIndicatorHint: "Erro de conexão. Clique para ver os detalhes",
clearError: "Limpar erro de conexão",
saveFailed: "Falha ao salvar a conexão: {message}",
deleted: "Conexão excluída",
deletedSelected: "{count} conexões excluídas",
copied: "Copiado",
disconnected: "Desconectado",
databaseConnectionClosed: "Conexão de banco de dados fechada: {name}",
duplicated: "Conexão duplicada",
duplicatedSelected: "{count} conexões duplicadas",
groupDeleted: "Grupo excluído",
loadFailed: "Falha ao carregar as conexões salvas: {message}",
sshTunnel: "Túnel SSH / Proxy",
advancedTab: "Avançado",
sshEnable: "Usar túnel SSH / proxy",
sshHost: "Host SSH",
sshHostPlaceholder: "ssh.example.com ou um alias de ~/.ssh/config",
sshUser: "Usuário SSH",
sshAuthMethod: "Método de login",
sshAuthMethodPassword: "Senha",
sshAuthMethodKey: "Chave privada",
sshAuthMethodKeyPassword: "Chave privada + Senha",
sshAuthMethodNone: "Nenhum",
sshAuthMethodNoneHint: "Nenhuma credencial será enviada. Use para bastiões ou proxies que aceitam conexões sem autenticação.",
sshAuthMethodAgentLegacy: "SSH Agent (legado)",
sshPassword: "Senha SSH",
sshPasswordPlaceholder: "Deixe vazio para usar a chave",
sshKeyPath: "Caminho da Chave",
sshKeyPassphrase: "Frase-senha da Chave",
sshKeyPassphrasePlaceholder: "Deixe vazio se a chave não estiver criptografada",
sshKeyPathBrowse: "Procurar",
sshExposeLan: "Expor túnel à LAN",
sshConnectTimeout: "Timeout SSH (segundos)",
sshHops: "Camadas de túnel SSH / proxy",
sshHopAdd: "Adicionar camada SSH",
sshHopDuplicate: "Duplicar",
sshHopDelete: "Excluir",
sshHopMoveUp: "Mover para cima",
sshHopMoveDown: "Mover para baixo",
sshHopName: "Nome da Camada",
sshHopNamePlaceholder: "Bastion, host de salto, gateway de produção",
sshHopDefaultName: "Camada {index}",
sshHopInvalidHost: "{hop}: o host SSH é obrigatório",
sshHopInvalidUser: "{hop}: o usuário SSH é obrigatório",
sshHopInvalidPort: "{hop}: a porta SSH deve estar entre 1 e 65535",
sshHopInvalidAuth: "{hop}: senha, caminho da chave ou ssh-agent é obrigatório",
sshUseAgent: "Usar ssh-agent",
sshAgentSockPath: "Caminho do socket do agente",
sshAgentSockPathPlaceholder: "ex. ~/.ssh/agent.sock",
sshHopInvalidTimeout: "{hop}: o timeout SSH deve estar entre 1 e 300 segundos",
connectTimeout: "Timeout de Conexão (segundos)",
queryTimeout: "Timeout de Consulta (segundos)",
idleTimeout: "Timeout de Inatividade (segundos)",
keepaliveInterval: "Intervalo de keepalive (segundos)",
readOnly: "Somente leitura",
readOnlyHint: "Bloquear todas as operações de escrita (INSERT, UPDATE, DELETE, etc.)",
readOnlyBadge: "Somente leitura",
proxy: "Proxy",
proxyEnable: "Conectar ao banco de dados via proxy",
proxyType: "Tipo de Proxy",
proxyHost: "Host do Proxy",
proxyUsername: "Usuário do Proxy",
proxyUsernamePlaceholder: "Opcional",
proxyPassword: "Senha do Proxy",
proxyPasswordPlaceholder: "Opcional",
proxyTestTarget: "Alvo de teste",
proxyTestTargetPlaceholder: "host:port — vazio = verif. endpoint, preencher para teste completo",
tunnelProfile: "Perfil de túnel",
tunnelProfileCustom: "Personalizado (somente esta conexão)",
tunnelProfileManaged: "Gerenciado por um perfil de túnel compartilhado. Edite-o em Configurações > Túneis; as alterações se aplicam a todas as conexões que o usam na próxima conexão.",
tunnelProfileMissing: "O perfil de túnel referenciado não existe mais. Selecione outro perfil ou mude para personalizado.",
tunnelProfileMissingName: "Perfil de túnel ausente",
tunnelProfileManage: "Gerenciar",
dremioArrowFlightSqlMode: "Arrow Flight SQL",
dremioLegacyJdbcMode: "JDBC legado",
jdbcUrl: "URL JDBC",
jdbcUrlPlaceholder: "jdbc:postgresql://localhost:5432/database",
jdbcDriverClass: "Classe do Driver (opcional)",
jdbcDriverClassPlaceholder: "A maioria dos drivers se registra automaticamente; use com.vendor.jdbc.Driver se necessário",
jdbcDriverPaths: "JARs do Driver",
jdbcDriverSelectPlaceholder: "Escolher driver importado",
jdbcManualClasspath: "Classpath manual",
jdbcManualClasspathCount: "{count} caminhos",
jdbcDriverPathsPlaceholder: "/caminho/para/driver.jar\n/caminho/para/outro-driver.jar",
jdbcDriverBrowse: "Escolher JAR do driver JDBC",
jdbcDocs: "Ver documentação JDBC",
jdbcPluginHint: "Instale primeiro o plugin JDBC do DBX e depois importe o JAR do driver JDBC do fornecedor do banco de dados.",
jdbcxExtensions: "Extensões JDBCX",
jdbcxHighPrivilegeExtensions: "Permitir extensões com privilégios elevados",
jdbcxHighPrivilegeExtensionsWarning: "Desativado por padrão. Ao ativar, Shell, Script, Web, MCP e outras extensões podem executar comandos locais ou acessar a rede.",
dmCompatHint: "Requer o driver ODBC DM8 instalado no seu sistema.",
dmDownload: "Baixar da Dameng",
mongoLegacyHint: "Use Legacy para servidores MongoDB antigos, especialmente versões anteriores à 4.2. Se a autenticação falhar e o usuário foi criado em admin, defina o BD de autenticação como admin.",
mongoTlsAllowInvalidCertificates: "Desativar verificação de certificado TLS",
mongoTlsAllowInvalidCertificatesHint: "Corresponde a tlsAllowInvalidCertificates=true e desativa toda a validação de certificados, não apenas a do hostname. Aumenta o risco de MITM. Geralmente é necessário para AWS DocumentDB via túnel SSH.",
mongoRetryWrites: "Repetir gravações",
mongoRetryWritesHint: "Corresponde a retryWrites. Desative para AWS DocumentDB, que não suporta gravações repetíveis.",
compatible: "Compatível",
mainstream: "Popular",
color: "Cor",
colorNone: "Sem cor",
colorGreen: "Verde",
colorYellow: "Amarelo",
colorOrange: "Laranja",
colorRed: "Vermelho",
colorBlue: "Azul",
colorPurple: "Roxo",
colorCustom: "Cor personalizada",
cancelConnecting: "Cancelar conexão",
connectCancelled: "Conexão cancelada",
kafkaKerberosPrincipal: "Principal",
kafkaKerberosKeytab: "Keytab",
kafkaKerberosServiceName: "Nome do serviço",
kafkaKerberosKrb5Conf: "krb5.conf",
kafkaKerberosPrincipalRequired: "O principal do Kafka Kerberos não pode estar vazio",
kafkaKerberosKeytabRequired: "O caminho do keytab do Kafka Kerberos não pode estar vazio",
kafkaKerberosKeytabBrowse: "Escolher Keytab",
kafkaKerberosKrb5ConfBrowse: "Escolher krb5.conf",
kafkaKerberosKeytabPlaceholder: "Caminho na máquina do DBX Agent, por exemplo /etc/security/keytabs/user.keytab",
kafkaKerberosKrb5ConfPlaceholder: "Opcional, caminho na máquina do DBX Agent, por exemplo /etc/krb5.conf",
kafkaKerberosPathHint: "Os caminhos do keytab e do krb5.conf são lidos pelo DBX Agent e devem existir na máquina onde o DBX Agent é executado; os arquivos não são enviados do navegador atual.",
kafkaKerberosAuthHint: "Faça login usando GSSAPI + keytab. Se o servidor exigir transmissão criptografada, defina Security como SASL_SSL; caso contrário, você pode usar Auto ou SASL_PLAINTEXT.",
mqSystem: "Sistema",
mqSystemPulsar: "Apache Pulsar",
mqSystemKafka: "Apache Kafka",
mqBootstrapServers: "Bootstrap Servers",
mqBootstrapServersPlaceholder: "127.0.0.1:9092",
mqBootstrapServersRequired: "Bootstrap Servers do Kafka são obrigatórios",
mqBootstrapServersInvalid: "Bootstrap Servers do Kafka são inválidos",
mqKafkaConnectionSource: "Origem da conexão",
mqKafkaConnectionSourceBootstrap: "Bootstrap Servers",
mqKafkaConnectionSourceZooKeeper: "ZooKeeper (Kafka 1.x)",
mqKafkaZooKeeperServers: "Servidores ZooKeeper",
mqKafkaZooKeeperServersPlaceholder: "zk1:2181,zk2:2181/kafka",
mqSystemRabbitMq: "RabbitMQ",
mqRabbitmqAddresses: "Endereços",
mqRabbitmqAddressesPlaceholder: "127.0.0.1:5672",
mqRabbitmqAddressesRequired: "Os endereços do RabbitMQ são obrigatórios",
mqRabbitmqAddressesInvalid: "Os endereços do RabbitMQ são inválidos",
mqVirtualHost: "Host virtual",
mqVirtualHostPlaceholder: "/",
mqRabbitmqAdminUrl: "Management URL",
mqRabbitmqAdminUrlPlaceholder: "http://192.168.1.1:15672",
mqRabbitmqAdminUrlHint: "Deixe vazio apenas com a porta AMQP padrão; portas AMQP personalizadas exigem a URL da API de gerenciamento configurada separadamente. Suporta caminhos de proxy reverso como https://proxy/rmq",
mqRabbitmqUsernamePlaceholder: "Padrão guest",
mqRabbitmqPasswordPlaceholder: "Padrão guest",
mqSecurity: "Security",
mqSecurityAuto: "Auto",
mqAdminUrl: "Admin URL",
mqAdminUrlRequired: "Admin URL do MQ é obrigatório",
mqAdminUrlInvalid: "Admin URL do MQ é inválido",
mqAuth: "Autenticação",
mqAuthNone: "Nenhum",
mqAuthToken: "Token",
mqAuthBasic: "Basic",
mqAuthKerberos: "Kerberos",
mqAuthApiKey: "API Key",
mqAuthOauth2: "OAuth2",
mqToken: "Token",
mqSaslMechanism: "SASL Mechanism",
mqApiKeyHeader: "Header",
mqApiKeyValue: "Valor",
mqOauthIssuerUrl: "Issuer URL",
mqOauthClientId: "Client ID",
mqOauthClientSecret: "Client Secret",
mqOauthAudience: "Audience",
mqOauthScope: "Scope",
mqOauthIssuerRequired: "A autenticação OAuth2 exige um Issuer URL",
mqOauthClientIdRequired: "A autenticação OAuth2 exige um Client ID",
mqOauthClientSecretRequired: "A autenticação OAuth2 exige um Client Secret",
mqTls: "TLS",
mqTlsSkipVerify: "Ignorar verificação de certificado",
mqPinnedVersion: "Versão fixada",
mqTokenSigning: "Assinatura de token do Broker",
mqTokenSigningNone: "Não configurado",
mqTokenSigningKey: "Chave de assinatura",
mqTokenSigningKeyRequired: "A chave de assinatura de token do Broker é obrigatória",
mqTokenSigningKeyPlaceholderHs256: "Broker SECRET",
mqTokenSigningKeyPlaceholderRs256: "-----BEGIN PRIVATE KEY-----",
mqTokenSigningHint: "Escolha com base no jwt.broker.token.mode do Broker: SECRET usa HS256, PRIVATE usa RS256. A chave é armazenada nos segredos da conexão.",
databaseInfo: {
title: "Informações do Banco de Dados",
open: "Abrir informações do banco de dados {database}",
copy: "Copiar informações do banco de dados",
sourceConfigured: "Configuração atual",
sourceTested: "Testado",
configuredDescription: "Exibe as informações que podem ser determinadas no formulário; após um teste bem-sucedido, serão complementadas com a versão e os metadados do driver retornados pelo servidor.",
testedDescription: "As informações abaixo são da conexão usada neste teste bem-sucedido.",
productName: "Sistema de Gerenciamento de Banco de Dados",
productVersion: "Versão do banco de dados",
currentDatabase: "Banco de dados atual",
serverComment: "Descrição do servidor",
serverCharset: "Charset do servidor",
serverCollation: "Collation do servidor",
unquotedIdentifierCase: "Identificador sem aspas",
quotedIdentifierCase: "Identificador com aspas",
driverName: "Driver",
driverVersion: "Versão do driver",
jdbcVersion: "Versão do JDBC",
identifierCase: {
lower: "Minúsculas",
upper: "Maiúsculas",
mixed: "Maiúsculas e minúsculas",
},
},
elasticsearchDirectMode: "Conexão Direta",
elasticsearchKibanaProxyMode: "Proxy do Kibana",
elasticsearchKibanaHost: "Host do Kibana",
elasticsearchKibanaBasePath: "Caminho Base",
elasticsearchConnectivityCheckPath: "Caminho de conectividade",
elasticsearchConnectivityCheckPathPlaceholder: "/ ou /my-index/_search",
mqSystemRocketMq: "Apache RocketMQ",
rocketmqNamesrvAddr: "Endereço do NameServer",
rocketmqNamesrvAddrPlaceholder: "127.0.0.1:9876",
rocketmqNamesrvAddrRequired: "O endereço do NameServer do RocketMQ não pode estar vazio",
rocketmqNamesrvAddrInvalid: "Endereço do NameServer do RocketMQ inválido",
rocketmqClusterName: "Nome do cluster",
rocketmqClusterNamePlaceholder: "Opcional, ex: DefaultCluster",
rocketmqAccessKey: "Access Key",
rocketmqSecretKey: "Secret Key",
rocketmqAclAuth: "ACL",
jdbcMissingRuntimeDependencyHint: "O driver JDBC atual está sem dependências de execução. Por favor, instale-o usando as coordenadas Maven no 'Gerenciamento de Drivers' ou importe o driver e todos os JARs de dependência de uma só vez.",
showSystemSchemas: "Mostrar Schema do sistema",
showSystemSchemasHint: "Exibir Schemas de sistema/metadados integrados na barra lateral e no seletor de Schema para a conexão atual.",
sshHostKeyVerifyTitle: "Confirmar chave de host SSH desconhecida",
sshHostKeyVerifyMessage: "Não foi possível confirmar a autenticidade do host '{host}:{port}'. Para evitar ataques man-in-the-middle, verifique a impressão digital da chave do host com o administrador do servidor antes de continuar.",
sshHostKeyVerifyKeyType: "Tipo de chave",
sshHostKeyVerifyFingerprint: "Impressão digital",
sshHostKeyVerifyRemember: "Confiar neste host (lembrar desta chave para conexões futuras)",
sshHostKeyVerifyAccept: "Aceitar e conectar",
sshHostKeyVerifyReject: "Cancelar",
sshHostKeyNoticeChanged: "A chave do host {host}:{port} foi alterada, pode haver um ataque man-in-the-middle. Se esta alteração era esperada, exclua o registro antigo e reconecte.",
sshHostKeyNoticeRejected: "Você rejeitou a verificação da chave do host {host}:{port}. A conexão foi abortada e as credenciais não foram enviadas.",
sshHostKeyNoticeGeneric: "Falha na verificação da chave do host SSH {host}:{port}.",
sshHostKeyNoticeLearnFailed: "Não foi possível salvar a chave do host {host}:{port} — o host é confiável apenas nesta sessão, necessitando reconfirmação na próxima conexão.",
damengJvmOptions: "Propriedades do sistema da JVM",
damengJvmOptionsPlaceholder: "-Djava.net.preferIPv4Stack=true",
damengJvmOptionsHint: "Uma propriedade -Dkey ou -Dkey=value por linha. Valores com espaços não precisam de aspas do shell.",
damengJvmOptionsInvalid: "A linha {line} deve ser uma propriedade -Dkey ou -Dkey=value sem aspas do shell.",
},
editor: {
duckdbDraining: "A consulta anterior do DuckDB ainda está sendo interrompida. Tente novamente em breve.",
pressToExecute: "Pressione {mod}+Enter para executar",
pressToSaveSql: "Pressione {mod}+S para salvar o SQL",
queryTimeoutError: "A consulta expirou ({seconds}s). Verifique se a conexão com o banco de dados está saudável.",
changeQueryTimeout: "Alterar tempo limite da consulta",
connectionMayBeLost: "A conexão pode ter sido perdida. Atualize os dados e tente novamente.",
showResultsPane: "Mostrar resultados",
hideResultsPane: "Ocultar resultados",
noDatabase: "Nenhum banco de dados selecionado",
unsavedChangesTitle: "Alterações não salvas",
unsavedChangesMessage: '"{title}" tem alterações não salvas que serão perdidas se fechada. Salvar antes de fechar?',
unsavedChangesBatchCloseMessage: "Algumas abas que você está fechando têm alterações não salvas que serão perdidas. Salvar antes de continuar?",
unsavedChangesBatchCloseMultipleMessage: '{count} abas SQL que você está fechando têm alterações não salvas. O DBX está mostrando "{title}" no momento. Salvar antes de continuar?',
unsavedChangesAppCloseMessage: '"{title}" tem alterações SQL não salvas que serão perdidas se você sair do DBX. Salvar antes de sair?',
unsavedChangesAppCloseMultipleMessage: '{count} abas SQL têm alterações não salvas. O DBX está mostrando "{title}" no momento. Serão perdidas se você sair do DBX. Salvar antes de sair?',
unsavedChangesViewList: "Ver {count} abas",
unsavedChangesListTitle: "Abas não salvas ({count})",
discardChanges: "Descartar",
discardAllChanges: "Descartar tudo",
saveAllChanges: "Salvar tudo",
selectConnection: "Selecionar conexão",
searchConnection: "Pesquisar conexões...",
selectCatalog: "Selecionar catálogo",
searchCatalog: "Pesquisar catálogos...",
selectDatabase: "Selecionar banco de dados",
selectDatabaseRequired: "Selecione um banco de dados primeiro",
searchDatabase: "Pesquisar bancos de dados...",
selectSchema: "Selecionar schema",
searchSchema: "Pesquisar schemas...",
setDefaultDatabase: "Definir Padrão",
defaultDatabase: "Padrão",
clearDatabase: "Limpar banco de dados",
exPasteNoValues: "A área de transferência não contém valores para uma condição IN",
exPasteNotList: "Nenhuma lista de múltiplos valores conversível foi detectada",
exPasteTooLarge: "O conteúdo da área de transferência é grande demais. Máximo de {limit} caracteres.",
exPasteTooManyValues: "Valores demais. Máximo de {limit}.",
exPasteClipboardReadFailed: "Falha ao ler a área de transferência: {message}",
exPastePasted: "{count} valores de condição IN colados",
completion: {
nullValue: "Valor NULL",
isNull: "Verificar se é NULL",
isNotNull: "Verificar se não é NULL",
stringLiteral: "Literal de string",
numericLiteral: "Literal numérico",
booleanValue: "Valor booleano",
starExpansionColumns: "{count} colunas",
functionDescriptions: {
COUNT: "Retorna o número de linhas",
SUM: "Retorna a soma de uma coluna numérica",
AVG: "Retorna a média de uma coluna numérica",
MIN: "Retorna o valor mínimo",
MAX: "Retorna o valor máximo",
GROUP_CONCAT: "Concatena valores de grupo em uma string",
STRING_AGG: "Concatena strings de grupo",
CONCAT: "Concatena múltiplas strings",
CONCAT_WS: "Concatena strings com separador",
SUBSTRING: "Extrai uma substring",
REPLACE: "Substitui conteúdo em uma string",
TRIM: "Remove espaços no início e no fim",
UPPER: "Converte para maiúsculas",
LOWER: "Converte para minúsculas",
LENGTH: "Retorna o comprimento da string",
REGEXP_REPLACE: "Substitui usando uma expressão regular",
DATE_FORMAT: "Formata uma data com o formato informado",
DATEDIFF: "Calcula a diferença entre duas datas",
DATE_ADD: "Adiciona um intervalo a uma data",
DATE_SUB: "Subtrai um intervalo de uma data",
EXTRACT: "Extrai uma parte da data",
NOW: "Retorna a data e hora atuais",
CURRENT_DATE: "Retorna a data atual",
CURRENT_TIME: "Retorna a hora atual",
CURRENT_TIMESTAMP: "Retorna a data e hora atuais",
CURDATE: "Retorna a data atual",
CURTIME: "Retorna a hora atual",
LOCALTIME: "Retorna a hora local atual",
LOCALTIMESTAMP: "Retorna a data e hora local atuais",
UTC_DATE: "Retorna a data UTC atual",
UTC_TIME: "Retorna a hora UTC atual",
UTC_TIMESTAMP: "Retorna a data e hora UTC atuais",
SYSDATE: "Retorna a data e hora atuais",
DATE: "Extrai a parte da data",
TIME: "Extrai a parte da hora",
TIMESTAMPDIFF: "Retorna a diferença entre duas datas/horas",
YEAR: "Extrai o ano",
MONTH: "Extrai o mês",
DAY: "Extrai o dia",
HOUR: "Extrai a hora",
MINUTE: "Extrai o minuto",
SECOND: "Extrai o segundo",
DAYOFWEEK: "Retorna o índice do dia da semana",
DAYOFYEAR: "Retorna o dia do ano",
LAST_DAY: "Retorna o último dia do mês",
STR_TO_DATE: "Converte uma string em data",
IF: "Retorna um valor com base em uma condição",
LEFT: "Retorna os caracteres mais à esquerda",
RIGHT: "Retorna os caracteres mais à direita",
SUBSTRING_INDEX: "Retorna uma substring antes de um delimitador",
CHAR_LENGTH: "Retorna o comprimento em caracteres",
INSTR: "Retorna a posição de uma substring",
LOCATE: "Retorna a posição de uma substring",
LPAD: "Preenche uma string à esquerda",
RPAD: "Preenche uma string à direita",
FIND_IN_SET: "Retorna o índice em uma lista separada por vírgulas",
RAND: "Retorna um valor flutuante aleatório",
MD5: "Retorna o hash MD5",
SHA1: "Retorna o hash SHA1",
SHA2: "Retorna o hash SHA2",
ROUND: "Arredonda para o número de casas decimais especificado",
FLOOR: "Arredonda para baixo",
CEIL: "Arredonda para cima",
ABS: "Retorna o valor absoluto",
MOD: "Retorna o resto da divisão",
COALESCE: "Retorna o primeiro argumento não NULL",
IFNULL: "Retorna um valor de substituição se for NULL",
NULLIF: "Retorna NULL se os argumentos forem iguais",
CAST: "Converte uma expressão para um tipo de destino",
JSON_EXTRACT: "Extrai um valor de um JSON",
JSON_VALUE: "Extrai um valor escalar de um JSON",
JSON_OBJECT: "Cria um objeto JSON",
JSON_ARRAY: "Cria um array JSON",
},
},
contextMenu: {
executeSelection: "Executar seleção",
executeCurrent: "Executar SQL",
export: "Exportar",
exportQueryResultTo: "Exportar conjunto de resultados da consulta atual para {format}",
copySelection: "Copiar seleção",
sendToAi: "Enviar para IA",
uppercaseSelection: "Converter para maiúsculas",
lowercaseSelection: "Converter para minúsculas",
selectAll: "Selecionar tudo",
delimitedList: "Converter para lista delimitada",
findReplace: "Localizar/substituir",
deleteEmptyLines: "Excluir linhas vazias",
},
search: {
find: "Localizar",
replace: "Substituir",
replaceAll: "Substituir Tudo",
caseSensitive: "Diferenciar maiúsculas/minúsculas",
regex: "Expressão regular",
collapseReplace: "Recolher substituição",
expandReplace: "Expandir substituição",
prevMatch: "Anterior (Shift+Enter)",
nextMatch: "Próximo (Enter)",
selectAll: "Selecionar todas as correspondências",
selectAllLimit: "Selecionar todas as correspondências (até {limit})",
selectionTruncated: "Foram encontradas {total} correspondências; as primeiras {limit} foram selecionadas.",
selectionLimitSummary: "Selecionadas {limit}/{total}",
close: "Fechar (Esc)",
noResults: "Nenhum resultado",
inSelection: "Na seleção",
},
executionPicker: {
title: "Execution Target",
currentStatement: "Current SQL",
allStatements: "All SQL",
currentCommand: "Current command",
allCommands: "All commands",
},
statementExecutionRunning: "{count} instrução(ões) em execução",
statementExecutionSucceeded: "{count} instrução(ões) executada(s) com sucesso",
statementExecutionFailed: "{count} instrução(ões) com falha",
delimitedList: {
title: "Converter para lista delimitada",
columnDelimiter: "Delimitador de coluna",
resultDelimiter: "Delimitador de resultado",
quoteChar: "Caractere de aspas para strings",
wrapColumn: "Quebrar na coluna",
prefixText: "Texto de prefixo",
suffixText: "Texto de sufixo",
preview: "Visualização",
emptyPreview: "Nada para visualizar",
confirm: "Confirmar",
selectFirst: "Selecione o texto da lista primeiro",
},
},
tabs: {
sql: "SQL",
table: "Tabela",
tableData: "Dados da Tabela",
redis: "Redis",
etcd: "etcd",
zookeeper: "ZooKeeper",
mongo: "Mongo",
vector: "Vector",
objects: "Objetos",
users: "Usuários e Privilégios",
executionSummary: "Resumo",
tooltipTitle: "Título:",
tooltipFilePath: "Caminho do arquivo:",
tooltipConnection: "Conexão:",
tooltipGroup: "Grupo:",
tooltipDatabase: "Banco de dados:",
tooltipTable: "Tabela:",
tooltipCollection: "Coleção:",
tooltipSchema: "Schema:",
resultN: "Resultado {n}",
runN: "Executar {n}",
resultRuns: "Execuções de resultado",
resultSets: "Conjuntos de resultados",
removeRun: "Remover execução {n}",
autoKeepResults: "Manter resultados automaticamente",
autoKeepResultsEnabled: "Manutenção automática de resultados ativada",
autoKeepResultsDisabled: "Manutenção automática de resultados desativada",
autoRefresh: "Atualizar resultados automaticamente",
autoRefreshShort: "Auto",
autoRefreshEvery: "Atualizar a cada {seconds} s",
startAutoRefresh: "Iniciar atualização automática",
stopAutoRefresh: "Parar atualização automática",
missingResultRun: "Este resultado não está mais disponível",
exportResultArchive: "Salvar Arquivo de Resultados",
importResultArchive: "Importar Arquivo de Resultados",
importedResultArchive: "Resultados importados",
resultArchiveExported: "Resultados exportados",
resultArchiveImported: "Resultados importados",
resultArchiveUnavailable: "Nenhum resultado salvo disponível para exportar",
resultArchiveImportInvalid: "Este arquivo de resultados não pôde ser aberto",
resultArchiveExportFailed: "Falha ao exportar resultados: {message}",
resultArchiveImportFailed: "Falha ao importar resultados: {message}",
scrollLeft: "Rolar abas para a esquerda",
scrollRight: "Rolar abas para a direita",
openTabs: "Abas abertas",
fixedTabs: "Abas fixadas",
openDataTabs: "Tabelas abertas",
gridfs: "GridFS",
etcdDashboard: "painel etcd",
etcdAccessControl: "controle de acesso do etcd",
},
executionSummary: {
empty: "Nenhum resumo",
executing: "Executando...",
finished: "Execução concluída",
statement: "Instrução",
sql: "SQL",
status: "Status",
type: "Tipo",
rows: "Linhas",
affected: "Afetadas",
time: "Tempo",
success: "Sucesso",
error: "Erro",
returnedTable: "Retornou uma tabela de resultado com {count} colunas",
noTable: "Nenhuma tabela de resultado retornada",
noSql: "SQL indisponível",
navigationHint: "Clique para visualizar o SQL; clique duas vezes para selecioná-lo no editor.",
statuses: {
pending: "Pendente",
running: "Executando",
success: "Sucesso",
error: "Erro",
skipped: "Não executada",
cancelled: "Cancelada",
},
},
chart: {
title: "Gráfico",
type: "Tipo",
line: "Linha",
bar: "Barra",
pie: "Pizza",
noNumericData: "Nenhum dado numérico disponível para gerar o gráfico",
},
grid: {
rows: "{count} linhas",
totalRows: "Total de {count} linhas",
loadedRows: "{count} linhas carregadas",
totalRowCount: "({count} no total)",
totalRowCountAtLeast: "(pelo menos {count} no total)",
totalRowCountEstimated: "(aprox. {count})",
totalRowCountLoading: "(contando...)",
loadingMore: "Carregando mais dados...",
allLoaded: "tudo carregado",
calculateTotalRows: "Contar total de linhas",
calculateTotalRowsInline: "(contar total de linhas)",
calculateTotalRowsFailed: "Falha ao contar: {message}",
rowsAffected: "{count} linhas afetadas",
querySuccess: "Consulta executada com sucesso",
noRows: "Sem dados",
noRowsDescription: "Este conjunto de resultados não possui registros.",
noSearchResults: "Nenhuma correspondência",
noSearchResultsDescription: "Tente uma palavra-chave diferente.",
noFilteredRows: "Nenhuma linha corresponde ao filtro",
noFilteredRowsDescription: "Ajuste o texto de pesquisa ou o filtro de status das linhas.",
copy: "Copiar",
mongoJsonPreview: "Visualização JSON",
mongoJsonPreviewEmpty: "Selecione um documento MongoDB para visualizar.",
copyJson: "Copiar JSON",
copyDdl: "Copiar DDL",
copyCell: "Copiar Célula",
copyRow: "Copiar Linha (JSON)",
copyColumnJson: "Copiar Coluna (JSON)",
copyColumnNames: "Copiar Nomes das Colunas",
copyColumnNamesSelected: "Copiar Nomes das Colunas Selecionadas ({count})",
copyColumnNamesTitle: "Copiar Nomes das Colunas ({count})",
copyColumnNamesSeparator: "Separador de colunas",
copyColumnNamesQuote: "Escapar nomes das colunas",
copyColumnNamesPreview: "Pré-visualização",
copyAll: "Copiar Tudo (TSV)",
selectionSum: "SUM: {value}",
selectionCells: "{count} células",
clearSelection: "Limpar Seleção",
export: "Exportar",
exportCsv: "Exportar CSV",
exportXlsx: "Exportar XLSX",
exportXlsxWithSql: "Exportar XLSX com SQL",
exportCurrentPageCsv: "Exportar página atual como CSV",
exportCurrentPageXlsx: "Exportar página atual como XLSX",
exportCurrentPageXlsxWithSql: "Exportar página atual como XLSX com SQL",
exportCurrentPageJson: "Exportar página atual como JSON",
exportCurrentPageMarkdown: "Exportar página atual como Markdown",
exportCurrentPageSql: "Exportar página atual como SQL INSERT",
exportCurrentPageTxt: "Exportar página atual como TXT",
exportCurrentResultCsv: "Exportar todos os dados do resultado atual como CSV",
exportCurrentResultXlsx: "Exportar todos os dados do resultado atual como XLSX",
exportCurrentResultXlsxWithSql: "Exportar todos os dados do resultado atual como XLSX com SQL",
exportCurrentResultJson: "Exportar todos os dados do resultado atual como JSON",
exportCurrentResultMarkdown: "Exportar todos os dados do resultado atual como Markdown",
exportCurrentResultSql: "Exportar todos os dados do resultado atual como SQL INSERT",
exportCurrentResultTxt: "Exportar todos os dados do resultado atual como TXT",
exportAllResultsXlsx: "Exportar todos os conjuntos de resultados desta execução como XLSX",
exportAllResultsXlsxWithSql: "Exportar todos os conjuntos de resultados desta execução como XLSX com SQL",
exportJson: "Exportar JSON",
exportMarkdown: "Exportar Markdown",
exportSql: "Exportar SQL INSERT",
exportTxt: "Exportar TXT",
exportSelectedRowsCsv: "Exportar Linhas Selecionadas como CSV",
exportSelectedRowsXlsx: "Exportar Linhas Selecionadas como XLSX",
exportSelectedRowsXlsxWithSql: "Exportar Linhas Selecionadas como XLSX com SQL",
exportSelectedRowsJson: "Exportar Linhas Selecionadas como JSON",
exportSelectedRowsMarkdown: "Exportar Linhas Selecionadas como Markdown",
exportSelectedRowsSql: "Exportar Linhas Selecionadas como SQL INSERT",
exportSelectedRowsTxt: "Exportar Linhas Selecionadas como TXT",
exported: "Exportado",
exportFailed: "Falha na exportação: {message}",
copied: "Copiado",
copyFailed: "Falha ao copiar: {message}",
previewSqlEmpty: "Nenhuma alteração SQL pendente para visualizar",
renderMode: "Modo de renderização",
domRenderMode: "DOM",
canvasRenderMode: "Canvas",
renderModeHint: "Alterne entre a renderização Canvas e a grade DOM alternativa.",
tableFontFamily: "Fonte da tabela",
tableFontSize: "Tamanho da fonte da tabela",
filter: "Filtrar",
conditionHistoryEmpty: "Sem histórico ainda",
conditionHistoryNoMatches: "Sem histórico correspondente",
filterBuilder: "Filtros",
filterBuilderTitle: "Filtros",
filterBuilderHint: "Crie condições com cliques e combine-as com a entrada WHERE.",
filterBuilderSummary: "{count} regras",
filterBuilderAddRule: "Adicionar regra",
filterBuilderColumn: "Coluna",
filterBuilderValue: "Valor",
filterBuilderValueShortcutHint: "Shift+Enter pode adicionar uma regra",
filterBuilderValues: "Valores (separados por vírgulas ou quebras de linha)",
filterBuilderRangeStart: "Valor inicial",
filterBuilderRangeEnd: "Valor final",
filterBuilderNoValue: "Nenhum valor necessário",
filterBuilderEmpty: "Adicione uma regra para começar a filtrar linhas.",
resetFilterBuilder: "Redefinir regras",
filterBuilderEquals: "Igual a",
filterBuilderNotEquals: "Diferente de",
filterBuilderContains: "Contém",
filterBuilderNotContains: "Não contém",
filterBuilderGreaterThan: "Maior que",
filterBuilderLessThan: "Menor que",
filterBuilderIn: "Na lista",
filterBuilderNotIn: "Fora da lista",
filterBuilderBetween: "No intervalo",
filterBuilderNotBetween: "Fora do intervalo",
filterBuilderIsNull: "É NULL",
filterBuilderIsNotNull: "Não é NULL",
columnActions: "Ações da coluna",
localFilter: "Filtro local de valores",
localFilterFor: "Valores locais para '{column}'",
databaseValueFilter: "Filtro de valores do banco de dados",
databaseValueFilterFor: "Valores do banco de dados para '{column}'",
columnFormatter: "Formatador de coluna",
columnFormatterFor: "Formatador para '{column}'",
columnFormatterHint: "Formata apenas a exibição; os valores brutos permanecem inalterados.",
formatterType: "Tipo",
formatterDatetime: "Timestamp Unix",
formatterJsonPath: "Caminho JSON",
formatterMask: "Mascarar texto",
formatterCustomTemplate: "Template personalizado",
formatterTimestampUnit: "Unidade do timestamp",
formatterUnitAuto: "Automático",
formatterUnitSeconds: "Segundos",
formatterUnitMilliseconds: "Milissegundos",
formatterDatetimePattern: "Formato de data e horário",
formatterDatetimePatternPlaceholder: "Selecione ou insira um formato de data e horário",
formatterDatetimePatternEmpty: "Padrão ISO8601",
formatterDatetimeTimezone: "Fuso horário",
formatterDatetimeTimezonePlaceholder: "Selecione um fuso horário",
formatterJsonPathInput: "Caminho JSON",
formatterMaskPrefix: "Prefixo visível",
formatterMaskSuffix: "Sufixo visível",
formatterSavedCustom: "Templates salvos",
formatterNewCustom: "Novo template",
formatterCustomName: "Nome do template",
formatterCustomNamePlaceholder: "Exemplo: Rótulo do usuário",
formatterCustomTemplateInput: "Template",
formatterCustomTemplateHint: "Variáveis disponíveis: ${value}, ${upper}, ${lower}, ${length}. Dê um nome para salvá-lo na lista.",
formatterPreview: "Visualização",
saveFormatter: "Salvar",
clearFormatter: "Limpar",
searchValues: "Pesquisar valores...",
loadingValues: "Carregando valores...",
serverValuesLimited: "Mostrando os primeiros {count} valores",
filterTypedValue: "Usar '{value}'",
value: "Valor",
count: "Contagem",
applyFilter: "Aplicar Filtro",
clearLocalFilters: "Limpar filtros locais de valores",
clearLocalFiltersShort: "Limpar local",
localFiltersActive: "{count} filtros locais de valores",
localFilterMoreValues: " +{count} mais",
columnVisibility: "Colunas",
columnVisibilityHint: "Pelo menos uma coluna permanece visível.",
columnReorderHint: "Arraste para reordenar as colunas.",
columnReorderSearchHint: "Limpe a pesquisa para reordenar as colunas.",
searchColumns: "Pesquisar colunas...",
dragColumnToReorder: "Arraste o cabeçalho para reordenar",
invertColumnVisibility: "Inverter",
resetColumnOrder: "Redefinir ordem",
showAllColumns: "Mostrar todas",
viewOptions: "Opções de visualização",
resultRunDisplayMode: "Abas de resultados",
resultRunDisplayList: "Lista",
resultRunDisplayTabs: "Abas",
hideNullColumns: "Ocultar NULL",
hideNullColumnsHint: "Alterna colunas cujos valores são todos NULL no resultado atual.",
moreValues: "Mais {count} valores, continue digitando para refinar os resultados",
filterByValue: "Filtrar Por Este Valor",
filterExcludeValue: "Excluir Este Valor",
filterLike: "Contém o Valor",
filterNotLike: "Não Contém",
filterLessThan: "Menor Que o Valor",
filterGreaterThan: "Maior Que o Valor",
filterIsNull: "Mostrar Valores NULL",
filterIsNotNull: "Mostrar Valores Não NULL",
clearFilter: "Limpar Filtro",
sort: "Ordenar",
sortAscending: "Ordenar de Forma Crescente",
sortDescending: "Ordenar de Forma Decrescente",
sortCurrentPageAscending: "Ordenar Página Atual Crescente",
sortCurrentPageDescending: "Ordenar Página Atual Decrescente",
sortDatabaseAscending: "Ordenar Banco de Dados Crescente",
sortDatabaseDescending: "Ordenar Banco de Dados Decrescente",
clearSort: "Limpar Ordenação",
freezeToColumn: "Congelar até esta coluna",
freezeSelectedColumns: "Congelar colunas selecionadas",
unfreezeColumns: "Descongelar colunas",
pasted: "Colado!",
search: "Pesquisar...",
searchOrWhere: "Pesquise, ou insira uma cláusula WHERE...",
applyWhere: "Aplicar WHERE",
filterRows: "Filtrar linhas",
filterAllRows: "Todas as linhas",
filterChangedRows: "Alteradas",
page: "Página {page}",
rowsPerPage: "Linhas por página",
customRowsPerPage: "Linhas personalizadas",
applyPageSize: "Aplicar",
save: "Salvar",
discard: "Descartar",
dismiss: "Dispensar",
addRow: "Adicionar Linha",
insertMultipleRows: "Inserir várias linhas…",
insertRowsTitle: "Inserir várias linhas",
insertRowsDescription: "Cria este número de linhas de rascunho não salvas. Linhas vazias são ignoradas ao salvar; após salvar, a ordem de exibição segue a consulta atual.",
insertRowCountLabel: "Número de linhas",
insertRowCountInvalid: "Digite um número inteiro maior que 0.",
insertRowsMaxHint: "Até {max} linhas.",
insertRowsConfirm: "Inserir",
insertAboveSelected: "Inserir acima da linha selecionada",
insertBelowSelected: "Inserir abaixo da linha selecionada",
insertRowPositionLabel: "Posição",
insertPositionAbove: "Acima da linha selecionada",
insertPositionBelow: "Abaixo da linha selecionada",
insertPositionEnd: "No final dos dados",
quickEntryDraftPlaceholder: "Nova",
cloneRow: "Clonar como Nova Linha",
deleteRow: "Excluir Linha",
deleteRows: "Excluir {count} Linhas",
cloneRows: "Clonar {count} como Novas Linhas",
restoreRows: "Restaurar {count} Linhas",
copyRows: "Copiar {count} Linhas (JSON)",
copyColumnsJson: "Copiar {count} Colunas (JSON)",
selectedRows: "{count} linhas selecionadas",
restoreRow: "Restaurar Linha",
statusClean: "Sem alterações",
statusNew: "Itens Novos",
statusEdited: "Itens Atualizados",
statusDeleted: "Itens Excluídos",
pendingChanges: "{count} pendentes",
selectedCells: "{count} selecionadas",
bulkEditSelection: "Edição em Massa da Seleção",
bulkEditTitle: "Edição em Massa da Seleção",
bulkEditDescription: "Definir {count} célula(s) selecionada(s) para este valor.",
bulkEditValuePlaceholder: "Valor, ou NULL",
applyBulkEdit: "Aplicar",
generateValue: "Gerar valor",
generateEmptyString: "String vazia",
generateNull: "NULL",
generateCurrentDatetime: "Data e hora atuais",
generateCurrentDate: "Data atual",
generateUuid: "UUID",
generateIncrementId: "ID incremental",
generateSnowflakeId: "ID Snowflake",
generateSequenceDescription: "Gere valores consecutivos para {count} célula(s) selecionada(s). Informe o valor inicial.",
generateStartInvalid: "O valor inicial deve ser um número inteiro",
generatedValuesApplied: "Foram gerados {count} valor(es)",
cellDetails: "Detalhes da Célula",
cellDetailLayoutBottom: "Mover para Baixo",
cellDetailLayoutRight: "Mover para a Direita",
collapseCellDetailMetadata: "Recolher metadados da célula",
expandCellDetailMetadata: "Expandir metadados da célula",
openCellDetailsDialog: "Abrir Detalhes da Célula",
rowDetails: "Detalhes da Linha",
rowDetailsFor: "Detalhes da Linha {row}",
openRowDetailsDialog: "Abrir Detalhes da Linha",
openColumnDetailsDialog: "Abrir Detalhes da Coluna",
columnDetailsFor: "Detalhes da Coluna {column}",
columnsCount: "{count} colunas",
rowCount: "Linhas",
rowsCount: "{count} linhas",
fieldIndex: "Nº",
cellValue: "Valor",
valueEditor: "Editor de Valor",
hexViewer: "Visualizador Hex",
hexViewerByteCount: "{count} bytes",
hexViewerOffset: "Offset",
hexViewerHex: "Hex",
hexViewerAscii: "ASCII",
hexViewerEmpty: "Nenhum byte binário para exibir.",
imagePreview: "Visualização de Imagem",
imageLoadFailed: "Falha ao carregar a imagem",
geometryPreview: "Visualização de Geometria",
layerPreview: "Visualização de Camada",
layerPreviewSkipped: "{count} recurso(s) ignorado(s)",
layerPreviewNoSupportedCrs: "Não foi possível visualizar: sistema ausente ou não suportado",
layerPreviewNoGeometryData: "Não foi possível visualizar: não há dados geométricos válidos",
layerPreviewLabel: "Rótulo",
layerPreviewExport: "Exportar imagem",
layerPreviewMaximize: "Maximizar",
layerPreviewRestore: "Restaurar",
layerPreviewLoading: "Carregando mapa...",
layerPreviewCustomCrs: "EPSG personalizado…",
layerPreviewCustomCrsPlaceholder: "Código EPSG",
layerPreviewUnsupportedCrs: "Sistema de coordenadas não suportado: EPSG:{srid}",
layerPreviewCrsManual: "Sistema de coordenadas: manual",
layerPreviewCrsDetected: "Sistema de coordenadas: detectado",
layerPreviewCrsAssumed: "Sistema de coordenadas: presumido WGS 84",
insertRowsNotSupported: "O destino de salvamento atual não suporta a adição de linhas.",
zoomIn: "Aproximar",
zoomOut: "Afastar",
fitImage: "Ajustar à Visualização",
openImage: "Abrir Imagem",
columnName: "Coluna",
columnType: "Tipo",
columnComment: "Comentário",
rowNumber: "Linha",
valueLength: "Comprimento",
nullValue: "NULL",
noComment: "Sem comentário",
formattedJson: "JSON Formatado",
formatted: "Formatado",
formattedValue: "Valor Formatado",
detailSearchPlaceholder: "Buscar campo ou valor…",
detailSearchNoMatch: "Nenhuma correspondência",
rawValue: "Valor Bruto",
largeValuePreviewHint: "Visualizando os primeiros {count} caracteres. A cópia ainda usa o valor completo.",
copyValue: "Copiar Valor",
downloadBinaryValue: "Baixar Valor",
downloadSaved: "Salvo em {path}",
downloadStarted: "Download iniciado: {fileName}",
binaryDownload: {
binary: "Binário bruto",
utf8: "Texto decodificado (UTF-8)",
gbk: "Texto decodificado (GBK)",
},
copyRowTsv: "Copiar Linha (TSV)",
copyColumnValues: "Copiar Coluna (JSON)",
copyColumnTsv: "Copiar Coluna (TSV)",
editValue: "Editar Valor",
formatJson: "Formatar JSON",
compactJson: "Compactar JSON",
formattedJsonEditWarning: "Você está editando JSON formatado. Ao salvar, ele será gravado como JSON, então a formatação original pode mudar.",
setNull: "Definir NULL",
restoreOriginalValue: "Restaurar Original",
copyColumnName: "Copiar Nome da Coluna",
copyAlterColumnSql: "Copiar como SQL ALTER",
alterSqlCopied: "SQL ALTER copiado para a área de transferência",
alterSqlCopiedWithWarnings: "SQL ALTER copiado para a área de transferência ({count} aviso(s))",
noAlterSqlAvailable: "Nenhum SQL ALTER disponível para esta coluna",
copyAlterSqlFailed: "Falha ao copiar: {message}",
copySqlCondition: "Copiar Condição SQL",
transpose: "Transpor Linha",
transposeMultiRowToggle: "Várias linhas",
transposeSingleRow: "Linha atual",
transposeMultiRow: "Várias linhas",
transposeMultiRowHint: "Quando ativado, a visualização transposta mostra várias linhas. Quando desativado, mostra apenas a linha atual.",
rowsPerPageShort: " linhas",
columnDetails: "Detalhes da Coluna",
tableInfo: "Informações da Tabela",
tableInfoColumns: "Colunas",
tableInfoIndexes: "Índices",
tableInfoForeignKeys: "Chaves Estrangeiras",
foreignKeyNavigate: "Ir para {table}",
tableInfoTriggers: "Gatilhos",
tableInfoNullable: "Permite Nulo",
tableInfoEmpty: "Sem metadados",
tableInfoSearch: "Pesquisar...",
tableInfoNoResults: "Nenhum resultado",
goToColumn: "Ir para a coluna",
columnWidth: "Largura da coluna",
columnWidthCompact: "Compacto",
columnWidthStandard: "Padrão",
columnWidthComfortable: "Amplo",
searchColumn: "Buscar coluna/comentário...",
noColumnsFound: "Nenhuma coluna encontrada",
queryError: "Erro na Consulta",
dataUnavailable: "Os dados da tabela precisam ser recarregados.",
dataUnavailableHintPrefix: "Pressione ",
dataUnavailableHintSuffix: " ou clique em Atualizar abaixo para recarregar.",
refresh: "Atualizar",
undoChange: "Desfazer alteração",
redoChange: "Refazer alteração",
commit: "Confirmar",
rollback: "Reverter",
transactionSaveHint: "Confirmar {count} alteração(ões) pendente(s) em uma transação.",
nonTransactionalSaveHint: "Salvar {count} alteração(ões) pendente(s) uma a uma. Se uma falhar, as alterações bem-sucedidas anteriores não serão revertidas.",
keylessEditWarning: "Sem chave primária",
keylessEditWarningHint: "Esta tabela não possui chave primária. Atualizações e exclusões usam todos os valores originais da linha na cláusula WHERE; linhas exatamente duplicadas podem ser afetadas juntas.",
queryEditReadOnly: "Resultado somente leitura",
queryEditUnsupported: {
"not-select": "Apenas resultados de consultas SELECT podem ser editados diretamente.",
cte: "Consultas com WITH/CTE ainda não são editáveis. Use um SELECT simples de tabela única.",
"set-operation": "Resultados de UNION, INTERSECT ou EXCEPT não podem ser mapeados com segurança de volta às linhas de origem.",
aggregation: "Resultados de DISTINCT, GROUP BY, HAVING e agregações não podem ser editados diretamente.",
"external-source": "Arquivos externos e resultados de funções de tabela não podem ser gravados de volta diretamente. Importe-os para uma tabela do banco de dados antes de editar.",
"complex-source": "O DBX não conseguiu identificar exatamente uma tabela de destino segura para gravar este resultado.",
"computed-columns": "Expressões computadas ou resultados de funções não podem ser gravados de volta. Selecione os nomes brutos das colunas em vez disso.",
"no-table": "Nenhuma tabela de origem editável foi detectada.",
"no-primary-key": "A tabela de destino não possui chave primária, portanto as linhas não podem ser atualizadas ou excluídas com segurança.",
"primary-key-not-returned": "O resultado está sem a coluna bruta da chave primária. Inclua-a pelo seu nome de coluna original.",
"aliased-columns": "As colunas do resultado usam aliases ou expressões. Selecione colunas editáveis pelos seus nomes originais.",
"metadata-unavailable": "O DBX não conseguiu carregar os metadados da tabela, portanto a edição do resultado está desabilitada.",
},
sortUnsupported: "Este SQL não suporta a ordenação do resultado completo. Tente novamente com uma única consulta SELECT.",
truncatedHint: "Os resultados foram truncados após carregar {count} linhas. Use a paginação no rodapé para navegar pelos dados carregados; exportar o resultado completo executa novamente a consulta no banco de dados.",
filterBuilderSearchColumns: "Pesquisar campos...",
filterBuilderNoMatchingColumns: "Nenhum campo correspondente",
copyExtractorWithHeaders: "{format} (com cabeçalhos)",
copyExtractorOneRow: "CSV de linha única",
copyExtractorSqlInList: "Lista SQL IN",
copyExtractorSqlInserts: "Instruções SQL INSERT",
copyExtractorSqlInsertsWithPrimaryKeys: "Instruções SQL INSERT (com chaves primárias)",
copyExtractorSqlInsertsWithoutPrimaryKeys: "Instruções SQL INSERT (sem chaves primárias)",
copyExtractorSqlUpdates: "Instruções SQL UPDATE",
copyExtractorWhereClause: "Condição WHERE",
copyExtractorPipeSeparated: "Separado por pipe",
copyExtractorPretty: "Tabela formatada",
copyExtractorConfigure: "Configurar extrator de dados…",
copyExtractorDefaultFormat: "Formato de cópia padrão",
copyExtractorFormat: "Extrator",
copyExtractorColumnSeparator: "Separador de coluna",
copyExtractorRowSeparator: "Separador de linha",
copyExtractorNullText: "Texto NULL",
copyExtractorQuote: "Caractere de aspas",
copyExtractorQuotePolicy: "Política de aspas",
copyExtractorQuoteMinimal: "Quando necessário",
copyExtractorQuoteAlways: "Sempre",
copyExtractorQuoteNever: "Nunca",
copyExtractorIncludeHeader: "Incluir nomes de colunas",
copyExtractorIncludeRowHeader: "Incluir números de linha",
copyExtractorSkipComputed: "Pular colunas computadas",
copyExtractorSkipGenerated: "Pular colunas geradas",
copyExtractorExcludePrimaryKeys: "Excluir chaves primárias",
copyExtractorInsertMode: "Modo de instrução INSERT",
copyExtractorInsertMerged: "Mesclar várias linhas",
copyExtractorInsertRowByRow: "Uma instrução por linha",
copyExtractorPrettyJson: "JSON formatado",
copyExtractorPreview: "Visualizar (seleção atual)",
copyExtractorEmptySelection: "Selecione dados para visualizar os resultados da extração.",
copyExtractorUnsupportedSelection: "O extrator atual exige que as mesmas colunas sejam selecionadas para cada linha.",
copyExtractorPreviewTruncated: "Atualmente visualizando apenas as primeiras 100 das {count} linhas selecionadas.",
copyExtractorWarningOmittedColumns: "O resultado da cópia omitiu as seguintes colunas: {columns}.",
copyExtractorWarningDuplicateJsonColumns: "Nomes de colunas JSON duplicados detectados, renomeados automaticamente para evitar perda de dados.",
copyExtractorValidation: {
"column-separator-empty": "O separador de coluna não pode estar vazio.",
"row-separator-empty": "O separador de linha não pode estar vazio.",
"separator-too-long": "O separador pode conter no máximo 8 caracteres.",
"null-text-too-long": "O texto NULL pode conter no máximo 64 caracteres.",
"separators-overlap": "O separador de coluna e o separador de linha não podem se conter mutuamente.",
"invalid-quote": "O caractere de aspas deve ter exatamente um caractere.",
"quote-conflicts": "O caractere de aspas não pode aparecer no separador de coluna ou no separador de linha.",
},
cachedResultUnavailable: "Resultado em cache ausente ou incompatível.",
reexecuteQuery: "Reexecutar consulta",
numericColumnAlign: "Alinhamento de colunas numéricas",
numericColumnAlignLeft: "Alinhamento à esquerda",
numericColumnAlignRight: "Alinhamento à direita",
batchAppendPasteNotEditable: "O resultado atual não é editável.",
batchAppendPasteInvalidTarget: "Selecione primeiro o número da linha de uma nova linha vazia e depois cole.",
batchAppendPasteTargetNotEmpty: "A nova linha selecionada já contém dados.",
batchAppendPasteEmpty: "Não há linhas para adicionar na área de transferência.",
batchAppendPasteReadonlyColumn: "Os dados colados contêm colunas não editáveis.",
xlsxHeaderTitle: "Formato do cabeçalho",
xlsxHeaderPrompt: "Selecione o formato do cabeçalho a ser usado ao exportar Excel:",
xlsxHeaderOriginal: "Cabeçalho usa nome do campo",
xlsxHeaderComment: "Cabeçalho usa comentário",
},
exportProgress: {
streamingUnsupported: "A exportação em streaming não é compatível com esta consulta. Simplifique-a ou use um driver compatível.",
agentSessionMissing: "A exportação em streaming requer uma sessão de conjunto de resultados, mas este driver não retornou session_id.",
title: "Exportando Dados da Tabela",
fetching: "Buscando dados do banco de dados...",
writing: "Gravando no arquivo...",
done: "Exportação concluída!",
error: "Falha na exportação",
cancelled: "Exportação cancelada.",
rowsCount: "{exported} / {total} linhas",
rowsExported: "{count} linhas exportadas",
rowsShort: "linhas",
cancel: "Cancelar",
minimize: "Minimizar para segundo plano",
openFolder: "Abrir pasta do arquivo",
openFolderFailed: "Falha ao abrir a pasta: {message}",
close: "Fechar",
tooltip: "Progresso da Exportação",
failedTooltip: "{count} tarefa em segundo plano falhou | {count} tarefas em segundo plano falharam",
popoverTitle: "Exportações",
noTasks: "Nenhuma exportação",
clearFinished: "Limpar concluídas",
showMore: "Mostrar mais {count}",
showLess: "Mostrar menos",
delete: "Remover",
databaseExportTitle: "Backup de banco de dados: {name}",
sqlFileTitle: "Arquivo SQL: {name}",
dataTransferTitle: "Transferência de dados: {name}",
objectsCount: "{current} / {total} objetos",
tablesCount: "{current} / {total} tabelas",
statementsCount: "{done} com sucesso, {failed} com falha",
elapsed: "Decorrido: {duration}",
showFailureDetails: "Detalhes das falhas ({count})",
hideFailureDetails: "Ocultar detalhes das falhas",
failureDetailTruncated: "Os detalhes do erro foram truncados",
failureDetailsOmitted: "{count} detalhes adicionais de falha não exibidos",
},
welcome: {
title: "Área de Trabalho do Banco de Dados",
subtitle: "Escolha uma conexão à esquerda para navegar pelo schema ou abra uma aba de consulta diretamente.",
connections: "Conexões",
connected: "Conectado",
databaseTypes: "Tipos de Banco de Dados",
quickConnections: "Início Rápido",
quickConnectionsHint: "Clique em uma conexão para abrir uma aba de consulta.",
shortcuts: "Atalhos",
shortcutsHint: "Inicie a próxima ação a partir daqui.",
sqlHistory: "Histórico de Consultas",
sqlHistoryEmpty: "Nenhum registro da Biblioteca SQL ainda",
sqlHistoryOpenCount: "Aberto {count} vezes",
unknownConnection: "Conexão desconhecida",
tip: "Você também pode expandir as conexões à esquerda e clicar com o botão direito em bancos de dados ou tabelas para mais ações.",
tipSidebar: "Clique em uma tabela à esquerda para visualizar os dados",
tipExecute: "para executar a consulta",
fileOpened: "{name} aberto",
mcpTitle: "Integração com Agente de IA",
mcpDescription: "Além do assistente de IA integrado, você também pode usar Claude Code, Cursor e outros agentes de codificação para consultar seus bancos de dados via MCP.",
mcpLearnMore: "Saiba mais",
},
backendErrors: {
jdbc: {
connectionFailed: "A conexão com o banco falhou antes do início da operação (etapa: {stage}).",
connectionInterrupted: "A conexão com o banco foi interrompida durante a operação (etapa: {stage}).",
operationTimedOut: "A operação do banco excedeu o tempo limite (etapa: {stage}).",
operationCanceled: "A operação do banco foi cancelada (etapa: {stage}).",
busyRetryLater: "O Agent do banco está ocupado; tente novamente mais tarde (etapa: {stage}).",
runtimeReplaced: "O runtime do Agent do banco foi substituído (etapa: {stage}).",
sqlFailed: "O banco retornou um erro SQL (etapa: {stage}).",
protocolFailed: "O protocolo do Agent do banco falhou.",
contractInvalid: "O Agent do banco retornou um contrato de erro inválido.",
legacyFailure: "O Agent do banco retornou um erro não classificado.",
},
legacy: "O backend retornou um erro.",
unknown: "Ocorreu um erro inesperado no backend.",
},
common: {
fileNotFound: "O arquivo não existe: {path}",
language: "Idioma",
loading: "Carregando...",
stopping: "Parando...",
close: "Fechar",
cancel: "Cancelar",
confirm: "Confirmar",
save: "Salvar",
clear: "Limpar",
retry: "Tentar novamente",
more: "Mais",
decrease: "Diminuir",
increase: "Aumentar",
showPassword: "Mostrar senha",
hidePassword: "Ocultar senha",
done: "Concluído",
copy: "Copiar",
import: "Importar",
remove: "Remover",
connection: "Conexão",
database: "Banco de dados",
table: "Tabela",
view: "Visualização",
materializedView: "Visualização Materializada",
procedure: "Procedimento",
function: "Função",
sequence: "Sequência",
package: "Pacote",
packageBody: "Corpo do Pacote",
noResults: "Sem resultados",
edit: "Editar",
delete: "Excluir",
back: "Voltar",
},
dateTimePicker: {
open: "Abrir seletor de data e hora",
inputLabel: "Data e hora",
inputPlaceholder: "AAAA-MM-DD HH:mm:ss",
previousMonth: "Mês anterior",
nextMonth: "Próximo mês",
calendarLabel: "Calendário",
timeLabel: "Hora",
hour: "Hora",
minute: "Minuto",
second: "Segundo",
cancel: "Cancelar",
apply: "Aplicar",
invalidDateTime: "Insira uma data e hora válidas",
outOfRange: "A data e hora está fora do intervalo permitido",
},
quickOpen: {
placeholder: "Pesquisar conexões, bancos de dados, tabelas, arquivos SQL e outros objetos...",
emptyPlaceholder: "Comece a digitar para pesquisar",
noResults: "Nenhum resultado encontrado",
results: "resultados",
navigate: "Navegar",
select: "Selecionar",
close: "Fechar",
sqlFile: "Arquivo SQL",
sqlLibraryFile: "Biblioteca SQL",
},
explain: {
title: "Plano de Execução",
standardTable: "Tabela",
tree: "Árvore",
summary: "Resumo",
running: "Lendo plano de execução...",
empty: "Nenhum plano de execução",
nodeCount: "{count} nós",
node: "Nó",
relation: "Tabela",
index: "Índice",
cost: "Custo",
rows: "Linhas",
details: "Detalhes",
canvas: "Canvas",
costShare: "Custo (%)",
estRows: "Linhas est.",
actualRows: "Linhas reais",
zoomIn: "Aumentar zoom",
zoomOut: "Diminuir zoom",
zoomFit: "Ajustar",
legendHeat: "Cor = % do custo total",
legendEdge: "Espessura = linhas",
inspectorEmpty: "Selecione um nó",
catResult: "Resultado",
catSort: "Sort",
catJoin: "Join",
catTscan: "Table scan",
catIscan: "Index scan",
catLookup: "Row lookup",
catMat: "Materialização",
catAgg: "Agregação",
catXchg: "Paralelismo",
catMod: "Modificação",
catOther: "Outro",
unsupported: "O plano de execução ainda não é suportado para este banco de dados",
emptySql: "Nenhum SQL para explicar",
unsafe: "Esta primeira versão explica apenas instruções SELECT / WITH / TABLE / VALUES",
},
lineage: {
title: "Linhagem de Campo",
open: "Visualizar Linhagem de Campo",
loading: "Lendo metadados {done}/{total}",
empty: "Nenhuma linhagem relacionada encontrada",
noFiltered: "Nenhum resultado corresponde aos filtros atuais",
targetField: "Campo Atual",
searchPlaceholder: "Pesquisar tabelas, campos, visões ou trechos de SQL...",
showing: "Mostrando {shown}/{total} resultados",
all: "Todos",
certain: "Certo",
likely: "Provável",
possible: "Possível",
queryHistory: "Histórico de Consultas",
openTable: "Abrir tabela",
copy: "Copiar nome",
copied: "Copiado",
kind: {
foreignKey: "Chave Estrangeira",
viewReference: "Visão",
historyReference: "Histórico de SQL",
sameName: "Mesmo Nome",
},
description: {
foreignKeyIncoming: "{target} aponta para o campo atual através de uma chave estrangeira. Esta é uma dependência verificada.",
foreignKeyOutgoing: "O campo atual referencia {target} através de uma chave estrangeira. Esta é uma dependência verificada.",
viewLikely: "A definição da visão menciona tanto a tabela quanto o campo de destino, geralmente indicando dependência de consulta.",
viewPossible: "A definição da visão menciona um campo de mesmo nome, mas não a tabela de destino, então precisa de confirmação.",
historyLikely: "Uma instrução SQL histórica menciona tanto a tabela quanto o campo de destino. Use-a como contexto de análise de impacto.",
historyPossible: "Uma instrução SQL histórica menciona um campo de mesmo nome. Pode estar relacionado, mas precisa de contexto.",
sameName: "Outra tabela possui um campo de mesmo nome. Isso pode compartilhar significado de negócio, mas não é uma dependência verificada do banco de dados.",
},
cancel: "Cancelar",
refresh: "Analisar Novamente",
},
connectionGroup: {
createGroup: "Novo Grupo",
groupNamePlaceholder: "Nome do grupo",
renameGroup: "Renomear Grupo",
deleteGroup: "Excluir Grupo",
moveToGroup: "Mover para Grupo",
moveToNewGroup: "Mover para Novo Grupo",
ungrouped: "Sem grupo",
ungroupedLabel: "Sem grupo",
newGroup: "Novo Grupo...",
newGroupDefault: "Novo Grupo",
deleteGroupConfirmTitle: "Excluir Grupo",
deleteGroupConfirmMessage: 'Excluir o grupo "{name}"? As conexões dentro dele serão movidas para o nível superior.',
selectConnection: "Selecionar conexão",
deselectConnection: "Desmarcar conexão",
selectAllConnections: "Selecionar todas as conexões",
deselectAllConnections: "Desmarcar todas as conexões",
exitMultiSelect: "Sair da seleção múltipla",
},
databaseSearch: {
title: "Pesquisar no Banco de Dados",
open: "Pesquisar no Banco de Dados",
keyword: "Palavra-chave",
keywordPlaceholder: "Digite um ID de usuário, e-mail, número de pedido...",
limitPerTable: "Por tabela",
search: "Pesquisar",
searching: "Pesquisando",
stop: "Parar",
hint: "Verifica tabelas comuns no banco de dados ou schema atual. Colunas binárias são ignoradas e cada tabela é limitada para evitar carregar dados em excesso de uma só vez.",
loadingTables: "Lendo lista de tabelas...",
progress: "{done}/{total} tabelas verificadas",
resultCount: "{count} correspondências",
limitedTables: "Schema grande detectado; apenas as primeiras {count} tabelas são verificadas",
results: "Resultados",
openResult: "Abrir",
waiting: "Aguardando correspondências...",
noResults: "Nenhuma correspondência ainda",
errors: "Algumas tabelas falharam",
},
configExport: {
passphraseTitle: "Criptografar e Exportar",
passphraseImportTitle: "Descriptografar e Importar",
passphraseExportHint: "Para incluir as senhas de conexão na exportação, defina uma frase secreta para a criptografia. Você precisará da mesma frase secreta para importar.",
passphraseImportHint: "Este arquivo está criptografado. Digite a frase secreta para descriptografar e importar.",
passphrase: "Frase secreta",
passphraseConfirm: "Confirmar Frase Secreta",
passphrasePlaceholder: "Digite a frase secreta",
passphraseConfirmPlaceholder: "Digite novamente a frase secreta",
passphraseRequired: "A frase secreta é obrigatória",
passphraseMismatch: "As frases secretas não coincidem",
passphraseTooShort: "A frase secreta deve ter pelo menos 4 caracteres",
exportEncrypted: "Exportar",
decryptImport: "Descriptografar e Importar",
wrongPassphrase: "Frase secreta incorreta ou arquivo corrompido",
cryptoUnavailable: "A importação criptografada não está disponível neste contexto do navegador. Use HTTPS, localhost ou DBX Desktop.",
exportSuccess: "Conexões exportadas com sucesso",
importSuccess: "{count} conexão(ões) importada(s)",
importNavicatSuccess: "{count} conexão(ões) do Navicat importada(s). Preencha qualquer conexão cuja senha ainda esteja vazia antes de testar.",
importDatagripSuccess: "{count} conexão(ões) DataGrip importada(s), {filled} senha(s) preenchida(s) do Keychain.",
importDbeaverSuccess: "{count} conexão(ões) do DBeaver importada(s). Preencha qualquer conexão cuja senha ainda esteja vazia antes de testar.",
importNone: "Nenhuma conexão nova para importar",
importLayoutConfirm: "O arquivo importado contém grupos de conexões. Aplicá-los?",
importLayoutTitle: "Importar Grupos",
importLayoutApply: "Aplicar",
importDatagripSelectFiles: "Selecione dataSources.xml (obrigatório), você também pode selecionar dataSources.local.xml e db-forest-config.xml",
importDatagripDialogTitle: "Selecione o arquivo de configuração do DataGrip",
},
ai: {
placeholder: "Descreva sua consulta em linguagem natural...",
settings: "Configurações de AI",
noConfig: "A AI não está configurada. Configure seu provedor de AI em Configurações > AI.",
provider: "Provedor",
providerStatusActive: "Ativo",
providerStatusConfigured: "Configurado",
switchProvider: "Trocar provedor",
model: "Modelo",
defaultModel: "Modelo padrão",
browseModels: "Explorar modelos",
refreshModels: "Atualizar modelos",
loadingModels: "Carregando modelos...",
modelLoadFailed: "Falha ao carregar modelos",
retry: "Tentar novamente",
searchModels: "Pesquisar modelos",
noModels: "Nenhum modelo carregado",
noModelMatch: "Nenhum modelo correspondente",
selectModel: "Selecionar modelo",
noModel: "Nenhum modelo configurado",
manualModel: "Inserir ID do modelo manualmente",
manualModelPlaceholder: "ID do modelo",
effort: "Esforço",
providerDefault: "Padrão do provedor",
loadingEffort: "Carregando níveis de esforço...",
effortLoadFailed: "Falha ao carregar níveis de esforço",
effortEnabled: "Ativado",
effortDisabled: "Desativado",
customEffortPlaceholder: "Inserir valor de esforço",
effortUnsupported: "Este modelo não permite configurar esforço",
configNameEmpty: "O nome da configuração não pode estar vazio",
configNameExists: "O nome da configuração '{name}' já existe",
configList: "Lista de configurações AI",
addConfig: "Adicionar configuração",
noAiConfigs: "Nenhuma configuração AI",
setDefault: "Definir como padrão",
editConfig: "Editar configuração",
configName: "Nome da configuração",
configNamePlaceholder: "Digite o nome",
modelList: "Lista de modelos",
modelId: "ID do modelo",
modelDisplayName: "Nome de exibição",
add: "Adicionar",
fetching: "Buscando...",
fetchModelList: "Buscar modelos da API",
default: "Padrão",
deleteConfigTitle: "Excluir configuração",
deleteConfigConfirm: "Excluir esta configuração?",
modelListHint: "Clique em atualizar para carregar os modelos do provedor.",
modelListUnsupported: "Este provedor não oferece suporte à obtenção de uma lista de modelos.",
modelListEndpointRequired: "Informe um endpoint antes de carregar os modelos.",
modelListApiKeyRequired: "Informe uma API key antes de carregar os modelos.",
codexMcpRequiredTitle: "DBX MCP Server obrigatório",
codexMcpRequiredDescription: "O Codex CLI usa o DBX MCP Server para acessar o schema do banco e as ferramentas de consulta. Instale-o antes de usar o Codex no assistente de AI.",
codexCliPath: "Caminho do Codex CLI",
codexCliPathHint: "Deixe vazio para usar o codex do PATH. Faça login separadamente com codex login.",
codexCliPathEnvError: "Codex CLI Path deve conter apenas o caminho do executável. Adicione variáveis de ambiente abaixo.",
codexCliEnv: "Variáveis de ambiente",
codexCliEnvAdd: "Adicionar variável",
codexCliEnvHint: "Variáveis opcionais passadas ao Codex CLI, como HTTPS_PROXY, NO_PROXY, SSL_CERT_FILE ou CODEX_CA_CERTIFICATE.",
codexCliEnvKeyPlaceholder: "HTTPS_PROXY",
codexCliEnvValuePlaceholder: "http://proxy:9800",
codexCliEnvInvalidName: "Nome de variável de ambiente inválido: {name}",
codexCliEnvReservedName: "{name} é gerenciada pelo DBX para o MCP Server e não pode ser definida aqui.",
cliMcpRequiredTitle: "DBX MCP Server required",
cliMcpRequiredDescription: "{provider} uses the DBX MCP Server to access database schema and query tools. Install it before using this provider in the AI assistant.",
cliPath: "{provider} Path",
cliPathHint: "Leave empty to use {command} from PATH. Sign in separately with {loginCommand}.",
cliPathEnvError: "{provider} path should contain only the executable path. Add environment variables below.",
cliEnv: "Environment variables",
cliEnvAdd: "Add variable",
cliEnvHint: "Optional variables passed to {provider}, such as HTTPS_PROXY, NO_PROXY, or SSL_CERT_FILE.",
cliEnvKeyPlaceholder: "HTTPS_PROXY",
cliEnvValuePlaceholder: "http://proxy:9800",
cliEnvInvalidName: "Invalid environment variable name: {name}",
cliEnvReservedName: "{name} is managed by DBX for the MCP server and cannot be set here.",
reasoningLevel: "Nível de raciocínio",
reasoningLevelDefault: "Padrão",
reasoningLevelMinimal: "Mínimo",
reasoningLevelLow: "Baixo",
reasoningLevelMedium: "Médio",
reasoningLevelHigh: "Alto",
reasoningLevelXhigh: "Muito alto",
reasoningLevelMax: "Máximo",
reasoningLevelHint: "Controla model_reasoning_effort do Codex CLI. Padrão usa sua configuração do Codex.",
claudeCodeEffortHint: "Os níveis disponíveis são informados dinamicamente pelo Claude Code CLI local para o modelo selecionado.",
claudeCodeEffortUnavailable: "O modelo selecionado não informa níveis de effort configuráveis. O Claude Code usará o padrão.",
cliErrors: {
code: "Código do erro: {code}",
details: "Detalhes de diagnóstico:",
reportHint: "Ao relatar este problema, inclua o código do erro e os detalhes de diagnóstico abaixo.",
claudeCodeNotInstalled: "Claude Code CLI não foi encontrado. Instale o Claude Code ou defina o caminho do executável em Configurações > AI.",
claudeCodeCliPathInvalid: "O caminho do Claude Code CLI é inválido. Selecione apenas o executável do Claude e configure as variáveis de ambiente separadamente.",
claudeCodeEnvInvalid: "O nome de uma variável de ambiente do Claude Code CLI é inválido. Use nomes como HTTPS_PROXY.",
claudeCodeEnvReserved: "Uma variável MCP gerenciada pelo DBX foi sobrescrita. Remova as variáveis DBX_MCP_* da configuração do provedor.",
claudeCodeNotAuthenticated: "Claude Code CLI não está autenticado. Execute `claude auth login` em um terminal e tente novamente.",
claudeCodeMcpConfigInvalid: "O Claude Code não conseguiu ler ou analisar a configuração MCP do DBX. Verifique a versão e o caminho do executável do Claude Code CLI.",
dbxMcpMissing: "Uma instalação compatível do DBX MCP Server não foi encontrada. Verifique Configurações > MCP e reinstale ou atualize.",
claudeCodeMcpStartupFailed: "O Claude Code carregou a configuração MCP, mas não conseguiu iniciar o DBX MCP Server. Verifique Configurações > MCP e os detalhes abaixo.",
claudeCodeCommandLineTooLong: "O Windows rejeitou o comando do Claude Code porque era muito longo. Atualize o DBX e tente novamente com o arquivo MCP gerado.",
claudeCodeRunFailed: "Claude Code CLI foi encerrado inesperadamente. Use o código do erro e os detalhes abaixo para identificar o executável ou a saída com falha.",
piAgentNotInstalled: "Pi Coding Agent não foi encontrado. Instale o Pi ou defina o caminho do executável em Configurações > AI.",
piAgentCliPathInvalid: "O caminho do Pi Coding Agent é inválido. Selecione apenas o executável do Pi e configure as variáveis de ambiente separadamente.",
piAgentEnvInvalid: "O nome de uma variável de ambiente do Pi Coding Agent é inválido. Use nomes como HTTPS_PROXY.",
piAgentEnvReserved: "Uma variável Pi ou MCP gerenciada pelo DBX foi sobrescrita. Remova DBX_PI_* e DBX_MCP_* da configuração.",
piAgentNotAuthenticated: "O Pi Coding Agent não possui um provedor de modelos autenticado. Configure ou entre em um provedor com o Pi.",
piAgentMcpStartupFailed: "O Pi não conseguiu iniciar a ponte MCP do DBX. Verifique Configurações > MCP e os detalhes abaixo.",
piAgentTimeout: "O Pi Coding Agent não respondeu antes do tempo limite da operação.",
piAgentProtocolError: "O Pi Coding Agent retornou uma resposta RPC inválida. Verifique a versão do Pi e os detalhes abaixo.",
piAgentModelInvalid: "O identificador do modelo Pi é inválido. Atualize a lista e selecione uma entrada provider/model.",
piAgentRunFailed: "O Pi Coding Agent foi encerrado inesperadamente. Use o código do erro e os detalhes abaixo para identificar a falha.",
},
run: "Executar",
readingSchema: "Lendo schema",
noConnection: "Nenhuma conexão disponível para esta aba",
noSql: "Nenhum SQL para processar",
sqlPreview: "Pré-visualização do SQL",
copySql: "Copiar SQL",
copyCode: "Copiar Código",
executeSql: "Executar SQL",
tempRunSql: "Executar sem modificar",
copyAll: "Copiar Tudo",
copied: "Copiado",
copyTestResult: "Copiar resultado do teste",
testErrorAuth: "A autenticação ou o acesso falhou. Verifique a chave de API, as permissões do projeto e se a API está ativada.",
testErrorModelNotFound: "O modelo não está disponível. Verifique o ID do modelo e o acesso da conta.",
testErrorRateLimit: "O limite de solicitações ou a cota foi excedido. Tente mais tarde ou verifique a cota.",
testErrorTimeout: "A solicitação expirou. Verifique a rede, o proxy e o endpoint.",
testErrorTokenLimit: "Nenhum texto visível foi gerado porque o limite de tokens de saída se esgotou.",
testErrorSafety: "A política de segurança do Gemini bloqueou o prompt ou a resposta.",
testErrorEmptyResponse: "O serviço ou proxy fechou o fluxo sem retornar texto visível.",
testErrorNetwork: "A conexão de rede falhou. Verifique o endpoint e o proxy.",
testErrorUnknown: "O teste falhou por um motivo não classificado.",
replace: "Substituir Editor",
append: "Anexar ao Editor",
apply: "Aplicar ao Editor",
clear: "Limpar Conversa",
welcome: "Diga o que você gostaria de consultar e eu escreverei o SQL",
requestFailed: "Falha na solicitação de AI",
newChat: "Nova Conversa",
thinking: "Pensando...",
reasoningProcess: "Processo de raciocínio",
chars: "car.",
stopGenerating: "Parar geração",
scrollToBottom: "Voltar ao fim",
tableMentionEmpty: "Nenhuma tabela ou arquivo SQL correspondente",
tableMentionPlaceholderHint: "Digite {'@'} para mencionar tabelas ou arquivos SQL como contexto",
tableMentionTypes: {
table: "Tabela",
view: "Visão",
systemTable: "Tabela do sistema",
temporaryTable: "Tabela temporária",
},
modes: {
ask: "Perguntar",
agent: "Agente",
},
modeHints: {
ask: "Gera SQL e explicações sem executá-los automaticamente",
agent: "Executa automaticamente consultas seguras quando possível",
},
fixWithAi: "Corrigir com AI",
truncated: "Contexto truncado",
contextSummary: "{database} · {tables} tabelas",
autoSqlBlocked: "O SQL gerado pela AI pareceu arriscado demais para execução automática. Revise-o manualmente antes de executar.",
proposalConfirmYes: "Sim, continuar",
proposalConfirmNo: "Não, obrigado",
proposalConfirmTitle: "Confirmação de ação necessária",
globalInstructions: "Instruções globais personalizadas",
globalInstructionsDescription: "Aplicadas automaticamente a todas as conversas com IA.",
globalInstructionsCharCount: "{count}/{max} caracteres",
globalInstructionsSaved: "Instruções globais salvas",
globalInstructionsSave: "Salvar",
globalInstructionsTooLong: "Instruções globais muito longas (máx. {max} caracteres)",
customInstructionsLoadFailed: "Falha ao carregar instruções personalizadas de IA. Tente novamente.",
maxAgentTurns: "Limite de turnos do agente",
maxAgentTurnsDescription: "Máximo de turnos de ferramentas por execução do agente de API antes de pausar e pedir para continuar. Provedores CLI usam seus próprios limites.",
maxAgentTurnsRange: "{min}–{max}, padrão {default}",
maxAgentTurnsSaved: "Limite de turnos do agente salvo",
promptTemplates: "Modelos de prompt por cenário",
promptTemplatesDescription: "Selecione um ou mais modelos no assistente de IA para injetar convenções específicas do cenário.",
promptTemplateNew: "Novo modelo",
promptTemplateEdit: "Editar modelo",
promptTemplateName: "Nome do modelo",
promptTemplateNamePlaceholder: "ex. Regras de BD de produção",
promptTemplateContent: "Conteúdo do modelo",
promptTemplateContentPlaceholder: "Descreva a convenção ou instrução...",
promptTemplateNameEmpty: "O nome do modelo não pode estar vazio",
promptTemplateNameExists: "O nome de modelo '{name}' já existe",
promptTemplateContentRequired: "O conteúdo do modelo não pode estar vazio",
promptTemplateDeleteTitle: "Excluir modelo",
promptTemplateDeleteConfirm: "Excluir modelo '{name}'? Esta ação não pode ser desfeita.",
promptTemplateTooLong: "Conteúdo do modelo muito longo (máx. {max} caracteres)",
promptTemplateNameTooLong: "Nome do modelo muito longo (máx. {max} caracteres)",
promptTemplateSaved: "Modelo salvo",
promptTemplateDeleted: "Modelo excluído",
promptTemplateNoTemplates: "Nenhum modelo ainda. Crie um para começar.",
promptTemplateManage: "Gerenciar modelos",
promptTemplateSavedHint: "As alterações são salvas automaticamente.",
templateSelectorNone: "Não selecionado",
templateSelectorButton: "Modelos",
templateSelectorLabel: "Modelos: {label}",
templateSelectorDeselectAll: "Desmarcar todos",
templateSelectorLoading: "Carregando...",
templateSelectorEmpty: "Nenhum modelo. Clique em Gerenciar para adicionar.",
templateSelectorTooLong: "Os modelos selecionados excedem o limite total de conteúdo ({max} caracteres). Desmarque alguns para continuar.",
exportMarkdown: "Exportar como Markdown",
analysis: "AI Analysis",
agentSteps: {
generated: "SQL gerado",
noSql: "Nenhum SQL encontrado",
safe: "Verificação de segurança aprovada",
needsConfirm: "Requer confirmação",
blocked: "Bloqueado",
autoExecute: "Pronto para executar",
notRequested: "Execução não solicitada",
skipped: "Não executado",
callingTool: "Chamando ferramenta...",
toolDone: "Ferramenta concluída",
toolError: "Erro da ferramenta",
executeSafe: "Verificação de segurança aprovada · Executado",
executeBlocked: "Bloqueado pela verificação de segurança",
contextCompacted: "Contexto compactado",
},
agentStepTitles: {
riskCheck: "Verificação de risco: {action} · {category} · {environment} · {reasons}",
blocked: "A execução foi bloqueada pela política de risco. Revise o SQL manualmente.",
requiresConfirmation: "Este SQL requer confirmação antes da execução.",
askMode: "O modo Perguntar não executa SQL automaticamente.",
unsupportedAction: "A ação atual de AI não executa SQL automaticamente.",
noSql: "A resposta não incluiu um bloco de código SQL executável.",
notRequested: "O usuário não solicitou a execução do SQL.",
skipped: "Esta etapa não foi executada.",
},
proxy: "Proxy",
proxyEnable: "Enviar requisições de AI através do proxy",
proxyUrl: "URL do Proxy",
anthropicMessagesHint: "APIs compatíveis com Anthropic Messages geralmente usam /v1/messages.",
openAiCompatibleEndpointHint: "A maioria das APIs compatíveis com OpenAI requer o prefixo de caminho /v1.",
contextWindow: "Janela de Contexto",
contextWindowAuto: "Automático (detectar pelo nome do modelo)",
contextWindowHint: "Tokens. Deixe vazio para detecção automática. Defina manualmente para modelos locais/personalizados.",
maxRetriesGlobal: "Máximo de Tentativas",
maxRetriesGlobalDescription: "Número de tentativas automáticas em erros transitórios de API (limite de taxa, timeout, falhas de rede). Aplica-se a todos os provedores de IA via API. Provedores CLI (claude-code, codex, pi) não são afetados.",
maxRetriesRange: "{min}–{max}, padrão {default}",
maxRetriesSaved: "Máximo de tentativas salvo",
enableThinking: "Raciocínio",
enableThinkingOn: "Ativado",
enableThinkingOff: "Desativado",
enableThinkingHint: "Esta opção só tem efeito em APIs /chat/completions e modelos compatíveis. Quando desativada, pode reduzir significativamente o uso de tokens, mas a qualidade dos resultados gerados pode diminuir ligeiramente.",
actions: {
general: "Geral",
generate: "Gerar SQL",
explain: "Explicar SQL",
optimize: "Otimizar SQL",
fix: "Corrigir Erro",
convert: "Converter Dialeto",
sampleData: "Dados de Exemplo",
query: "Consultar dados",
exploreSchema: "Inspecionar esquema",
executeAndExplain: "Executar e explicar",
generateNoExec: "Gerar (sem executar)",
},
placeholders: {
general: "Pergunte qualquer coisa...",
generate: "Descreva o que você quer consultar, por exemplo, pedidos por usuário nos últimos 7 dias",
explain: "Opcional: adicione o que você quer entender",
optimize: "Opcional: adicione um objetivo, por exemplo, reduzir varreduras completas de tabela",
fix: "Cole o erro ou descreva o resultado esperado",
convert: "por exemplo, converter para PostgreSQL / MySQL / SQL Server",
sampleData: "Descreva os dados de exemplo ou instruções de teste a gerar",
query: "Descreva o que consultar ou contar, por exemplo, totais de pedidos por região este mês",
exploreSchema: "Descreva a tabela ou estrutura a inspecionar, por exemplo, colunas e índices de orders",
executeAndExplain: "Opcional: adicione o foco da explicação",
},
editMessage: "Editar mensagem",
editResend: "Reenviar",
editCancel: "Cancelar",
cannotDeleteActiveConfig: "Não é possível excluir a configuração ativa atual. Mude para outra configuração primeiro.",
maxRetries: "Número máximo de tentativas",
maxRetriesHint: "Tente novamente automaticamente ao encontrar limitação de taxa, tempo limite ou erro de rede temporário. 0 = não tentar novamente, máximo 10.",
},
contextMenu: {
openConnection: "Abrir Conexão",
closeConnection: "Fechar Conexão",
closeDatabaseConnection: "Fechar Conexão do Banco de Dados",
deleteConnection: "Excluir Conexão",
deleteSelectedConnections: "Excluir {count} conexões selecionadas",
confirmDeleteTitle: "Excluir Conexão",
confirmDeleteMessage: 'Tem certeza de que deseja excluir "{name}"? Esta ação não pode ser desfeita.',
confirmDeleteSelectedMessage: "Excluir as {count} conexões selecionadas? Esta ação não pode ser desfeita.",
editConnection: "Editar Conexão",
revealDatabaseFile: "Mostrar no gerenciador de arquivos",
selectVisibleDatabases: "Selecionar Bancos de Dados Visíveis",
configureVisibleObjects: "Filtro de Objetos Visíveis",
userAdmin: "Usuários e Privilégios",
openUserAdmin: "Abrir Usuários e Privilégios",
damengJobAdmin: "Jobs do agente Dameng",
openDamengJobAdmin: "Abrir jobs do agente Dameng",
duplicateConnection: "Duplicar Conexão",
duplicateSelectedConnections: "Duplicar {count} conexões selecionadas",
instanceInfo: "Informações da Instância",
newQuery: "Nova Consulta",
newSql: "Novo SQL",
generateSql: "Gerar SQL",
newInsert: "Novo Insert",
newUpdate: "Novo Update",
sqlHistory: "Histórico de Consultas",
noSqlHistory: "Nenhum SQL relacionado",
openObjectBrowser: "Explorar Objetos",
viewData: "Ver Dados",
openInNewDataTab: "Ver em nova aba",
editStructure: "Editar Estrutura",
editColumn: "Editar Coluna",
editIndex: "Editar Índice",
refreshChildren: "Atualizar",
expandAll: "Expandir tudo",
tableNameFilters: "Filtros...",
tableNameFiltersDescription: "Mostra apenas tabelas que correspondem à lista include e oculta as que correspondem à lista exclude. Um padrão SQL LIKE por linha.",
tableNameFilterInclude: "Padrões de tabelas incluídas",
tableNameFilterExclude: "Padrões de tabelas excluídas",
tableNameFilterIncludePlaceholder: "Exemplo:\nads_%\nuser_%",
tableNameFilterExcludePlaceholder: "Exemplo:\n%_bak\ntmp_%",
tableNameFilterLikeHint: "Use sintaxe SQL LIKE: % corresponde a qualquer texto, _ a um caractere. A comparação ignora maiúsculas.",
pin: "Fixar",
reorderPinned: "Reordenar item fixado",
unpin: "Desafixar",
fixTab: "Fixar aba",
unfixTab: "Desafixar aba",
refreshTab: "Atualizar Dados",
renameTab: "Renomear Aba",
duplicateTab: "Duplicar Aba",
compactTabTitle: "Encurtar Títulos das Abas",
fullTabTitle: "Mostrar títulos completos das abas",
closeTab: "Fechar Aba",
closeFixedTab: "Fechar Aba Fixa",
closeOtherTabs: "Fechar Outras Abas",
closeOtherRegularTabs: "Fechar Outras Abas Normais",
closeOtherFixedTabs: "Fechar Outras Abas Fixas",
closeAllTabs: "Fechar Todas as Abas",
closeAllRegularTabs: "Fechar Todas as Abas Normais",
closeAllFixedTabs: "Fechar Todas as Abas Fixas",
copyFinalProxyPort: "Copiar porta final do proxy",
finalProxyPortCopied: "Porta final do proxy {port} copiada",
copyName: "Copiar Nome",
setDefaultDatabase: "Definir como Banco de Dados Padrão",
clearDefaultDatabase: "Limpar Banco de Dados Padrão",
exportDatabase: "Exportar Banco de Dados",
exportAllDatabases: "Exportar todos os bancos de dados",
exportDatabaseSuccess: "{count} tabelas exportadas, até {limit} linhas cada",
exportDatabaseFailed: "Falha ao exportar banco de dados: {message}",
backupSqliteDatabase: "Backup SQLite Database",
backupSqliteDatabaseInProgress: "Backing up SQLite database...",
backupSqliteDatabaseSuccess: "SQLite database backed up",
backupSqliteDatabaseFailed: "Failed to backup SQLite database: {message}",
importData: "Importar Dados",
exportData: "Exportar Dados",
exportStructure: "Exportar Estrutura",
exportStructurePreviewTitle: "Estrutura - {name}",
exportStructurePreviewTitleMultiple: "Estrutura - {count} objetos",
exportStructureLoading: "Carregando estrutura...",
copyStructure: "Copiar Estrutura",
copyStructureAs: "Copiar Estrutura Como",
copyStructureAsTsv: "TSV (para Excel)",
copyStructureAsMarkdown: "Tabela Markdown",
structureDocTable: "Tabela",
structureDocColumn: "Coluna",
structureDocType: "Tipo",
structureDocPrimaryKey: "Chave Primária",
structureDocNullable: "Anulável",
structureDocDefault: "Padrão",
structureDocComment: "Comentário",
structureDocYes: "Sim",
structureDocNo: "Não",
structureDocCopied: "Estrutura copiada",
structureDocCopyFallbackHint: "A cópia automática foi bloqueada. Clique em Copiar novamente ou selecione o conteúdo abaixo.",
saveStructure: "Salvar SQL",
exportStructureCopied: "Estrutura copiada",
createTable: "Criar Tabela",
createView: "Criar Visão",
dropTable: "Remover Tabela",
emptyTable: "Esvaziar Tabela",
truncateTable: "Truncar Tabela",
duplicateStructure: "Clonar como Nova Tabela",
renameObject: "Renomear",
renameObjectTitle: "Renomear Objeto",
renameObjectNamePlaceholder: "Novo nome",
renameObjectSuccess: '"{oldName}" renomeado para "{newName}"',
confirmDropTableTitle: "Remover Tabela",
confirmDropTableMessage: 'Tem certeza de que deseja remover "{name}"? Isso excluirá permanentemente a tabela e todos os seus dados.',
dropTableCascade: "Usar CASCADE",
dropTableCascadeHint: "Também remove objetos dependentes, como views. Deixe desmarcado para usar o comportamento RESTRICT padrão do PostgreSQL.",
truncateTableCascade: "Usar CASCADE",
truncateTableCascadeHint: "Também trunca tabelas que referenciam esta tabela por chaves estrangeiras. Deixe desmarcado para usar o comportamento RESTRICT padrão do PostgreSQL.",
confirmEmptyTableTitle: "Esvaziar Tabela",
confirmEmptyTableMessage: 'Tem certeza de que deseja excluir todos os dados de "{name}"?',
confirmTruncateTableTitle: "Truncar Tabela",
confirmTruncateTableMessage: 'Tem certeza de que deseja truncar "{name}"? Isso removerá todas as linhas.',
dropTableSuccess: 'Tabela "{name}" removida',
editView: "Editar Visão",
viewSource: "Ver Código-fonte",
viewDdl: "Ver DDL",
viewDdlLoading: "Carregando DDL...",
ddlCopied: "DDL copiado",
dropObject: "Remover Objeto",
dropView: "Remover Visão",
dropColumn: "Remover Coluna",
dropIndex: "Remover Índice",
dropAllIndexes: "Remover todos os índices",
dropForeignKey: "Remover Chave Estrangeira",
dropTrigger: "Remover Gatilho",
batchDrop: "Remover selecionados ({count})",
batchEmpty: "Esvaziar selecionadas ({count})",
batchTruncate: "Truncar selecionadas ({count})",
executeProcedure: "Executar Procedimento",
confirmExecuteProcedureTitle: "Executar Procedimento",
confirmExecuteProcedureMessage: 'Executar o procedimento "{name}"? Você pode preencher ou ajustar os valores dos parâmetros primeiro.',
loadingProcedureParameters: "Carregando parâmetros...",
procedureParametersUnavailable: "Não foi possível carregar os metadados dos parâmetros. Você ainda pode editar o SQL abaixo e executá-lo.",
noProcedureParameters: "Nenhum parâmetro foi encontrado. O SQL atual será executado como exibido.",
inputParameters: "{count} parâmetros de entrada",
outputParameters: "{count} parâmetros de saída",
parameterName: "Nome",
parameterType: "Tipo",
parameterMode: "Modo",
parameterValue: "Valor",
parameterNull: "NULL",
parameterDefault: "DEFAULT",
parameterDefaultHint: "Quando DEFAULT está marcado, o DBX omite esse argumento para que o banco de dados use o padrão do procedimento.",
parameterValuePlaceholder: "Digite o valor",
outputOnly: "Apenas saída",
sqlPreview: "Pré-visualização do SQL",
resetSqlPreview: "Redefinir SQL",
openInSqlEditor: "Abrir no Editor",
dropProcedure: "Remover Procedimento",
dropFunction: "Remover Função",
createMongoIndex: "Criar índice",
createMongoIndexTitle: 'Criar índice: "{collection}"',
createMongoIndexFields: "Campos do índice",
createMongoIndexFieldRequired: "Selecione ou informe um campo em cada linha.",
mongoIndexAscending: "Ascendente (1)",
mongoIndexDescending: "Descendente (-1)",
createMongoIndexNamePlaceholder: "Gerado automaticamente",
createMongoIndexNameHint: "Deixe em branco para o MongoDB gerar o nome com base nos campos e tipos.",
createMongoIndexSparse: "Esparso",
batchDropIndexes: "Remover índices ({count})",
confirmDropViewTitle: "Remover Visão",
confirmDropViewMessage: 'Tem certeza de que deseja remover a visão "{name}"?',
confirmDropObjectTitle: "Remover Objeto",
confirmDropObjectMessage: 'Tem certeza de que deseja remover "{name}"?',
confirmDropColumnTitle: "Remover Coluna",
confirmDropIndexTitle: "Remover Índice",
confirmDropMongoIndexMessage: 'Tem certeza de que deseja remover o índice "{name}" da coleção "{collection}"?',
confirmDropMongoAllIndexesMessage: 'Tem certeza de que deseja remover todos os índices removíveis da coleção "{name}"?',
confirmDropMongoAllIndexesDetails: 'O MongoDB mantém o índice "_id_". Índices adicionais exigidos por shard key também podem permanecer; o resultado listará apenas os índices realmente removidos.',
confirmDropForeignKeyTitle: "Remover Chave Estrangeira",
confirmDropTriggerTitle: "Remover Gatilho",
confirmDropTableChildObjectMessage: 'Tem certeza de que deseja remover "{name}" de "{table}"?',
confirmDropBatchIndexesMessage: 'Tem certeza de que deseja remover {count} índices selecionados de "{table}"? Esta ação não pode ser desfeita.',
confirmBatchDropTitle: "Remover Objetos Selecionados",
confirmBatchDropMessage: "Tem certeza de que deseja remover {count} objetos selecionados? Esta ação não pode ser desfeita.",
confirmBatchEmptyTitle: "Esvaziar tabelas selecionadas",
confirmBatchEmptyMessage: "Tem certeza de que deseja excluir todos os dados de {count} tabelas selecionadas?",
confirmBatchTruncateTitle: "Truncar tabelas selecionadas",
confirmBatchTruncateMessage: "Tem certeza de que deseja truncar {count} tabelas selecionadas? Isso removerá todas as linhas.",
confirmDropProcedureTitle: "Remover Procedimento",
confirmDropProcedureMessage: 'Tem certeza de que deseja remover o procedimento "{name}"?',
confirmDropFunctionTitle: "Remover Função",
confirmDropFunctionMessage: 'Tem certeza de que deseja remover a função "{name}"?',
dropViewSuccess: 'Visão "{name}" removida',
dropProcedureSuccess: 'Procedimento "{name}" removido',
dropFunctionSuccess: 'Função "{name}" removida',
dropTableChildObjectSuccess: '"{name}" removido',
dropAllIndexesSuccess: 'Removidos {count} índices de "{name}"',
dropIndexesPartialFailure: "{success} índices removidos; {failed} falharam.",
createMongoIndexSuccess: 'Índice "{name}" criado em "{collection}"',
mongoIndexRefreshFailed: "Não foi possível atualizar a lista de índices após a operação: {message}",
batchDropSuccess: "{count} objetos removidos",
batchEmptySuccess: "{count} tabelas esvaziadas",
batchEmptyPartialFail: "{success} tabelas esvaziadas; {failed} falharam",
batchEmptySubmitted: "Tarefas de esvaziamento enviadas para {count} tabelas",
batchEmptySubmittedPartial: "{success} tarefas enviadas; {failed} falharam",
batchTruncateSuccess: "{count} tabelas truncadas",
emptyTableSuccess: 'Todos os dados excluídos de "{name}"',
emptyTableSubmitted: 'Tarefa de esvaziamento enviada para "{name}"',
truncateTableSuccess: 'Tabela "{name}" truncada',
duplicateStructureSuccess: 'Tabela clonada como "{name}"',
tableOperationFailed: "Falha na operação: {message}",
objectDropRefreshFailed: "Os objetos foram excluídos, mas não foi possível atualizar a barra lateral: {message}",
duplicateNameTitle: "Clonar como Nova Tabela",
duplicateNamePlaceholder: "Nome da nova tabela",
copyTable: "Copiar tabela",
pasteTable: "Colar tabela",
pasteOptionStructureAndData: "Estrutura e dados",
pasteOptionStructureOnly: "Apenas estrutura",
pasteOptionDataOnly: "Apenas dados",
pasteTableSuccess: 'Tabela colada como "{name}"',
pasteTableConfirmTitle: "Colar tabela",
pasteTableConfirmMessage: "Colar tabela da área de transferência",
batchPasteTitle: "Colar tabelas",
batchPasteSuccess: "{count} tabelas coladas com sucesso",
batchPastePartialFail: "{success} tabelas coladas, {failed} falharam",
pasteTableRefreshFailed: "As tabelas foram coladas, mas não foi possível atualizar a lista de objetos: {message}",
pasteTableCancelledAfterPartial: "A colagem foi cancelada. As tabelas criadas antes do cancelamento foram atualizadas e a área de transferência foi mantida.",
noTableToPaste: "Nenhuma tabela disponível para colar",
pasteTableClipboardUpdated: "Tabela copiada para a área de transferência",
createDatabase: "Criar Banco de Dados",
createDuckDbFile: "Criar Arquivo de Banco de Dados",
attachSqliteDatabase: "Anexar banco de dados SQLite",
dropDatabase: "Remover Banco de Dados",
confirmDropDatabaseTitle: "Remover Banco de Dados",
confirmDropDatabaseMessage: 'Tem certeza de que deseja remover o banco de dados "{name}"? Isso excluirá permanentemente o banco de dados e todos os seus dados.',
createDatabaseSuccess: 'Banco de dados "{name}" criado',
mysqlCreateDatabasePermissionHint: "A conta MySQL atual não pode criar este banco de dados. Uma conta chamada root não possui necessariamente privilégios de administrador. Use uma conta de administrador com GRANT OPTION para conceder a permissão CREATE e tente novamente.",
createDatabasePartial: 'O banco de dados "{name}" foi criado, mas algumas concessões falharam',
createDatabaseFailed: 'Não foi possível criar o banco de dados "{name}"',
createDatabaseUsers: "Conceder acesso aos usuários",
createDatabaseUsersHint: "Os usuários selecionados receberão acesso nativo completo após a criação do banco de dados.",
createDatabaseUsersSelected: "{count} selecionados",
createDatabaseUsersLoading: "Carregando usuários...",
createDatabaseUsersLoadFailed: "Não foi possível carregar os usuários: {message}",
previewCreateDatabaseSql: "Visualizar SQL",
createDatabaseSqlPreview: "Visualização do SQL de criação do banco de dados",
applyCreateDatabaseSql: "Criar e conceder",
closeCreateDatabaseResult: "Fechar",
createDatabaseStep: 'Criar banco de dados "{database}"',
createDatabaseGrantStep: 'Conceder a {user} acesso ao banco de dados "{database}"',
createDatabaseGrantObjectsStep: 'Conceder a {user} acesso a schemas e objetos em "{database}"',
createDatabaseStepSkipped: "Ignorado porque uma etapa anterior obrigatória falhou.",
editDatabaseProperties: "Editar propriedades do banco de dados",
editDatabasePropertiesTitle: 'Editar propriedades do banco de dados: "{name}"',
editDatabasePropertiesSaving: "Salvando...",
editDatabasePropertiesSuccess: 'Propriedades do banco de dados "{name}" atualizadas',
editDatabaseComment: "Comentário do banco de dados",
editDatabaseCommentPlaceholder: "Insira o comentário do banco de dados...",
createDuckDbFileSuccess: 'Arquivo de banco de dados DuckDB "{name}" criado e anexado',
createDuckDbFileDesktopOnly: "A criação de arquivos de banco de dados DuckDB só está disponível no aplicativo desktop",
attachSqliteDatabaseSuccess: 'Banco de dados SQLite "{name}" anexado',
attachSqliteDatabaseDesktopOnly: "Anexar arquivos de banco de dados SQLite só está disponível no aplicativo desktop",
dropDatabaseSuccess: 'Banco de dados "{name}" removido',
dropCollection: "Remover coleção",
confirmDropCollectionTitle: "Remover coleção",
confirmDropCollectionMessage: 'Tem certeza de que deseja remover a coleção "{name}"? Isso excluirá permanentemente a coleção e todos os seus documentos.',
dropCollectionSuccess: 'Coleção "{name}" removida',
createDatabaseNamePlaceholder: "Nome do banco de dados",
createDatabaseCharset: "Conjunto de caracteres",
createDatabaseCharsetPlaceholder: "por exemplo, utf8mb4",
createDatabaseCharsetSearchPlaceholder: "Pesquise ou digite um conjunto de caracteres",
createDatabaseCharsetEmpty: "Nenhum conjunto de caracteres encontrado",
createDatabaseCharsetLoading: "Carregando conjuntos de caracteres...",
createDatabaseCharsetCustomOption: 'Usar "{value}"',
createDatabaseCollation: "Collation",
createDatabaseCollationPlaceholder: "por exemplo, utf8mb4_unicode_ci",
createDatabaseCollationSearchPlaceholder: "Pesquise ou digite uma collation",
createDatabaseCollationEmpty: "Nenhuma collation encontrada",
createDatabaseCollationLoading: "Carregando collations...",
createDatabaseCollationCustomOption: 'Usar "{value}"',
createSchema: "Criar Schema",
dropSchema: "Remover Schema",
confirmDropSchemaTitle: "Remover Schema",
confirmDropSchemaMessage: 'Tem certeza de que deseja remover o schema "{name}"? Isso excluirá permanentemente o schema e todos os seus objetos.',
createSchemaSuccess: 'Schema "{name}" criado',
dropSchemaSuccess: 'Schema "{name}" removido',
dropDamengSchemaRequiresDifferentDba: "A conexão atual não pode remover este schema com segurança. Conecte-se com outro usuário DBA e tente novamente.",
createSchemaNamePlaceholder: "Nome do schema",
editSchemaComment: "Editar comentário",
editSchemaCommentTitle: 'Editar comentário: "{name}"',
schemaCommentPlaceholder: "Digite o comentário do schema...",
schemaCommentSaving: "Salvando...",
editSchemaCommentSuccess: 'Comentário do schema "{name}" atualizado',
manageExtension: "Gerenciar extensão...",
dropExtension: "Remover extensão",
processList: "Lista de Processos",
serverDashboard: "Painel do Servidor",
createProcedure: "Novo procedimento armazenado",
createFunction: "Nova função",
createTrigger: "Novo gatilho",
changeOpenMode: "Alterar modo de abertura",
},
visibleDatabases: {
title: "Bancos de dados visíveis",
description: 'Escolha quais bancos de dados são exibidos em "{connection}".',
searchPlaceholder: "Pesquisar bancos de dados...",
selectedCount: "{selected}/{total} selecionados",
selectAll: "Selecionar todos",
selectFiltered: "Selecionar resultados da pesquisa",
clear: "Limpar",
showAll: "Mostrar todos",
showSystemDatabases: "Mostrar bancos de dados do sistema",
save: "Salvar",
emptySelection: "Selecione pelo menos um banco de dados, ou use Mostrar todos para limpar o filtro.",
loadFailed: "Falha ao carregar bancos de dados: {message}",
},
visibleSchemas: {
title: "Filtro de Schema",
description: 'Escolha quais schemas são exibidos em "{connection}".',
searchPlaceholder: "Pesquisar schemas...",
selectedCount: "{selected}/{total} selecionados",
selectAll: "Selecionar todos",
selectFiltered: "Selecionar resultados da pesquisa",
clear: "Limpar",
showAll: "Mostrar todos",
showSystemSchemas: "Mostrar schemas do sistema",
save: "Salvar",
emptySelection: "Selecione pelo menos um schema, ou use Mostrar todos para limpar o filtro.",
loadFailed: "Falha ao carregar schemas: {message}",
},
tree: {
savedSql: "Biblioteca SQL",
userAdmin: "Usuários e Privilégios",
damengJobAdmin: "Jobs do agente",
linkedServers: "Servidores Vinculados",
materializedViews: "Visualizações Materializadas",
defaultDatabase: "Banco padrão",
columns: "Colunas",
indexes: "Índices",
foreignKeys: "Chaves estrangeiras",
triggers: "Triggers",
constraints: "Restrições",
tables: "Tabelas",
tableNameFilterActive: "filtrado",
views: "Visões",
procedures: "Procedimentos",
functions: "Funções",
sequences: "Sequências",
synonyms: "Sinônimos",
packages: "Pacotes",
partitions: "Partições",
subpartitions: "Subpartições",
childTables: "Subtabelas",
loadMore: "Carregar mais...",
objectBrowser: "Navegar no Navegador de Objetos ({count})",
extensions: "Extensões",
types: "Tipos",
gridfs: "GridFS",
buckets: "Buckets",
},
userAdmin: {
title: "Usuários e Privilégios",
unsupported: "Conexões compatíveis com MySQL e PostgreSQL são suportadas. SQL Server, Oracle e outros modelos de permissão podem ser adicionados em seguida.",
newUser: "Novo Usuário",
anonymous: "Anônimo",
roleName: "Nome da função",
allowLogin: "Permitir login",
searchUser: "Pesquisar usuário ou host",
loadingUsers: "Carregando usuários...",
loadingGrants: "Carregando permissões...",
emptyUsers: "Nenhum usuário encontrado, ou a conta atual não pode ler a lista de usuários.",
pluginUnknown: "Plugin de autenticação desconhecido",
grants: "Permissões",
noGrants: "Nenhuma permissão encontrada",
privilegeEditor: "Editor de Privilégios",
privilegeHint: "Escolha privilégios, banco de dados e tabela, então visualize o SQL antes de aplicar. * significa global ou todas as tabelas.",
database: "Banco de dados",
schema: "Schema",
table: "Tabela",
scope: "Escopo da concessão",
scopeDatabase: "Banco de dados",
scopeSchema: "Schema",
scopeTable: "Tabela",
scopeRole: "Associação de função",
memberRole: "Função membro",
privileges: "Privilégios",
grantOption: "Permitir mais concessões (WITH GRANT OPTION)",
adminOption: "Permitir gerenciamento de associação (WITH ADMIN OPTION)",
grant: "Conceder",
revoke: "Revogar",
username: "Nome de usuário",
host: "Host",
changePassword: "Alterar Senha",
newPassword: "Nova senha",
lock: "Bloquear",
unlock: "Desbloquear",
disableLogin: "Desabilitar Login",
enableLogin: "Habilitar Login",
dropUser: "Remover Usuário",
previewSql: "Visualizar SQL",
sqlPreview: "Visualização SQL",
applySql: "Aplicar SQL",
applySuccess: "Privilégios do usuário atualizados",
applyPartial: "O usuário foi criado, mas algumas concessões de banco de dados falharam",
applyFailedSummary: "A operação falhou",
applyFailed: "Execução falhou: {message}",
applyFailedUnknown: "Falha na execução",
standardUser: "Usuário padrão",
standardUserHint: "Conceda apenas os bancos de dados e privilégios selecionados abaixo.",
adminUser: "Usuário administrador",
adminUserHint: "Crie uma conta com privilégios elevados no nível da instância.",
adminUserWarning: "Esta conta pode gerenciar bancos de dados e outros usuários. Revise cuidadosamente o SQL completo antes de aplicá-lo.",
databaseAccess: "Acesso a bancos de dados",
databaseAccessHint: "Selecione os bancos de dados e configure um nível de permissão separado para cada um.",
selectedDatabaseCount: "{count} bancos de dados",
searchDatabase: "Pesquisar bancos de dados",
loadingDatabases: "Carregando bancos de dados...",
emptyDatabases: "Nenhum banco de dados encontrado",
loadDatabasesFailed: "Não foi possível carregar os bancos de dados: {message}",
prepareAuthorizationFailed: "Não foi possível preparar a autorização do banco de dados: {message}",
presetReadWrite: "Leitura/Gravação",
presetReadOnly: "Somente leitura",
presetDdl: "Somente DDL",
presetDml: "Somente DML",
presetCustom: "Personalizado",
customPrivilegeRequired: "Selecione pelo menos um privilégio.",
postgresDdlHint: "O PostgreSQL concede CREATE no banco de dados e no schema. Alterar ou excluir objetos existentes ainda requer propriedade.",
resultSuccess: "Todas as etapas foram concluídas com sucesso",
resultPartial: "Concluído parcialmente",
resultFailed: "Falha na execução",
closeResult: "Fechar",
stepCreateUser: "Criar usuário ou função",
stepGrantAdmin: "Conceder privilégios administrativos a {user}",
stepGrantDatabase: 'Conceder a {user} acesso ao banco de dados "{database}"',
stepGrantObjects: 'Conceder a {user} privilégios de schema e objeto em "{database}"',
stepGrantCurrentObjects: 'Conceder a {user} privilégios sobre {scope} existentes no schema "{schema}" de "{database}"',
stepGrantFutureObjects: 'Conceder a {user} privilégios sobre futuros {scope} criados pela função atual em "{database}"',
stepGrantFutureObjectsForOwner: 'Conceder a {user} privilégios sobre futuros {scope} criados por {owner} em "{database}"',
scopeSchemas: "schemas",
scopeTables: "tabelas",
scopeSequences: "sequências",
scopeFunctions: "funções",
stepSkipped: "Ignorado porque uma etapa anterior obrigatória falhou.",
},
damengJobAdmin: {
title: "Jobs do agente Dameng",
unsupported: "Esta página oferece suporte apenas a conexões Dameng.",
initEnvironment: "Inicializar ambiente de jobs",
environmentReady: "Ambiente de jobs inicializado",
newJob: "Novo job",
searchJob: "Pesquisar jobs",
loadFailed: "Falha ao carregar",
environmentMissingTitle: "O ambiente de jobs não foi inicializado",
environmentMissingHint: "Este banco de dados ainda não tem o ambiente de jobs SYSJOB.",
environmentMissingDescription: "Os jobs do agente Dameng dependem de tabelas e visões do sistema no schema SYSJOB. Inicialize primeiro o ambiente de jobs; normalmente são necessários privilégios de administrador.",
emptyJobs: "Nenhum job encontrado, ou a conta atual não pode ler a lista de jobs.",
emptyDetails: "Nenhuma linha de detalhe",
selectJob: "Selecione um job",
enabled: "Habilitado",
disabled: "Desabilitado",
running: "Em execução",
enable: "Habilitar",
disable: "Desabilitar",
runAsync: "Executar agora",
stopRunning: "Parar execução atual",
stopRunningDisabled: "Somente jobs em execução podem ser parados",
clearHistories: "Limpar histórico",
dropJob: "Remover",
steps: "Etapas",
schedules: "Agendamentos",
histories: "Histórico",
noDescription: "Sem descrição",
jobName: "Nome do job",
description: "Descrição",
stepName: "Nome da etapa",
scheduleName: "Nome do agendamento",
sqlCommand: "Script SQL",
scheduleMode: "Tipo de agendamento",
daily: "Diário",
once: "Uma vez",
startDate: "Data de início",
startTime: "Hora de início",
endTime: "Hora de término",
minuteInterval: "Intervalo em minutos",
previewSql: "Visualizar SQL",
sqlPreview: "Visualização SQL",
applySql: "Aplicar SQL",
applySuccess: "Operação de job aplicada",
applyFailed: "Execução falhou: {message}",
},
objects: {
all: "Todos",
tables: "Tabelas",
views: "Visões",
procedures: "Procedimentos",
functions: "Funções",
sequences: "Sequências",
packages: "Pacotes",
table: "Tabela",
partitions: "{count} partições",
view: "Visão",
procedure: "Procedimento",
function: "Função",
sequence: "Sequência",
package: "Pacote",
packageBody: "Corpo do pacote",
name: "Nome",
type: "Tipo",
rows: "Linhas",
size: "Tamanho",
statisticsHint: "Estimado pelas estatísticas do banco de dados; COUNT(*) não é executado.",
createdAt: "Criado em",
updatedAt: "Atualizado em",
source: "Código-fonte",
saveSource: "Salvar",
cancelEdit: "Cancelar",
sourceSaved: "Código-fonte salvo",
sourceSaveFailed: "Falha ao salvar código-fonte: {message}",
postgresViewColumnChangeHint:
"O PostgreSQL não permite usar CREATE OR REPLACE VIEW para remover, reordenar, renomear ou alterar o tipo das colunas existentes de uma view. Mantenha inalterados a quantidade, a ordem, os nomes e os tipos das colunas existentes; novas colunas só podem ser adicionadas ao final. Use ALTER VIEW ... RENAME COLUMN para renomear uma coluna. Para remover uma coluna, revise as dependências e recrie a view manualmente.",
schemaColumn: "Schema",
comment: "Comentário",
loadingSchemas: "Carregando schemas...",
schema: "Schema",
search: "Pesquisar tabelas, visões, funções, sequências ou procedimentos...",
loading: "Carregando objetos...",
empty: "Nenhum objeto encontrado",
selectedTables: "{count} tabelas selecionadas",
exportSelected: "Exportar selecionados",
dropSelected: "Remover selecionados",
truncateSelected: "Truncar selecionadas",
clearSelection: "Limpar seleção",
confirmBatchDropTitle: "Remover tabelas selecionadas",
confirmBatchDropMessage: "Tem certeza de que deseja remover {count} tabelas selecionadas? Esta ação não pode ser desfeita.",
confirmBatchTruncateTitle: "Truncar tabelas selecionadas",
confirmBatchTruncateMessage: "Tem certeza de que deseja truncar {count} tabelas selecionadas? Isso removerá todas as linhas.",
batchDropSuccess: "{count} tabelas removidas",
batchTruncateSuccess: "{count} tabelas truncadas",
copyTableSelected: "Copiar",
pasteTableSelected: "Colar",
toggleCheckbox: "Alternar seleção múltipla",
viewList: "Visualização em lista",
viewGrid: "Visualização em grade",
sourceReadOnly: "O código fonte é somente leitura e não pode ser editado.",
sortAsc: "Crescente",
sortDesc: "Decrescente",
sortBy: "Ordenar por",
trigger: "Gatilho",
typeDefinition: "Definição de tipo",
typeBody: "Corpo do tipo",
},
structureEditor: {
mysqlDataTypeHelp: {
tinyint: "Inteiro de 1 byte: com sinal, de -128 a 127; sem sinal, de 0 a 255.",
smallint: "Inteiro de 2 bytes: com sinal, de -32.768 a 32.767; sem sinal, de 0 a 65.535.",
mediumint: "Inteiro de 3 bytes: com sinal, de -8.388.608 a 8.388.607; sem sinal, de 0 a 16.777.215.",
int: "Inteiro de 4 bytes: com sinal, de -2.147.483.648 a 2.147.483.647; sem sinal, de 0 a 4.294.967.295.",
bigint: "Inteiro de 8 bytes: com sinal, de -2^63 a 2^63-1; sem sinal, de 0 a 2^64-1.",
decimal: "Número decimal exato; o MySQL aceita até 65 dígitos e escala 30. Use para valores monetários.",
float: "Número aproximado de precisão simples; para decimais exatos, use DECIMAL.",
double: "Número aproximado de dupla precisão; para decimais exatos, use DECIMAL.",
real: "Alias de DOUBLE por padrão; REAL_AS_FLOAT faz dele um alias de FLOAT.",
bit: "Campo de 1 a 64 bits; a largura padrão é 1.",
boolean: "Alias de TINYINT(1): 0 é falso e qualquer valor diferente de zero é verdadeiro.",
serial: "Alias prático de BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.",
date: "Data de calendário de 1000-01-01 a 9999-12-31.",
datetime: "Data e hora sem conversão de fuso; precisão fracionária de 0 a 6, padrão 0.",
timestamp: "Data e hora convertida entre o fuso da sessão e UTC; precisão fracionária de 0 a 6.",
time: "Hora ou intervalo de -838:59:59 a 838:59:59; precisão fracionária de 0 a 6.",
year: "Ano de quatro dígitos de 1901 a 2155, além de 0000.",
char: "String de tamanho fixo de até 255 caracteres, preenchida com espaços.",
varchar: "String de tamanho variável; o máximo efetivo depende da linha e do conjunto de caracteres.",
tinytext: "Texto variável de até 255 bytes; linha, charset e max_allowed_packet podem reduzi-lo.",
text: "Texto variável de até 65.535 bytes; linha, charset e max_allowed_packet podem reduzi-lo.",
mediumtext: "Texto variável de até 16.777.215 bytes; linha, charset e max_allowed_packet podem reduzi-lo.",
longtext: "Texto variável de até 4.294.967.295 bytes; linha, charset e max_allowed_packet podem reduzi-lo.",
binary: "String binária fixa de até 255 bytes, preenchida com 0x00.",
varbinary: "String binária de tamanho variável; o máximo efetivo depende do tamanho da linha.",
tinyblob: "Objeto binário de até 255 bytes; max_allowed_packet pode limitá-lo.",
blob: "Objeto binário de até 65.535 bytes; max_allowed_packet pode limitá-lo.",
mediumblob: "Objeto binário de até 16.777.215 bytes; max_allowed_packet pode limitá-lo.",
longblob: "Objeto binário de até 4.294.967.295 bytes; max_allowed_packet pode limitá-lo.",
enum: "Um valor entre até 65.535 literais; alterar a ordem pode mudar o significado armazenado.",
set: "Zero ou mais valores entre até 64 membros declarados.",
json: "Documento JSON validado; a representação e as funções dependem do produto e da versão; limitado por max_allowed_packet.",
jsonMysql: "JSON binário nativo do MySQL, com validação e funções JSON; limitado por max_allowed_packet.",
jsonMariaDb: "No MariaDB, JSON é um alias de LONGTEXT com JSON_VALID e collation utf8mb4_bin.",
nationalCharacter: "Alias de string nacional; o MySQL usa utf8mb3, que está obsoleto; prefira utf8mb4.",
geometry: "Geometria espacial; um índice SPATIAL do InnoDB requer NOT NULL e atributo SRID.",
point: "Ponto espacial; SPATIAL do InnoDB requer NOT NULL e SRID.",
linestring: "Curva espacial; SPATIAL do InnoDB requer NOT NULL e SRID.",
polygon: "Superfície espacial; SPATIAL do InnoDB requer NOT NULL e SRID.",
multipoint: "Coleção de pontos; SPATIAL do InnoDB requer NOT NULL e SRID.",
multilinestring: "Coleção de curvas; SPATIAL do InnoDB requer NOT NULL e SRID.",
multipolygon: "Coleção de polígonos; SPATIAL do InnoDB requer NOT NULL e SRID.",
geometrycollection: "Coleção de geometrias mistas; SPATIAL do InnoDB requer NOT NULL e SRID.",
inet4: "Tipo IPv4 do MariaDB disponível desde a versão 10.10; armazena o endereço em quatro bytes.",
inet6: "Tipo compatível com MariaDB para IPv6 e IPv4 mapeado.",
uuid: "Identificador universalmente único de 128 bits fornecido por servidores compatíveis.",
vector: "Tipo de vetor para similaridade ou ML; disponibilidade e dimensões dependem da versão.",
xmltype: "Tipo XML fornecido por servidores compatíveis.",
integerDisplayWidth: "A largura de exibição de inteiros, como INT(11), está obsoleta no MySQL e não limita o intervalo.",
zerofill: "ZEROFILL está obsoleto no MySQL 8 e implica UNSIGNED; formate na aplicação.",
unsignedNumeric: "UNSIGNED para DECIMAL, FLOAT ou DOUBLE está obsoleto no MySQL 8; use CHECK para valores não negativos.",
floatPrecision: "Em FLOAT(p), p de 25 a 53 seleciona DOUBLE; use DOUBLE explicitamente.",
floatingPointDisplay: "FLOAT(M,D) e DOUBLE(M,D) estão obsoletos; use FLOAT/DOUBLE sem parâmetros ou DECIMAL(M,D).",
},
postgresDataTypeHelp: {
smallint: "Inteiro com sinal de 2 bytes, de -32.768 a 32.767.",
integer: "Inteiro com sinal de 4 bytes, de -2.147.483.648 a 2.147.483.647.",
bigint: "Inteiro com sinal de 8 bytes, de -2^63 a 2^63-1.",
serial: "Sintaxe prática que cria inteiro, sequência, NOT NULL e nextval; não é único por si só e pode ter lacunas; prefira IDENTITY.",
numeric: "Decimal exato com precisão e escala; use para valores monetários e valores sem arredondamento binário.",
real: "Ponto flutuante de precisão simples de 4 bytes; FLOAT(p) de 1 a 24 o seleciona.",
double: "Ponto flutuante de dupla precisão de 8 bytes; FLOAT sem precisão é um alias e FLOAT(p) de 25 a 53 o seleciona.",
money: "Valor monetário dependente de lc_monetary; NUMERIC costuma ser mais seguro para dados portáveis.",
boolean: "Valor lógico verdadeiro, falso ou nulo; BOOL é um alias de BOOLEAN.",
char: "String fixa preenchida com espaços; CHARACTER é um alias.",
varchar: "String de tamanho variável com limite opcional; CHARACTER VARYING é um alias.",
text: "String de tamanho variável sem limite declarado; é armazenada como VARCHAR sem limite.",
bytea: "String binária de tamanho variável; TOAST pode armazenar valores grandes fora da linha.",
date: "Data de calendário sem hora nem fuso horário.",
time: "Hora sem fuso horário, com precisão fracionária opcional.",
timetz: "Hora com deslocamento UTC; tem uso limitado, prefira timestamptz para representar um instante.",
timestamp: "Data e hora sem conversão de fuso para valores locais.",
timestamptz: "Instante armazenado em UTC e exibido no fuso da sessão; não preserva o fuso original.",
interval: "Duração em meses, dias e microssegundos; unidades de calendário não têm duração fixa.",
uuid: "Identificador universalmente único de 128 bits.",
json: "Texto JSON na representação original; é validado ao ser analisado, mas costuma ser mais lento que JSONB.",
jsonb: "JSON binário decomposto para processamento e índices; não preserva espaços, ordem nem chaves duplicadas.",
xml: "Valor XML com validação de documento ou conteúdo conforme a opção.",
bit: "String de bits fixa ou variável; BIT VARYING e VARBIT são aliases de tamanho variável.",
tsvector: "Lexemas normalizados para busca de texto completo; normalmente indexados com GIN ou GiST.",
tsquery: "Consulta booleana de texto completo avaliada contra tsvector.",
cidr: "Rede IPv4 ou IPv6 com os bits de host forçados a zero.",
inet: "Host IPv4 ou IPv6 com máscara opcional; ao contrário de CIDR, pode ter bits de host diferentes de zero.",
macaddr: "Endereço MAC; MACADDR usa 6 bytes e MACADDR8 usa 8 bytes.",
geometry: "Geometria plana bidimensional sem SRID; use PostGIS para coordenadas geográficas e operações espaciais avançadas.",
range: "Intervalo contínuo com limites inclusivos ou exclusivos; use multirange para intervalos separados.",
oid: "Identificador de objeto sem sinal do sistema; não é uma chave primária estável para aplicações.",
array: "Array PostgreSQL de qualquer tipo de elemento, inclusive multidimensional; as dimensões declaradas não são impostas.",
multirange: "Conjunto de intervalos não sobrepostos; o PostgreSQL normaliza membros adjacentes ou sobrepostos.",
jsonpath: "Expressão de caminho SQL/JSON usada em consultas e predicados JSONB.",
pgLsn: "Posição do WAL para replicação e recuperação; não é um número de sequência da aplicação.",
pgSnapshot: "Instantâneo de visibilidade de transações para operações de banco de dados, não para dados gerais.",
},
sqliteDataTypeHelp: {
integer: "Afinidade INTEGER; uma coluna comum não impõe essa classe de armazenamento. INTEGER PRIMARY KEY exato é um alias de rowid.",
real: "Afinidade REAL com IEEE 754; não é adequada para valores monetários exatos.",
text: "Afinidade TEXT; VARCHAR(n) e CHAR(n) não impõem n; use CHECK se o tamanho for importante.",
blob: "Afinidade BLOB: armazena bytes sem conversão.",
numeric: "A afinidade NUMERIC converte texto numérico primeiro em INTEGER e depois em REAL; DATE, DATETIME e TIME também a usam.",
},
title: "Editar estrutura da tabela",
createTitle: "Criar tabela",
editTabTitle: "Editar: {tableName}",
tableName: "Nome da tabela",
refresh: "Atualizar estrutura",
density: "Densidade",
densityCompact: "Compacta",
densityStandard: "Padrão",
densityComfortable: "Confortável",
columns: "Colunas",
indexes: "Índices",
foreignKeys: "Chaves estrangeiras",
triggers: "Triggers",
ddl: "DDL",
addColumn: "Adicionar coluna",
columnTemplates: "Inserir campos predefinidos",
configureColumnTemplates: "Configurar campos predefinidos",
presetFieldsTemplate: "Conjunto de campos predefinidos",
searchColumns: "Pesquisar coluna/comentário",
nextColumnMatch: "Ir para a próxima coluna correspondente",
searchIndexes: "Pesquisar índice",
nextIndexMatch: "Ir para o próximo índice correspondente",
addIndex: "Adicionar índice",
addForeignKey: "Adicionar chave estrangeira",
addTrigger: "Adicionar trigger",
columnName: "Coluna",
dataType: "Tipo",
typePlaceholder: "Selecione ou digite...",
noMatchingType: "Nenhum tipo correspondente",
length: "Comprimento",
lengthUnit: "Unidade de comprimento",
unitPlaceholder: "Unidade",
nullable: "Permite nulo",
primaryKey: "Chave primária",
defaultValue: "Padrão",
defaultValuePresets: "Predefinições de valor padrão",
comment: "Comentário",
characterSet: "Conjunto de caracteres",
charsetPlaceholder: "Charset",
collation: "Collation",
collationPlaceholder: "Collation",
editComment: "Editar comentário",
commentPlaceholder: "Insira o comentário da coluna...",
tableCommentPlaceholder: "Insira o comentário da tabela...",
tableCommentUnsupported: "Comentários de tabela não são suportados por este banco de dados",
actions: "Ações",
indexName: "Índice",
indexColumns: "Colunas",
indexColumnsPlaceholder: "Selecione as colunas...",
unique: "Único",
indexType: "Tipo",
includedColumns: "Incluídas",
includedColumnsPlaceholder: "Selecione as colunas...",
filter: "Filtro",
foreignKeyName: "Chave estrangeira",
referencedSchema: "Schema ref.",
referencedTable: "Tabela ref.",
referencedColumn: "Coluna ref.",
onDelete: "Ao excluir",
onUpdate: "Ao atualizar",
defaultAction: "Padrão",
triggerName: "Trigger",
triggerStatement: "Comando do trigger",
primary: "Primária",
drop: "Remover",
restore: "Restaurar",
remove: "Remover",
moveColumnUp: "Mover coluna para cima",
moveColumnDown: "Mover coluna para baixo",
dragColumn: "Arraste para reordenar colunas",
localColumnOrderNotice: "A ordem das colunas é salva apenas localmente e não altera a estrutura do banco de dados.",
yes: "Sim",
no: "Não",
emptyReadonly: "Nenhum registro",
sqlPreview: "Pré-visualização do SQL",
collapseSqlPreview: "Recolher pré-visualização do SQL",
expandSqlPreview: "Expandir pré-visualização do SQL",
noChanges: "Nenhuma alteração",
apply: "Aplicar alterações",
ready: "Pronto",
saved: "Estrutura da tabela atualizada",
copySql: "Copiar SQL",
sqliteRebuildNotice: "O SQLite mantém um snapshot de dados inerte como backup, reconstrói a tabela em uma única transação e força CAST nas colunas alteradas. Valores não representáveis podem se tornar 0/0.0; em caso de falha, todas as alterações são revertidas.",
extendedProperties: "Estendidas",
autoIncrement: "Auto incremento",
onUpdateCurrentTimestamp: "Atualizar hora automaticamente",
identity: "Identidade",
identityGeneration: "Geração",
identitySeed: "Valor inicial",
identityIncrement: "Incremento",
sqlServerIdentityTypeHint: "A identidade do SQL Server só aceita tinyint, smallint, int, bigint e decimal/numeric com escala 0",
},
diagram: {
title: "Diagrama de relacionamentos",
open: "Ver diagrama",
selectConnection: "Selecionar conexão",
selectDatabase: "Selecionar banco de dados",
selectSchema: "Selecionar schema",
searchTables: "Pesquisar tabelas, colunas, chaves...",
refresh: "Atualizar diagrama",
loading: "Lendo relacionamentos...",
loadingProgress: "Lendo relacionamentos... {loaded}/{total}",
partialError: "Metadados ignorados para {count} tabelas que falharam ao carregar",
selectTarget: "Selecione uma conexão e um banco de dados",
empty: "Nenhuma tabela para exibir",
noMatches: "Nenhuma tabela correspondente",
tablesCount: "{count} tabelas",
relationshipsCount: "{count} relacionamentos",
tableMode: "Visão de tabelas",
engineeringMode: "ER de engenharia",
modelRelationships: "Relacionamentos Modelados",
copyJoinSql: "Copiar SQL",
customRelationshipsCount: "{count} modelados",
relationshipName: "Nome",
relationshipNamePlaceholder: "Opcional",
sourceTable: "Tabela de origem",
sourceColumn: "Coluna de origem",
targetTable: "Tabela de destino",
targetColumn: "Coluna de destino",
cardinality: "Cardinalidade",
cardinalityOneToMany: "Origem 1 · Destino N",
cardinalityManyToOne: "Origem N · Destino 1",
cardinalityManyToMany: "Origem N · Destino N",
cardinalityOneToOne: "Origem 1 · Destino 1",
addRelationship: "Adicionar relacionamento",
removeRelationship: "Remover relacionamento",
relationshipIncomplete: "Selecione as colunas de origem e destino",
relationshipSelfInvalid: "Um relacionamento não pode ter como alvo a mesma coluna",
relationshipExists: "Este relacionamento já existe",
relationshipAdded: "Relacionamento adicionado",
noJoinSql: "Nenhum SQL de relacionamento para copiar",
allTables: "Todas as tabelas",
relatedTables: "Tabelas relacionadas",
moreColumns: "+ {count} colunas",
exportSvg: "Exportar SVG",
exportedSvg: "SVG exportado",
exportSvgFailed: "Falha ao exportar SVG: {message}",
zoomIn: "Aumentar zoom",
zoomOut: "Diminuir zoom",
resetLayout: "Redefinir layout",
refreshConfirm: "Atualizar recarregará a estrutura da tabela e redefinirá o layout do canvas e o histórico de desfazer. Os relacionamentos de modelagem salvos localmente não serão afetados. Continuar?",
layers: "Camadas",
autoMatch: "Correspondência automática",
autoLayout: "Layout automático",
matchRelationshipsCount: "{count} correspondências",
cardinalityDirected: "Origem {source} · Destino {target}",
matchPickCardinality: "Selecione a cardinalidade antes de confirmar a correspondência (1:1 / 1:N / N:1 / N:N).",
manualAddRelationship: "Adicionar manualmente",
confirmMatch: "Confirmar",
ignoreMatch: "Ignorar",
exportPng: "Exportar PNG",
exportJson: "Exportar JSON",
exportDbml: "Exportar DBML",
exportMermaid: "Exportar Mermaid",
export: "Exportar",
exportedFormat: "{format} exportado",
exportFailed: "Falha ao exportar {format}: {message}",
fitView: "Ajustar ao canvas",
resetZoom: "Redefinir zoom",
undo: "Desfazer",
redo: "Refazer",
fullscreen: "Tela cheia",
exitFullscreen: "Sair da tela cheia",
addLayer: "Adicionar camada",
noLayersYet: "Nenhuma camada ainda, clique em + para criar",
layoutFree: "Livre",
layoutAuto: "Automático",
layerLock: "Bloquear camada (sem layout automático dentro da camada)",
layerUnlock: "Desbloquear camada (permite layout automático dentro da camada)",
layerLocked: "Bloqueada",
layerUnlocked: "Desbloqueada",
hideLayer: "Ocultar camada",
showLayer: "Mostrar camada",
deleteLayer: "Excluir camada",
layerHiddenCannotFocus: "A camada está oculta. Mostre-a antes de centralizar no canvas.",
createTable: "Nova tabela",
create: "Criar",
syncToDatabase: "Sincronizar com o banco de dados",
syncDraftCount: "Serão sincronizadas {count} alterações (nova tabela / alterar tabela / excluir tabela)",
executeSync: "Executar",
syncing: "Sincronizando…",
buildingSql: "Gerando SQL…",
noSqlYet: "Nenhum SQL ainda",
copySql: "Copiar SQL",
tableName: "Nome da tabela",
tableNameRequired: "Informe o nome da tabela",
tableNameExists: "Já existe uma tabela com esse nome",
assignLayer: "Camada",
noLayer: "Sem camada",
withDefaultIdPk: "Incluir chave primária id padrão",
inspectorTable: "Tabela",
inspectorRelationship: "Relacionamento",
fieldComment: "Comentário",
fields: "Campos",
tabFields: "Campos",
tabIndexes: "Índices",
addIndex: "Adicionar índice",
indexName: "Nome do índice",
indexUnique: "UNIQUE",
indexColumns: "Colunas",
noIndexesYet: "Nenhum índice ainda",
indexesNotSupported: "O banco de dados atual não suporta criar índices no editor de diagramas",
addField: "Adicionar campo",
deleteField: "Excluir campo",
undoDropField: "Desfazer exclusão do campo",
noFieldsYet: "Nenhum campo ainda. Adicione antes de sincronizar",
deleteDraftTable: "Excluir tabela de rascunho",
deleteLiveTable: "Excluir tabela",
deleteLiveTableHint: "Marcada para exclusão. O DROP TABLE será executado na próxima sincronização com o banco de dados. Você pode desfazer para restaurar.",
deleteLiveTableConfirm: "Confirmar marcação desta tabela para exclusão? O DROP TABLE será executado durante a sincronização.",
liveTableReadOnly: "Tabela no banco — edite no editor de estrutura da tabela",
liveTableAddColumnsHint: "Você pode adicionar campos (ALTER ADD) ou marcar campos existentes para exclusão (ALTER DROP) e depois sincronizar. Para alterar tipos, use o editor de estrutura da tabela.",
liveTableIndexesReadOnly: "Índices de tabelas no banco devem ser alterados no editor de estrutura da tabela",
pendingColumnsBadge: "Alterações pendentes de sincronização",
pendingDropColumnBadge: "A excluir",
pendingDropTableBadge: "Tabela a excluir",
source: "Origem",
target: "Destino",
emptyDesignHint: "Nenhuma tabela ainda. Você pode criar camadas e tabelas, editar campos no painel de propriedades e sincronizar com o banco de dados ao concluir.",
removeFromLayer: "Remover da camada",
addTables: "Adicionar tabelas",
tabSelectExisting: "Selecionar existente",
tabCreateTable: "Nova tabela",
multiSelect: "Seleção múltipla",
closeMultiSelect: "Fechar",
selectAll: "Selecionar tudo",
clearSelection: "Limpar seleção",
tablesInOtherLayers: "Tabelas em outras camadas",
filterTables: "Filtrar tabelas...",
noMatchingTables: "Nenhuma tabela correspondente",
addSelectedCount: "Adicionar {count} selecionados",
layerNameTooLong: "O nome da camada não pode exceder 50 caracteres",
layerNameInvalid: "O nome da camada pode conter caracteres chineses, letras, números, espaços, sublinhados, hífens e pontos finais.",
layerNameExists: "O nome da camada já existe",
total: "Total",
confirmed: "Confirmado",
pending: "Pendente",
conflicts: "Conflitos",
conflict: "Conflito",
ignored: "Ignorado",
confirmAll: "Confirmar tudo",
ignoreAll: "Ignorar tudo",
clearAll: "Limpar tudo",
confidenceHigh: "Alta",
confidenceMedium: "Média",
confidenceLow: "Baixa",
noInferred: "Nenhum relacionamento inferido ainda",
editRelationship: "Editar",
saveRelationship: "Salvar",
deleteRelationship: "Excluir",
confirmDeleteRelationship: "Confirmar exclusão deste relacionamento?",
confirmDeleteRelationshipAction: "Confirmar exclusão",
confirmRelationship: "Confirmar",
ignoreRelationship: "Ignorar",
relationshipKindFk: "Chave estrangeira",
relationshipKindCustom: "Personalizado",
relationshipKindInferred: "Inferido",
relationshipReadOnlyFk: "Este relacionamento vem de uma restrição de chave estrangeira do banco de dados e não pode ser editado aqui.",
relationshipUpdated: "Relacionamento atualizado",
createTableNotSupported: "O banco de dados atual não suporta criar nova tabela",
structureSyncNotSupported: "O banco de dados atual não suporta sincronizar a estrutura da tabela a partir do diagrama",
addColumnNotSupported: "O banco de dados atual não suporta adicionar coluna",
dropColumnNotSupported: "O banco de dados atual não suporta excluir coluna",
dropTableNotSupported: "O banco de dados atual não suporta excluir tabela do diagrama",
},
etcd: {
prefixPlaceholder: "Buscar caminho da Key, por exemplo /app/ ou serviço",
newKey: "Nova chave",
loadingKeys: "Carregando chaves...",
empty: "Nenhuma chave encontrada",
loadMore: "Carregar mais",
selectKey: "Selecione uma chave para ver seu valor",
loadingValue: "Carregando valor...",
notFound: "Chave não encontrada",
edit: "Editar",
editKey: "Editar Chave",
delete: "Excluir",
deleteTitle: "Excluir chave etcd",
keyPlaceholder: "/caminho/para/chave",
keyRequired: "Chave é obrigatória",
ttl: "TTL (segundos)",
ttlPlaceholder: "Opcional; vazio significa sem expiração",
ttlInvalid: "O TTL deve ser um número inteiro positivo",
ttlUnavailable: "Atualize o Agent do etcd e reconecte para configurar o TTL.",
expiryMode: "Política de expiração",
expiryPermanent: "Permanente",
expiryPermanentHint: "Não associa um lease; a chave não expirará automaticamente",
expiryTtl: "Tempo de vida (TTL)",
expiryTtlHint: "Cria um lease temporário que expira após o período configurado",
expiryLease: "Vincular lease",
expiryLeaseHint: "Vincula a chave a um Lease ID existente",
leaseId: "Lease ID",
leasePlaceholder: "Informe um Lease ID existente",
leaseInvalid: "O Lease ID deve ser um inteiro positivo válido de 64 bits",
valueContent: "Conteúdo do valor",
keyAlreadyExists: "Já existe uma Key com esse nome. Escolha outro nome ou feche esta janela e edite a Key existente.",
conflict: "Esta Key foi alterada depois de ser carregada. Atualize e tente novamente.",
saved: "Chave salva",
deleted: "Chave excluída",
base64Readonly: "Edite valores Base64 no modo Base64.",
rename: "Renomear",
clone: "Clonar",
copyKey: "Copiar chave",
export: "Exportar",
import: "Importar",
sync: "Sincronizar",
history: "Histórico",
restore: "Restaurar esta versão",
compare: "Comparar",
format: "Formato do valor",
savePreview: "Revisar alterações do valor",
globalSearch: "Busca global",
searchPrefix: "Limitar ao prefixo (opcional)",
searchAll: "Chave e valor",
searchPlaceholder: "Buscar no conteúdo da chave ou do valor",
searchProgress: "{scanned} chaves analisadas, {matched} correspondências",
exportResults: "Exportar resultados",
clearSearchResults: "Limpar resultados",
exported: "{count} chaves exportadas",
importPreview: "Prévia da importação",
syncPreview: "Prévia da sincronização",
targetConnection: "Selecione a conexão etcd de destino",
targetReadOnly: "A conexão de destino é somente leitura; não é possível aplicar importações nem sincronizações.",
mirrorDelete: "Excluir chaves extras do destino (espelho)",
mirrorDeleteWarning: "O modo espelho exclui chaves de destino ausentes na origem. Revise cada exclusão antes de aplicar.",
preparingPreview: "Preparando prévia de alterações em uma revisão fixa...",
operation: "Operação",
reason: "Motivo",
selectedOperations: "{count} operações selecionadas",
applyOperations: "Aplicar operações",
transferApplied: "{count} operações aplicadas",
operationApplied: "Aplicada com sucesso",
transferPartiallyApplied: "{count} operações foram aplicadas antes de o lote parar: {error}. A prévia foi atualizada; tente novamente apenas as operações restantes.",
transferPartialRefreshFailed: "{count} operações foram aplicadas antes de o lote parar: {error}. A atualização da prévia também falhou: {previewError}. Feche e reabra a prévia antes de tentar novamente.",
targetChangedDuringTransfer: "A conexão de destino mudou durante a execução do lote",
dashboard: {
title: "Painel do etcd",
description: "Observação baseada nos endpoints acessíveis pelo cliente; não é uma verificação autoritativa da integridade do quorum.",
autoRefreshOff: "Atualização automática desativada",
refresh: "Atualizar",
retry: "Verificar novamente",
loadFailed: "Não foi possível carregar o Painel do etcd",
agentUpgradeTitle: "O Painel não está disponível com o Agent do etcd atual",
agentUpgradeDescription: "Esta conexão ainda usa um Agent antigo que não consegue ler o estado do cluster. A navegação e edição de chaves continuam disponíveis.",
agentUpgradeSteps: "Atualize o Agent do etcd no Gerenciador de drivers, desconecte e reconecte esta conexão. Depois selecione “Verificar novamente”.",
observedHealth: "Integridade observada",
reachableMembers: "Membros acessíveis",
keyCount: "Quantidade de chaves",
backendSize: "Tamanho do backend",
fragmentation: "Fragmentação estimada",
cluster: "cluster",
revision: "revisão",
leader: "líder",
noAlarms: "Nenhum alarme ativo observado",
prometheusMetrics: "Métricas de execução do Prometheus",
prometheusDescription: "Métricas estáveis coletadas do /metrics do etcd. As taxas são calculadas entre duas amostras consecutivas.",
collectedAt: "Coletado às",
requests: "Taxa de solicitações gRPC",
requestFailureRate: "Taxa de falha das solicitações",
proposals: "Propostas Raft",
proposalLag: "Diferença entre confirmadas e aplicadas",
pending: "pendentes",
diskLatency: "Latência de persistência em disco",
walFsync: "Média de fsync do WAL",
backendCommit: "Média de commit do backend",
networkTraffic: "Tráfego de rede do cliente",
peerTraffic: "Tráfego entre pares",
processResources: "Recursos do processo",
runtime: "Runtime do Go",
goroutines: "goroutines",
leaderChanges: "Total de mudanças de líder",
failedProposals: "Total de propostas com falha",
failedProposalRate: "Taxa de falha",
rateNeedsRefresh: "Atualize novamente para calcular as taxas em tempo real",
storageQuota: "Uso da cota do backend",
uptime: "Tempo de atividade do processo",
consensusReliability: "Consenso e confiabilidade",
leadership: "Liderança",
knownPeers: "pares conhecidos",
proposalState: "Estado das propostas",
raftFailures: "Falhas do Raft",
revisionState: "Revisão MVCC",
compactRevision: "Revisão compactada",
requestLoad: "Carga de solicitações",
grpcMethod: "Método gRPC",
total: "Total",
rate: "Taxa",
failures: "Falhas",
avgLatency: "Latência média",
storageDisk: "Armazenamento e disco",
databaseState: "Estado do banco de dados",
inUse: "em uso",
openReadTransactions: "Transações de leitura abertas",
backgroundTasks: "Tarefas em segundo plano",
watchState: "Estado dos watches",
watchers: "Watchers",
watchStreams: "Fluxos de watch",
events: "Taxa de eventos",
slowPending: "Lentas / pendentes",
leaseState: "Ciclo de vida dos leases",
granted: "Taxa de concessão",
renewed: "Taxa de renovação",
revokedExpired: "Revogados / expirados",
averageTtl: "TTL médio",
runtimeResources: "Recursos de execução",
memory: "Memória",
processNetworkGc: "Rede do processo e GC",
metricsUnavailable: "As métricas do Prometheus não estão disponíveis",
metricsUnavailableHint: "O estado do cluster continua disponível. O DBX solicita /metrics diretamente ao endpoint etcd atual; confirme se a URL resultante pode ser acessada pelo aplicativo DBX.",
endpointMember: "Endpoint / membro",
role: "Função",
version: "Versão",
raftTermApplied: "Termo Raft / aplicado",
dbSizeInUse: "Tamanho do BD / em uso",
latency: "Latência",
status: "Status",
learner: "aprendiz",
follower: "seguidor",
reachable: "acessível",
unreachable: "inacessível",
loading: "Carregando observação do cluster…",
health: {
unknown: "desconhecido",
critical: "crítico",
warning: "aviso",
healthy: "saudável",
},
lag: "Atraso",
slowApply: "Aplicação lenta",
putBytes: "Bytes gravados",
},
watch: "Monitor",
lease: "Lease",
key: "Chave",
keyOrPrefix: "Chave ou Prefixo",
selectExistingLease: "Selecionar Lease Existente",
enterLeaseId: "ou digitar o ID do Lease manualmente",
leasePickerHint: "Pode selecionar de Leases da sessão atual ou digitar o ID do Lease manualmente.",
noLeasePickerHint: "A sessão atual não possui Leases selecionáveis. Pode digitar o ID manualmente e salvar.",
registryWarning: "Esta Chave está em /registry/, namespace normalmente usado por componentes do plano de controle. Verifique a propriedade e o impacto antes de salvar.",
access: {
users: "Usuários",
roles: "Funções",
title: "Controle de Acesso",
description: "Gerenciar usuários nativos, funções e permissões de Chave do etcd",
readOnly: "Conexão somente leitura",
refresh: "Atualizar",
userCount: "Usuários ({count})",
roleCount: "Funções ({count})",
createUser: "Criar usuário",
createRole: "Criar função",
noUsers: "Nenhum usuário etcd criado",
noRoles: "Nenhuma função etcd criada",
selectUser: "Selecione um usuário à esquerda para ver funções e ações de credenciais",
selectRole: "Selecione uma função à esquerda para ver e gerenciar permissões",
loadingUser: "Carregando detalhes do usuário...",
loadingRole: "Carregando detalhes da função...",
userRolesSummary: "Associado a {count} funções. Senha não é lida, exibida ou salva no cliente.",
changePassword: "Alterar senha",
deleteUser: "Excluir usuário",
roleAssignments: "Atribuições de função",
roleAssignmentHint: "As funções determinam quais Chaves este usuário pode ler e escrever.",
revokeAssociation: "Revogar associação",
noAssignedRoles: "Este usuário ainda não possui funções atribuídas.",
assignRole: "Associar nova função",
assignRoleHint: "Selecione uma função ainda não associada e conceda a este usuário.",
selectRoleOption: "Selecionar função",
noAssignableRoles: "Nenhuma função disponível para associar",
grantRole: "Conceder função",
rolePermissionHint: "Permissões podem abranger todas as Chaves, Prefixo ou Chave exata; Prefixo é salvo com intervalo semiaberto do etcd.",
grantPermission: "Conceder permissão",
deleteRole: "Excluir função",
resource: "Recurso",
permission: "Permissão",
allKeys: "Todas as Chaves",
exactKey: "Chave exata",
allKeyspace: "Todo o Keyspace",
edit: "Editar",
revoke: "Revogar",
noPermissions: "Esta função ainda não possui permissões concedidas.",
createEtcdUser: "Criar usuário etcd",
username: "Nome de usuário",
password: "Senha",
initialRoles: "Funções iniciais",
optional: "Opcional",
initialRolesHint: "Após a criação, as funções selecionadas serão associadas imediatamente.",
selectedCount: "Selecionado {count}",
noRolesForNewUser: "Não há funções atualmente. Crie o usuário primeiro e depois associe funções nos detalhes do usuário.",
createAndAssignRoles: "Criar e associar {count} funções",
createUserAction: "Criar usuário",
createEtcdRole: "Criar função etcd",
roleName: "Nome da função",
initialPermission: "Permissão inicial",
initialPermissionHint: "Se preenchido, esta permissão será concedida imediatamente ao criar a função.",
keyOrPrefixPlaceholder: "Chave ou Prefixo",
allKeysHint: "Concederá acesso a todas as Chaves.",
createAndGrantPermission: "Criar e conceder permissão",
read: "Leitura",
write: "Escrita",
readWrite: "Leitura e escrita",
passwordHint: "A nova senha será enviada apenas nesta requisição e será limpa da interface imediatamente após o envio.",
newPassword: "Nova senha",
continue: "Continuar",
editPermission: "Editar permissões da função",
permissionUpdateHint: "etcd Auth não fornece atualização atômica; ao salvar, as permissões antigas são revogadas primeiro, depois as novas são concedidas. Se a concessão falhar, o sistema tentará restaurar as antigas.",
saveChanges: "Salvar alterações",
dangerousTitle: "Confirmar operação perigosa",
dangerousHint: "Esta operação modificará dados de autenticação do etcd diretamente. Digite o texto de confirmação abaixo para continuar.",
confirmationPlaceholder: "Digite o texto de confirmação",
confirmExecute: "Confirmar e executar",
cancel: "Cancelar",
preflightRequired: "Esta alteração de permissão requer nova credencial de confirmação. Clique novamente em 'Salvar alterações' e complete a confirmação.",
preflightExpired: "A confirmação expirou. Clique novamente em 'Salvar alterações' e complete a confirmação.",
preflightMismatch: "O conteúdo da confirmação ou as permissões a serem alteradas mudaram. Reconfirme e tente novamente.",
confirmationMismatch: "Texto de confirmação inconsistente. Tente novamente.",
createdUser: "Usuário {user} criado",
createdUserWithRoles: "Usuário {user} criado com {count} funções associadas",
createdUserRolesFailed: "Usuário criado, mas associação de funções iniciais falhou: {error}",
createdRole: "Função {role} criada",
createdRoleWithPermission: "Função {role} criada com permissão inicial concedida",
createdRolePermissionFailed: "Função criada, mas concessão de permissão inicial falhou: {error}",
deletedUser: "Usuário {user} excluído",
deletedRole: "Função {role} excluída",
passwordUpdated: "Senha de {user} atualizada",
roleGranted: "Função {role} concedida a {user}",
roleRevoked: "Função {role} revogada de {user}",
permissionGranted: "Permissão concedida à função",
permissionUpdated: "Permissão da função atualizada",
permissionRevoked: "Permissão da função revogada",
},
admin: {
maintenance: "Manutenção",
watch: "Monitor",
lease: "Lease",
refresh: "Atualizar",
maintenanceTitle: "Manutenção de histórico e espaço em disco",
maintenanceDescription: "Primeiro, limpe as versões históricas não utilizadas conforme necessário, depois decida se recupera o espaço em disco ocupado pelos arquivos de backend. Essas duas operações não são substitutas.",
currentRevision: "Revisão atual {revision}",
reachableMembers: "Membros alcançáveis {reachable} / {total}",
compactTitle: "Limpar versões históricas",
compactDescription: "Exclui o histórico MVCC anterior à revisão especificada. Os valores atuais da Chave não são excluídos, mas leituras de revisões passadas e Watches iniciados de posições anteriores não serão recuperáveis.",
compactDiskHint: "Não libera espaço em disco. Se precisar reduzir o arquivo de backend, execute a desfragmentação após a compactação.",
compactRevision: "Ponto inicial de retenção do histórico (revisão)",
compactPlaceholder: "Exemplo: {revision}",
compactRequired: "Digite a revisão a partir da qual manter o histórico.",
compactDone: "Limpeza de versões históricas concluída",
compactInputHint: "Exclui o histórico anterior a esta revisão. Confirme que essas versões históricas não são mais necessárias antes de continuar.",
compactAction: "Compactar histórico",
defragTitle: "Recuperar espaço em disco",
defragDescription: "A desfragmentação reescreve os arquivos de backend de cada membro, devolvendo o espaço em disco recuperável ao sistema operacional. O sistema processa os followers em série primeiro, depois o leader atual.",
defragWarning: "Cada membro fica brevemente indisponível durante a desfragmentação. Os membros são processados um por vez, com o leader atual por último; confirme primeiro que o cluster está saudável.",
defragReachableMembers: "Processar {count} membros acessíveis",
leaderLast: "Leader por último: {endpoint}",
defragAction: "Recuperar espaço em {count} membros",
defragDone: "Recuperação de espaço em disco concluída",
newWatch: "Novo monitor",
editWatch: "Editar monitor",
watchSearch: "Filtrar monitores",
watchKeyPlaceholder: "Exemplo: /apps/payment/config",
watchScope: "Escopo do monitor",
prefix: "Prefixo",
exact: "Chave exata",
watchKeyHint: "Recebe apenas eventos de criação, alteração de valor e exclusão desta Chave.",
watchPrefixHint: "Recebe eventos de todas as Chaves que começam com este prefixo.",
watchSessionHint: "O monitor é executado apenas na sessão de conexão atual; ele parará automaticamente ao fechar a conexão ou sair da página do etcd. Cada conexão pode executar no máximo 4 monitores simultaneamente.",
watchCount: "{count} criados",
runningWatchCount: "{count} em execução",
watchList: "Monitores criados",
itemCount: "{count} itens",
scope: "Escopo",
status: "Status",
actions: "Ações",
createWatch: "Criar e iniciar monitor",
saveWatch: "Salvar configuração",
running: "Em execução",
stopped: "Parado",
error: "Erro",
editWatchTitle: "Editar monitor",
stopWatch: "Parar monitor",
startWatch: "Iniciar monitor",
deleteWatch: "Excluir monitor",
noMatchingWatches: "Nenhum monitor correspondente encontrado",
noWatches: "Ainda não há monitores.",
eventStream: "Fluxo de eventos",
eventCount: "{count} eventos",
filter: "Filtrar",
event: "Evento",
create: "Criar",
update: "Alteração de valor",
delete: "Excluir",
noFilteredEvents: "Nenhum evento corresponde ao filtro atual",
waitingEvents: "Aguardando alterações na Chave...",
watchNotRunning: "Este monitor não está em execução no momento.",
selectWatch: "Selecione um monitor à esquerda para ver o fluxo de eventos",
leaseDescription: "Após a expiração do Lease, suas Chaves anexadas são excluídas automaticamente.",
grantLease: "Conceder Lease",
renew: "Renovar",
revoke: "Revogar",
previousPage: "Anterior",
nextPage: "Próxima",
leasePageSize: "Até {count} itens por página",
grantedTtl: "Concedido {ttl}s",
noKnownLeases: "Nenhum Lease conhecido na sessão atual",
loadingLease: "Carregando detalhes do Lease...",
keepalive: "Com a página aberta, renovação automática a cada TTL / 3",
attachedKeys: "Chaves anexadas",
noAttachedKeys: "Nenhuma Chave anexada",
attachedKeysTruncated: "Resultados de Chaves anexadas truncados, máximo de 256 itens exibidos.",
selectLease: "Selecione um Lease para ver detalhes",
leasePartial: "O cliente ou servidor etcd atual não suporta enumeração de Leases; apenas Leases criados ou acessados nesta sessão são mostrados; detalhes e TTL vêm do servidor.",
grantNewLease: "Conceder novo Lease",
ttl: "TTL (segundos)",
ttlPlaceholder: "Exemplo: 60",
ttlHint: "Tempo de vida do Lease, deve ser um inteiro positivo.",
customLeaseId: "ID de Lease personalizado",
customLeasePlaceholder: "Deixe em branco ou 0 para atribuição automática pelo etcd",
customLeaseHint: "Use um número inteiro decimal. etcd rejeitará a criação se o ID já existir.",
confirmationHint: "Esta é uma operação de manutenção de cluster que não pode ser desfeita automaticamente. Confirme o impacto abaixo para continuar.",
confirmationCredentialHint: "Digite o texto de confirmação abaixo. A credencial de confirmação é válida apenas para esta operação.",
confirmationPlaceholder: "Digite o texto de confirmação",
confirmationPrompt: "Esta operação pode afetar o cluster etcd. Digite o texto de confirmação:\n{confirmationText}",
confirmExecute: "Confirmar e executar",
cancel: "Cancelar",
noReachableMembers: "Nenhum membro alcançável, não é possível executar a desfragmentação no momento.",
defragStopped: "Recuperação de espaço em disco interrompida: sucesso {succeeded}, falha {failed}, não executado {notExecuted}",
defragCompleted: "Recuperação de espaço em disco concluída: sucesso {succeeded}/{total}",
leaseRenewed: "Lease {id} renovado",
leaseGrantCancelled: "Aguardando cancelado; etcd pode ainda estar processando a solicitação de concessão. Atualize para confirmar se o Lease foi criado.",
leaseCreated: "Lease {id} criado",
},
},
zookeeper: {
prefixPlaceholder: "Prefixo de caminho, ex.: /app/",
newKey: "Novo Znode",
loadingKeys: "Carregando znodes...",
empty: "Nenhum znode encontrado",
loadMore: "Carregar mais",
selectKey: "Selecione um znode para ver seu valor",
loadingValue: "Carregando valor...",
notFound: "Znode não encontrado",
edit: "Editar",
editKey: "Editar Znode",
delete: "Excluir",
deleteTitle: "Excluir znode do ZooKeeper",
keyPlaceholder: "/caminho/para/znode",
keyRequired: "Caminho do znode é obrigatório",
rootReadonly: "O znode raiz não pode ser modificado. Informe o caminho de um znode filho.",
saved: "Znode salvo",
deleted: "Znode excluído",
base64Readonly: "Valores Base64 são somente leitura nesta versão.",
createMode: "Modo de Criação",
createModePersistent: "Persistente",
createModeEphemeral: "Efêmero",
createModePersistentSequential: "Persistente Sequencial",
createModeEphemeralSequential: "Efêmero Sequencial",
add: "Adicionar",
value: "Valor",
metadata: "Informações do Nó",
prettyJson: "Formatado",
invalidJson: "JSON inválido",
summaryRevision: "rev",
summaryVersion: "ver",
summaryLease: "lease",
summarySize: "tamanho",
},
redis: {
setDatabaseAlias: "Definir alias do banco",
databaseAliasTitle: "Alias para db{db}",
databaseAliasPlaceholder: "ex.: pedidos, cache, desenvolvimento",
databaseAliasHint: "O alias é usado apenas para exibição e pesquisa. Os comandos Redis continuam usando o índice numérico.",
clearDatabaseAlias: "Limpar alias",
databaseAliasSaved: "Alias de db{db} definido como {alias}",
databaseAliasCleared: "Alias de db{db} removido",
createKeyTypeHelp: {
string: "Valor único de até 512 MB; útil para cache e contadores.",
hash: "Mapa plano campo-valor; ler um Hash grande inteiro é O(N).",
list: "Sequência ordenada; acesso no meio é linear.",
set: "Membros únicos sem ordem; enumerar conjuntos grandes é linear.",
zset: "Membros únicos com pontuação de ponto flutuante; escrita O(log N).",
stream: "Log somente de acréscimo; gerencie XACK, pendências e corte.",
json: "JSON por caminho; requer RedisJSON/Redis Stack e costuma custar mais que String ou Hash.",
},
selectKey: "Selecione uma chave para ver seu valor",
noKeys: "Nenhuma chave encontrada",
noKeysInScanHint: "Nenhuma chave encontrada no intervalo atual de verificação",
pattern: "padrão (ex.: user:*)",
fuzzyPattern: "a chave contém...",
fuzzyMatch: "Aproximado",
fuzzyMatchTitle: "Correspondência aproximada: pesquisa chaves por texto contido",
valueSearchPlaceholder: "o valor contém...",
allSearchPlaceholder: "a chave ou o valor contém...",
searchByKey: "Chave",
searchByValue: "Valor",
searchByAll: "Tudo",
searchFields: "Pesquisar campos e valores",
keys: "{count} chaves",
loadedKeys: "{loaded} / {total} chaves carregadas",
loadingKeys: "Carregando chaves...",
searchingValues: "Pesquisando valores...",
searchingAll: "Pesquisando chaves e valores...",
loadMoreKeys: "Carregar mais chaves",
fetchAllKeys: "Buscar todas",
stopFetchAll: "Parar",
fetchAllProgress: "{loaded} de {total} chaves carregadas",
fetchAllProgressUnknown: "{loaded} chaves carregadas",
items: "{count} itens",
fields: "{count} campos",
members: "{count} membros",
loadedItems: "{loaded} de {total} itens carregados",
loadedFields: "{loaded} de {total} campos carregados",
loadedMembers: "{loaded} de {total} membros carregados",
entries: "{count} entradas",
streamData: "Dados do stream",
consumerGroups: "Grupos de consumidores",
group: "Grupo",
consumers: "Consumidores",
pending: "Pendentes",
lastDeliveredId: "Último ID entregue",
lastDelivered: "Última entrega",
entriesRead: "Entradas lidas",
lag: "Atraso",
noConsumerGroups: "Nenhum grupo de consumidores",
streamGroupsLoadFailed: "Não foi possível carregar os grupos de consumidores",
backToGroups: "Voltar aos grupos",
streamConsumers: "Consumidores",
streamConsumersLoadFailed: "Não foi possível carregar os consumidores",
noStreamConsumers: "Nenhum consumidor",
openConsumerDetails: "Abrir detalhes do consumidor",
consumer: "Consumidor",
idle: "Ocioso",
inactive: "Inativo",
pendingEntries: "Entradas pendentes",
pendingEntriesLoadFailed: "Não foi possível carregar as entradas pendentes",
noPendingEntries: "Nenhuma entrada pendente",
entryId: "ID da entrada",
deliveries: "Entregas",
loadMoreEntries: "Carregar mais entradas",
loadMorePending: "Carregar mais entradas pendentes",
noExpiry: "sem expiração",
expiry: "Expiração",
expiryNone: "Sem expiração",
expiryTtl: "TTL (segundos)",
expiryAt: "Data e hora de expiração (local)",
expiryTtlInvalid: "Insira um TTL positivo em segundos",
expiryDateRequired: "Selecione uma data e hora de expiração válida",
expiryDatePast: "A data e hora de expiração deve ser futura",
keyExpiredBeforeDisplay: "A chave expirou antes de poder ser exibida.",
autoRefresh: "Atualização automática",
ttlDay: "{count}d",
columnType: "Tipo",
columnKey: "Chave",
columnValue: "Valor",
columnSize: "Tamanho",
columnTTL: "TTL",
binaryStringReadonlyHint: "Valores de string binária são exibidos como texto escapado no modo somente leitura; a edição de bytes brutos não é suportada.",
selectedKeys: "Chaves selecionadas",
selectLoadedGroupKeys: "Selecionar {count} chaves correspondentes carregadas",
loadedMatchingKeys: "{count} chaves correspondentes carregadas",
fuzzyTreeLimit: "{count} correspondências difusas são mostradas como uma lista plana para manter o navegador responsivo. Refine a busca para ver a hierarquia.",
deleteGroup: "Excluir grupo",
deleteGroupDetails: "{target}\n{count} chaves",
deleteLoadedSearchKeysDetails: "{target}\n{count} chaves correspondentes carregadas",
flushDb: "Limpar DB atual",
flushDbMessage: "Isto excluirá todas as chaves do banco de dados Redis atual e não pode ser desfeito. Continuar?",
flushDbDetails: "Alvo: Redis db{db}\nEscopo: todas as chaves do DB atual",
flushDbConfirm: "Limpar DB",
flushDbSuccess: "Redis db{db} limpo",
keyDetail: "Detalhe da chave",
commandLine: "Linha de comando",
selectKeyForDetail: "Selecione uma chave para ver os detalhes",
commandWelcome: "Bem-vindo ao console de comandos do Redis",
commandPlaceholder: "Comando Redis, ex.: GET user:1",
commandPrefix: "CMD",
commandHint: "Insira um comando Redis, ex.: SMEMBERS feature:flags",
executeCommand: "Executar comando",
commandEmpty: "Insira um comando Redis",
commandEmptyResult: "Execute um comando Redis para ver o resultado",
commandBlocked: "Este comando Redis está bloqueado por segurança",
createKey: "Criar chave",
createKeyName: "Chave",
createKeyNamePlaceholder: "user:1",
createKeyType: "Tipo",
createValue: "Valor",
createMember: "Membro",
createField: "Campo",
createFieldPlaceholder: "nome",
createScore: "Pontuação",
createKeyTtl: "TTL (segundos)",
createKeyTtlPlaceholder: "segundos inteiros positivos",
createKeyAddEntry: "Adicionar entrada",
createKeyEntryId: "ID da entrada",
createKeyRawMode: "Entrada bruta",
createKeyEntries: "Entradas",
createKeyPartialWrite: "Algumas entradas foram gravadas. Corrija o erro e crie novamente para gravar as entradas restantes.",
createValuePlaceholder: "valor",
jsonModuleNotAvailable: "Módulo ReJSON não está carregado neste servidor Redis",
createKeySubmit: "Criar",
createKeyNameRequired: "Insira um nome de chave",
createFieldRequired: "Insira um campo de hash",
createScoreInvalid: "Insira uma pontuação válida",
fieldRequired: "Insira um nome de campo",
valueRequired: "Insira um valor",
memberRequired: "Insira um membro",
ttlInvalid: "Insira um TTL válido em segundos (-1 para sem expiração)",
member: "Membro",
memberDetail: "Detalhe do membro",
viewMember: "Ver valor completo",
copyMember: "Copiar membro",
copyKeyName: "Copiar nome da chave",
copied: "Copiado",
copyInsertStatement: "Copiar instrução de inserção",
copyInsertStatementBinary: "Não é possível gerar instrução de inserção para dados binários",
editMember: "Editar",
jsonView: "Visão JSON",
rawContent: "Conteúdo bruto",
wordWrap: "Quebra de linha",
formatJson: "Formatar",
compressJson: "Comprimir",
jsonFormatError: "Formato JSON inválido",
clearHistory: "Limpar histórico de comandos",
historyCleared: "Histórico de comandos Redis limpo",
blockedCommand: "O comando {command} está bloqueado por segurança. Desative o ícone de escudo na barra de ferramentas para permiti-lo.",
slowlog: "Slow Log",
slowlogCount: "Contagem",
slowlogQuery: "Consultar",
slowlogNode: "Nó",
slowlogSelectNode: "Selecione um nó",
slowlogNodeRequired: "Selecione um nó primeiro",
slowlogEmpty: "Clique em Consultar para obter entradas do slow log",
slowlogFetchFailed: "Falha ao buscar slow log: {error}",
slowlogColumnId: "ID",
slowlogColumnTimestamp: "Timestamp",
slowlogColumnDuration: "Duração (μs)",
slowlogColumnCommand: "Comando",
slowlogColumnClientAddr: "Cliente",
slowlogColumnClientName: "Nome do Cliente",
slowlogTotal: "{count} entradas",
slowlogDetailTitle: "Entrada de Slow Log #{id}",
pubsub: "Pub/Sub",
pubsubConnected: "Conectado",
pubsubConnecting: "Conectando...",
pubsubDisconnected: "Desconectado",
pubsubConnect: "Conectar",
pubsubDisconnect: "Desconectar",
pubsubChannels: "Canais",
pubsubChannelPlaceholder: "Nome do canal",
pubsubSubscribe: "Inscrever-se",
pubsubPatterns: "Padrões",
pubsubPatternPlaceholder: "Padrão (ex. news:*)",
pubsubPsubscribe: "PInscrever-se",
pubsubMessages: "Mensagens",
pubsubClear: "Limpar",
pubsubEmpty: "Nenhuma mensagem. Inscreva-se em um canal para receber mensagens.",
pubsubPublish: "Publicar",
pubsubPublishChannel: "Canal",
pubsubPublishMessage: "Mensagem",
pubsubSend: "Enviar",
pubsubPublishFailed: "Publicação falhou: {error}",
pubsubWsConnectFailed: "Conexão WebSocket falhou: {error}",
dashboard: {
totalMemory: "Memória total",
usedMemory: "Memória utilizada",
operations: "Operações",
hitRatio: "Taxa de acertos",
keyCount: "Quantidade de chaves",
clients: "Clientes",
searchIndicators: "Buscar indicadores...",
node: "Nó",
off: "Desativado",
refresh: "Atualizar",
noMatchingIndicators: "Nenhum indicador correspondente",
noDataAvailable: "Nenhum dado disponível",
sections: {
server: "Servidor",
clients: "Clientes",
memory: "Memória",
persistence: "Persistência",
stats: "Estatísticas",
replication: "Replicação",
cpu: "CPU",
modules: "Módulos",
commandstats: "Estatísticas de comandos",
errorstats: "Estatísticas de erros",
latencystats: "Estatísticas de latência",
cluster: "Cluster",
keyspace: "Espaço de chaves",
},
},
},
mongo: {
documents: "{count} documentos",
addField: "Adicionar campo",
deleteField: "Excluir campo",
field: "Campo",
value: "Valor",
fieldPlaceholder: "Nome do campo",
emptyCollection: "Coleção vazia",
selectDocument: "Selecione um documento",
readonlyId: "_id é somente leitura",
invalidJsonValue: "Esta célula não é um valor JSON válido",
invalidJson: "JSON inválido",
documentMustBeObject: "O JSON do documento deve ser um objeto",
unsupportedJsonNumber: "O JSON contém um número fora do intervalo int64 do MongoDB",
duplicateJsonKey: "Chave JSON duplicada: {field}",
duplicateField: "Nome de campo duplicado: {field}",
edit: "Editar",
editModeFields: "Campos",
editModeJson: "JSON",
jsonReplaceHint: "Salvar em JSON substitui o documento inteiro. Alterar _id cria um novo documento e remove o antigo.",
jsonIdRequired: "É necessário um _id válido ao alterar a identidade do documento.",
documentView: "Visão de documento",
tableView: "Visão de tabela",
filterPlaceholder: "Filtrar...",
sortPlaceholder: "Ordenar...",
fieldEditor: "Campo",
nativeJson: "JSON nativo",
nativeJsonHint: "Para valores BSON, use MongoDB Extended JSON, por exemplo $oid, $date, $numberLong.",
invalidNativeJson: "Formato de JSON nativo inválido: {error}",
nativeDocumentRequired: "O objeto de nível superior do JSON nativo deve ser um documento.",
},
vector: {
collectionFallback: "coleção",
productCollection: "coleção {product}",
browse: "Navegar",
search: "Pesquisar",
upsert: "Upsert",
delete: "Excluir",
reset: "Redefinir",
refresh: "Atualizar",
run: "Executar",
apply: "Aplicar",
requestEditor: "Editor de requisição de vetor",
operationSuccess: "Operação concluída. A pré-visualização da coleção foi atualizada.",
vectorLabel: "Vetor",
vectorDimensionRequired: "A dimensão da coleção ainda não está disponível. Insira um vetor com a dimensão correta.",
},
hbase: {
prefix: "Prefixo",
exact: "Exata",
rowKeyPrefix: "Prefixo da chave da linha",
rowKey: "Chave da linha",
rows: "linhas",
schema: "Esquema",
writeRow: "Gravar linha",
loadedRows: "{count} linhas carregadas",
resultTruncated: "Há mais linhas disponíveis",
tableSchema: "Esquema: {table}",
rowSaved: "Linha do HBase salva",
cellsObjectRequired: "cells deve ser um objeto JSON",
cellRequired: "É necessária pelo menos uma célula",
noColumnFamilies: "Esta tabela HBase não possui famílias de colunas",
invalidJsonValue: "Valor inválido para {label}; use texto, um valor primitivo ou base64:...",
createTable: "Criar tabela",
create: "Criar",
tableCreated: "Tabela HBase {table} criada",
tableDeleted: "Tabela HBase {table} excluída",
createTableIn: "Criar tabela em {namespace}",
tableName: "Nome da tabela",
columnFamiliesPlaceholder: "Famílias de colunas, separadas por vírgulas",
deleteTable: "Excluir tabela",
deleteTableConfirm: "Excluir a tabela HBase {table}? Todas as linhas serão removidas permanentemente.",
},
history: {
title: "Histórico",
search: "Pesquisar histórico...",
empty: "Nenhum histórico ainda",
emptyFilteredRecent: "Nenhum registro correspondente nas 200 entradas mais recentes do histórico de execução",
failed: "Falhou",
success: "Concluído",
restore: "Restaurar no editor",
copy: "Copiar SQL",
delete: "Excluir",
clear: "Limpar histórico",
viewDetails: "Ver detalhes",
analyzeWithAi: "Analisar com IA",
aiAnalyzeNoConnection: "Não é possível analisar esta entrada de histórico porque sua conexão não existe mais.",
aiAnalysisTab: "Análise do histórico",
rollback: "Reverter",
rollbackSql: "SQL de reversão",
rollbackAvailable: "Disponível",
rollbackUnavailable: "Sem SQL de reversão",
rollbackConfirm: "Executar o SQL de reversão gerado para esta entrada de histórico?",
rollbackSuccess: "Reversão executada",
rollbackFailed: "Falha na reversão: {message}",
confirmDelete: "Excluir esta entrada de histórico?",
confirmClear: "Limpar todo o histórico?",
emptyFiltered: "Nenhum histórico corresponde aos filtros atuais",
loadMore: "Carregar mais",
scope: {
title: "Conexão e banco de dados",
search: "Pesquisar conexões ou bancos de dados...",
reset: "Redefinir",
allConnections: "Todas as conexões",
current: "Atual",
connections: "Conexões",
databases: "Bancos de dados",
connectionCount: "{count} conexões",
databaseCount: "{count} bancos de dados",
unknownConnection: "Conexão desconhecida",
noOptions: "Nenhuma opção correspondente",
},
filters: {
all: "Todos",
query: "Consultas",
data_change: "Alterações de dados",
schema_change: "Alterações de schema",
failed: "Falhou",
},
dateRange: {
title: "Intervalo de tempo",
label: "Hora de execução:",
start: "Data inicial",
end: "Data final",
apply: "Aplicar",
clear: "Limpar",
invalid: "A data inicial não pode ser posterior à data final",
unboundedStart: "Início",
unboundedEnd: "Fim",
},
kinds: {
query: "Consulta",
data_change: "Alteração de dados",
schema_change: "Alteração de schema",
import: "Importação",
transfer: "Transferência",
redis_command: "Comando Redis",
},
kindShort: {
query: "SQL",
data_change: "Dados",
schema_change: "DDL",
import: "Importar",
transfer: "Mover",
redis_command: "Redis",
},
detail: {
kind: "Tipo",
operation: "Operação",
connection: "Conexão",
database: "Banco de dados",
target: "Alvo",
time: "Hora",
duration: "Duração",
affectedRows: "Linhas afetadas",
rollback: "Reversão",
status: "Status",
error: "Erro",
},
},
dangerDialog: {
title: "Operação perigosa",
message: "Esta instrução SQL pode modificar ou excluir dados de forma irreversível. Tem certeza de que deseja executá-la?",
redisCommandMessage: "Este comando Redis pode modificar dados e não pode ser desfeito automaticamente. Continuar?",
suppressFuturePrompts: "Não perguntar novamente para SQL perigoso",
wrapLines: "Alternar quebra de linha",
copyFullText: "Copiar texto completo",
previewTruncated: "Visualização truncada: {lines} linhas e {characters} caracteres omitidos. A cópia inclui o texto completo.",
deleteMessage: "Esta operação de exclusão pode ser irreversível. Continuar?",
deleteConfirm: "Confirmar exclusão",
deleteRowMessage: "Esta linha será marcada para exclusão e removida do banco de dados após salvar. Continuar?",
deleteRowsMessage: "Estas {count} linhas serão marcadas para exclusão e removidas do banco de dados após salvar. Continuar?",
deleteRowDetails: "Tabela: {table}",
deleteRowDetailsNoTable: "Linha de resultado atual",
redisKeyDetails: "Chave Redis: {key}",
redisHashFieldDetails: "Hash Redis: {key}\nCampo: {field}",
redisListItemDetails: "Lista Redis: {key}\nÍndice: {index}",
redisSetMemberDetails: "Set Redis: {key}\nMembro: {member}",
mongoDocumentDetails: "Coleção MongoDB: {collection}\nDocumento _id: {id}",
mongoFieldDetails: "Campo: {field}",
mongoArrayItemDetails: "Índice do item do array: {index}",
cancel: "Cancelar",
confirm: "Executar",
},
sqlParameters: {
title: "Parâmetros SQL",
description: "Preencha valores para marcadores de template SQL. O DBX substitui antes de executar o SQL.",
name: "Parâmetro",
syntax: "Sintaxe",
type: "Tipo",
value: "Valor",
valuePlaceholder: "Digite o valor",
preview: "Prévia SQL",
execute: "Executar",
kind: {
string: "Texto",
number: "Número",
boolean: "Booleano",
null: "NULL",
raw: "SQL bruto",
},
},
transfer: {
title: "Transferência de Dados",
content: "Conteúdo de transferência",
contentStructureAndData: "Estrutura e dados",
contentStructureOnly: "Apenas estrutura",
contentDataOnly: "Apenas dados",
contentStructureOnlyHint: "Cria apenas a estrutura de tabelas e objetos, sem copiar dados",
contentDataOnlyHint: "Copia apenas os dados para tabelas de destino existentes",
objects: "Objetos",
searchObjects: "Buscar nome do objeto...",
noObjects: "Nenhum objeto",
objectTypeTable: "Tabelas",
objectTypeView: "Views",
objectTypeMaterializedView: "Views materializadas",
objectTypeProcedure: "Procedimentos",
objectTypeFunction: "Funções",
objectTypeTrigger: "Triggers",
objectTypeSequence: "Sequências",
objectTypeEvent: "Eventos",
objectDataOnlyDisabled: "Objetos que não são tabelas não são transferidos no modo apenas dados",
objectCrossFamilyDisabled: "A transferência entre bancos suporta apenas sequências (DDL simples; corpos de views não são traduzidos)",
crossFamilyViewHint: "Transferência de views entre bancos: selecione também as tabelas das quais a view depende ou garanta que elas já existam no banco de destino",
objectUnsupportedDisabled: "O banco de dados atual não suporta a transferência deste tipo de objeto",
skippedExistingObjects: "Ignorado {count} objeto(s) existente(s)",
dataWriteMode: "Modo de gravação de dados",
source: "Origem",
target: "Destino",
sourceConnection: "Conexão de origem",
sourceDatabase: "Banco de dados de origem",
sourceSchema: "Schema de origem",
targetConnection: "Conexão de destino",
targetDatabase: "Banco de dados de destino",
targetSchema: "Schema de destino",
tables: "Tabelas",
selectAll: "Selecionar tudo",
deselectAll: "Desmarcar tudo",
createTable: "Criar tabela se não existir",
transferMode: "Modo de transferência",
modeAppend: "Anexar (INSERT)",
modeOverwrite: "Sobrescrever (TRUNCATE + INSERT)",
modeUpsert: "Upsert (INSERT ou UPDATE por PK)",
targetTableNameCase: "Maiúsculas/minúsculas da tabela de destino",
tableNameCasePreserve: "Preservar",
tableNameCaseLower: "Converter para minúsculas",
tableNameCaseUpper: "Converter para maiúsculas",
batchSize: "Tamanho do lote",
start: "Iniciar transferência",
cancel: "Cancelar",
progress: "Transferindo...",
transferring: "Transferindo {table}...",
completed: "Transferência concluída",
completedWithErrors: "Concluído com {count} tabela com falha | Concluído com {count} tabelas com falha",
failed: "Falha na transferência",
cancelled: "Transferência cancelada",
rowsTransferred: "{count} linhas transferidas",
tableProgress: "{current} / {total} tabelas",
noSqlConnections: "Nenhuma conexão SQL disponível",
selectTables: "Selecione as tabelas para transferir",
searchTables: "Pesquisar tabelas...",
noTables: "Nenhuma tabela",
selectSourceFirst: "Selecione primeiro a conexão e o banco de dados de origem",
tableError: "Falha na tabela {table}: {error}",
overallProgress: "Progresso geral",
dataTransfer: "Transferência de Dados",
runInBackground: "Executar em segundo plano",
newTask: "Nova transferência",
editConfig: "Editar configuração",
retry: "Tentar novamente",
targetTableBusy: "Outra transferência já está gravando na(s) tabela(s) de destino: {tables}",
ownershipTitle: "Confirmar proprietário",
ownershipMessage: "O banco de dados de destino não tem estes usuários ou roles proprietários: {owners}. Aplicar o proprietário original pode falhar.",
ownershipSkipDetails: "Pular não executará as instruções de alteração de proprietário dos objetos. Os dados das tabelas e outras estruturas continuarão sendo sincronizados.",
ownershipTargetOwner: "Confirmar reatribuirá os objetos com proprietários ausentes ao usuário da conexão de destino: {owner}.",
ownershipSkip: "Pular",
ownershipConfirm: "Confirmar",
selectConnection: "Selecionar conexão",
selectDatabase: "Selecionar banco de dados",
selectSchema: "Selecionar schema",
searchConnection: "Pesquisar conexões...",
searchDatabase: "Pesquisar bancos de dados...",
searchSchema: "Pesquisar schemas...",
sourceCatalog: "Catalog de origem",
targetCatalog: "Catalog de destino",
selectCatalog: "Por favor, selecione Catalog...",
searchCatalog: "Buscar Catalog...",
},
tableImport: {
title: "Importar Dados da Tabela",
target: "Tabela de destino",
selectFile: "Selecionar arquivo",
changeFile: "Change File",
noFileSelected: "No file selected",
sourceFile: "Source file",
sourceFormat: "Source format",
stepSource: "Source",
stepOptions: "Options",
stepMapping: "Mapping",
stepReview: "Review",
stepExecution: "Run",
formatCsv: "CSV",
formatCsvDescription: "Comma-separated text",
formatTsv: "TSV",
formatTsvDescription: "Tab-separated text",
formatDelimited: "Delimited",
formatDelimitedDescription: "Custom text delimiter",
formatJson: "JSON",
formatJsonDescription: "Object or array rows",
formatExcel: "Excel",
formatExcelDescription: "XLS, XLSX, XLSM",
previewRows: "Preview rows",
delimiter: "Delimiter",
encoding: "Codificação",
encodingAuto: "Detecção automática",
encodingUtf8: "UTF-8",
encodingGbk: "GBK / GB18030",
encodingUtf16Le: "UTF-16 LE",
encodingUtf16Be: "UTF-16 BE",
encodingDetected: "Detectada: {encoding}",
hasHeader: "First row is header",
trimValues: "Trim values",
emptyStringAsNull: "Empty string as NULL",
jsonShape: "JSON rows",
jsonShapeAuto: "Auto-detect",
jsonShapeObjects: "Objects",
jsonShapeArrays: "Arrays",
sheet: "Sheet",
firstSheet: "First sheet",
loadPreview: "Load Preview",
reloadPreview: "Reload Preview",
previewReady: "{rows} rows, {columns} columns",
previewReadyPartial: "Previewed {rows} rows, {columns} columns; total will be confirmed during import",
previewPartial: "Previewed {rows} rows",
rowsImported: "rows imported",
file: "Arquivo",
rows: "Linhas",
mapped: "Mapeado",
mapping: "Mapeamento de Colunas",
sourceColumn: "Origem",
targetColumn: "Destino",
targetDataType: "Tipo",
createColumns: "Colunas a criar",
skipColumn: "Pular",
preview: "Pré-visualização",
mode: "Modo de importação",
append: "Anexar dados",
truncate: "Truncar e depois importar",
progress: "Progresso",
start: "Iniciar importação",
success: "{count} linhas importadas",
elapsed: "Tempo decorrido: {duration}",
back: "Back",
next: "Next",
truncateWarning: "Existing rows in the target table will be removed before import starts.",
requiredUnmapped: "Required target columns are not mapped: {columns}",
status_idle: "Ready to import",
status_running: "Importing data",
phase_preparing: "Preparing import",
phase_detectingEncoding: "Detecting text encoding",
phase_reading: "Reading source file",
phase_writing: "Writing data",
phase_finalizing: "Finalizing import",
status_done: "Import complete",
status_error: "Import failed",
status_cancelled: "Import cancelled",
},
dataGenerate: {
title: "Geração de dados",
target: "Destino",
rowCount: "Linhas a gerar",
columns: "Colunas",
column: "Coluna",
type: "Tipo",
generator: "Gerador",
columnProps: "Propriedades da coluna",
databaseObjects: "Objetos do banco",
selectTable: "Selecione uma tabela à esquerda",
saveProfile: "Salvar perfil",
loadProfile: "Carregar perfil",
options: "Opções",
generateOrder: "Ordem de geração",
nextStep: "Próximo",
insertSuccess: "{count} linhas inseridas",
noData: "No data yet, please configure generation rules first",
noResult: "No execution results",
regenerate: "Regenerate",
first50Rows: "Showing first 50 rows, total {count} rows",
resultTitle: "Resultados da execução",
successLabel: "{count} bem-sucedidas",
failLabel: "{count} falhas",
totalLabel: "/ {count} linhas",
copyAllSql: "Copy All SQL",
prevStep: "Anterior",
startInsert: "Start Insert",
confirm: "Confirmar",
back: "Voltar",
reset: "Reset",
selectGenerator: "Select a generator...",
selectGeneratorHint: "Please select a generator",
preview: "Preview",
noValue: "(nenhum)",
startDate: "Start Date",
endDate: "End Date",
allDay: "All day",
startTime: "Start Time",
endTime: "End Time",
weekday: "Weekday",
all: "All",
weekdayOnly: "Weekdays",
custom: "Custom",
values: "Values",
min: "Min",
max: "Max",
increment: "Incremento",
cycle: "Cycle when exceeded",
includeDefault: "Include DEFAULT",
includeNull: "Include NULL",
unique: "Set unique",
disableLinks: "Disable data links between columns",
imageMode: "Mode",
generate: "Generate",
fromFolder: "From folder",
imageWidth: "Image Width",
imageHeight: "Image Height",
imageFormat: "Image Format",
folderPath: "Folder Path",
filterByExtension: "Filter by extensions",
errorContinue: "Continue on error",
truncateBefore: "Truncate table before generation",
useTransaction: "Use transaction",
extendedInsert: "Use extended INSERT",
ok: "OK",
noTablesSelected: "No tables selected",
orderHint: "Use arrow buttons to reorder",
language: "Idioma",
regionLabel: "Região",
formatLabel: "Formato",
formatType: "Tipo de formato",
typeLabel: "Tipo",
loading: "Carregando...",
regex: "Expressão regular",
rawPattern: "Modo de padrão bruto",
notSet: "(não definido)",
noMatch: "(sem correspondência)",
invalidRegex: "(expressão regular inválida)",
noDomain: "(sem domínio)",
schema: "Esquema",
tableLabel: "Tabela",
columnLabel: "Coluna",
genMode: "Modo de geração",
dateType: "Tipo de data",
yearOffsetRange: "Intervalo de anos (deslocamento em relação ao ano atual)",
numberType: "Tipo de número",
integer: "Inteiro",
decimal: "Decimal",
decimalPlaces: "Casas decimais",
uuidFormat: "Formato UUID",
uuidWithHyphens: "Com hifens",
uuidNoHyphens: "Sem hifens",
includeSeparators: "Incluir separadores",
phoneDomestic: "Nacional",
phoneInternational: "Internacional",
charCount: "Caracteres",
start: "Início",
valueList: "Lista de valores",
domainList: "Lista de domínios",
subdomains: "Subdomínios",
tlds: "Domínios de topo",
extensionType: "Tipo de extensão",
extensionList: "Lista de extensões:",
availableExtensions: "Extensões disponíveis:",
includeExtension: "Incluir extensão",
includeFileName: "Incluir nome do arquivo",
pathType: "Tipo de caminho",
ipType: "Tipo de endereço IP",
nameFormat: "Formato do nome",
transformTo: "Transformar valores em",
generateOptions: "Opções de geração",
previewRowCount: "{count} linhas",
useKeywords: "Gerar a partir de palavras-chave",
weekdayShort: {
sun: "Dom",
mon: "Seg",
tue: "Ter",
wed: "Qua",
thu: "Qui",
fri: "Sex",
sat: "Sáb",
},
countries: {
us: "Estados Unidos",
uk: "Reino Unido",
cn: "China",
jp: "Japão",
other: "Outro",
cnEnglish: "China (inglês)",
jpEnglish: "Japão (inglês)",
},
cityLanguages: {
native: "Idioma local",
english: "Inglês",
},
addressTypes: {
line1: "Endereço linha 1",
line2: "Endereço linha 2",
full: "Endereço completo",
},
nameFormats: {
full: "Nome completo",
last: "Somente sobrenome",
first: "Somente nome",
},
regionFormats: {
name: "Nome",
code: "Código",
codeName: "Código + Nome",
},
transforms: {
none: "Como está",
upper: "MAIÚSCULAS",
lower: "minúsculas",
title: "Iniciais Maiúsculas",
},
extensionCategories: {
image: "Imagem",
document: "Documento",
spreadsheet: "Planilha",
presentation: "Apresentação",
audio: "Áudio",
video: "Vídeo",
code: "Código",
archive: "Arquivo compactado",
web: "Web",
database: "Banco de dados",
},
placeholders: {
enumValues: "Um valor por linha\nfirst\nsecond\nthird",
subdomains: "Um subdomínio por linha\nauth.\nwww.\napi.",
tlds: "Um TLD por linha\n.com\n.cn\n.io",
fileExtensions: "Uma extensão por linha\npng\njpg\ntxt",
paymentMethods: "Um método de pagamento por linha\nCredit Card\nPayPal\nApple Pay",
keywords: "Uma palavra-chave por linha\nApple\nCherry\nOrange",
weightUnits: "Uma unidade por linha\ng\nkg\nlb",
},
genModes: {
random: "Aleatório",
unique: "Sem duplicatas",
repeat: "Repetir cada valor",
},
gen: {
general: "General",
personal: "Personal",
payment: "Payment",
business: "Business",
location: "Location",
product: "Product",
computer: "Computer",
number: "Number",
datetime: "Date Time",
date: "Date",
time: "Time",
sequence: "Sequence",
enum: "Enum",
text: "Text",
image: "Image or Binary",
foreign_key: "Foreign Key",
uuid: "UUID",
regex: "Regex",
full_name: "Full Name",
gender: "Gender",
title: "Title",
marital_status: "Marital Status",
phone: "Phone",
email: "Email",
job_title: "Job Title",
social_id: "Social ID",
payment_method: "Payment Method",
credit_card_type: "Credit Card Type",
credit_card_number: "Credit Card Number",
credit_card_date: "Credit Card Date",
company_name: "Company Name",
department: "Department",
industry: "Industry",
address: "Address",
city: "City",
region: "Region",
product_name: "Product Name",
product_category: "Product Category",
color: "Color",
size: "Size",
weight_unit: "Weight Unit",
barcode: "Barcode",
sku: "SKU",
ip_address: "IP Address",
mac_address: "MAC Address",
file_path: "File Path",
file_name: "File Name",
file_extension: "File Extension",
url: "URL",
hostname: "Hostname",
id_number: "Número de documento",
},
idTypes: {
title: "Tipo de documento",
customPattern: "Padrão personalizado",
customPatternPlaceholder: "ex.: ([A-Z]{2})-([0-9]{8})",
customPatternHint: "Suporta padrões simples como [A-Z] letras, [0-9] dígitos, {n} repetições, hífens",
id_card: "CPF chinês",
passport: "Passaporte",
hk_macau_pass: "Permissão HK/Macau",
taiwan_pass: "Permissão Taiwan",
uscc: "Código social unificado",
bank_card: "Cartão bancário",
drivers_license: "Carteira de motorista",
custom: "Personalizado",
},
},
tableToolbox: {
title: "Ferramentas de dados",
generateData: "Gerar dados",
importData: "Importar dados",
exportData: "Exportar dados",
generateDataComingSoon: "Em breve",
},
sqlFile: {
title: "Executar Arquivo SQL",
file: "Arquivo",
selectSqlFile: "Selecionar arquivo SQL",
browse: "Procurar",
previewingLines: "Pré-visualizando {count} linhas",
previewingFirstLines: "Pré-visualizando as primeiras {count} linhas",
tooLargeForEditor: "Este arquivo SQL tem {size} e excede o limite de {limit} do editor. Use Executar Arquivo SQL para processá-lo por streaming.",
largeFileExecutionOpened: "O arquivo SQL de {size} é grande demais para o editor. Executar Arquivo SQL foi aberto para processamento por streaming.",
target: "Destino",
connection: "Conexão",
selectConnection: "Selecionar conexão",
database: "Banco de dados",
selectDatabase: "Selecionar banco de dados",
databasePlaceholder: "Nome do banco de dados",
options: "Opções",
continueOnError: "Continuar em caso de erro",
runInBackground: "Executar em segundo plano",
cancelling: "Cancelando...",
cancel: "Cancelar",
execute: "Executar",
statement: "Instrução",
succeeded: "Bem-sucedido",
failed: "Falhou",
affectedRows: "Linhas afetadas",
currentStatement: "Instrução atual",
status: {
idle: "Ocioso",
started: "Iniciado",
running: "Em execução",
statementDone: "Instrução concluída",
statementFailed: "Instrução falhou",
done: "Concluído",
error: "Erro",
cancelled: "Cancelado",
},
fileProgress: "Arquivo {current} de {total}",
fileColumn: "Arquivo",
totalFiles: "{count} arquivos",
expandSummary: "Expandir Tabela Estatística",
restoreSummary: "Restaurar Tabela Estatística",
},
diff: {
title: "Comparar Esquemas",
source: "Origem",
target: "Destino",
selectConnection: "Selecionar conexão",
selectDatabase: "Selecionar banco de dados",
selectSchema: "Selecionar schema",
ignoreComments: "Ignorar diferenças de comentários",
compare: "Comparar",
comparing: "Comparando schemas...",
noDifferences: "Nenhuma diferença encontrada",
table: "Tabela",
status: "Status",
details: "Detalhes",
added: "Adicionado",
removed: "Removido",
modified: "Modificado",
indexes: "Índices",
foreignKeys: "Chaves estrangeiras",
triggers: "Gatilhos",
comments: "Comentários",
newTable: "Nova tabela",
dropTable: "Excluir tabela",
generatedSql: "Sincronizar SQL",
copySql: "Copiar SQL",
executeSync: "Executar sincronização",
syncSuccess: "Sincronização executada com sucesso",
swap: "Trocar origem e destino",
syncProgress: "Executando: {current}/{total}",
syncSummary: "{success} bem-sucedidas, {failed} com falha",
connection: "Conexão",
database: "Banco de dados",
schema: "Schema",
recentConfigs: "Configurações Recentes",
selectRecentConfig: "Selecionar configuração recente",
configSaved: "Configuração salva",
configDeleted: "Configuração excluída",
sourceObject: "Objeto de origem",
targetObject: "Objeto de destino",
operation: "Operação",
selectedCount: "{selected} selecionados de {total}",
saveConfig: "Salvar configuração",
loadConfig: "Carregar configuração",
options: "Opções",
ddlCompare: "Comparação DDL",
deployScript: "Script de implantação",
deployScriptAll: "Todos os scripts de implantação",
deployScriptDesc: "Script SQL para o objeto selecionado",
deployScriptAllDesc: "Script SQL para todos os objetos selecionados",
copy: "Copiar",
execute: "Executar",
executeAll: "Executar todos",
executeSuccess: "Executado com sucesso",
selectObjectToCompare: "Selecione um objeto para ver a comparação DDL",
noDdlAvailable: "Nenhum DDL disponível",
noDeployScript: "Nenhum script de implantação",
noDeployScriptAll: "Nenhum script de implantação para os objetos selecionados",
sourceDdl: "DDL de origem",
targetDdl: "DDL de destino",
objectNotExistsInSource: "Este objeto não existe no banco de dados de origem",
objectNotExistsInTarget: "Este objeto não existe no banco de dados de destino",
nextStepDeploy: "Próximo (Revisar Implantação)",
deployReview: "Revisão de Implantação",
backToResult: "Voltar ao Resultado",
copyScript: "Copiar Script",
exportSql: "Exportar .sql",
deployToServer: "Implantar no Servidor",
deployConfirmTitle: "Confirmação Final",
deployConfirmMessage: "Você está prestes a implantar as seguintes alterações no banco de dados de destino",
targetServer: "Servidor de Destino",
dbVersion: "Versão do Banco de Dados",
targetDatabase: "Banco de Dados de Destino",
targetSchema: "Schema de Destino",
useTransaction: "Executar em transação (rollback automático em caso de falha)",
confirmDeploy: "Confirmar Implantação",
exportSuccess: "Exportação bem-sucedida",
create: "Criar",
delete: "Excluir",
modify: "Modificar",
cancel: "Cancelar",
prevStep: "Anterior",
recompare: "Comparar novamente",
maximize: "Maximizar",
restore: "Restaurar",
operationLabel: {
modify: "Objetos a modificar",
create: "Objetos a criar",
delete: "Objetos a excluir",
none: "Nenhuma operação",
},
objectKindLabel: {
table: "Tabela",
view: "Visão",
function: "Função",
sequence: "Sequência",
rule: "Regra",
owner: "Proprietário",
index: "Índice",
foreignKey: "Chave Estrangeira",
trigger: "Gatilho",
},
noObjectsSelected: "Selecione objetos para implantar",
deploySuccess: "Implantação Bem-sucedida",
deployFailed: "Implantação Falhou",
deploySuccessMessage: "Script SQL executado com sucesso no banco de dados de destino",
deployFailedMessage: "Ocorreu um erro durante a execução",
affectedRows: "Linhas Afetadas",
executedStatements: "Instruções Executadas",
serverVersion: "Versão do Servidor",
info: "Informações",
connType: "Tipo de conexão",
connName: "Nome da conexão",
host: "Host",
port: "Porta",
copied: "Copiado para a área de transferência",
saveConfigPrompt: "Digite o nome da configuração:",
close: "Fechar",
searchConnection: "Pesquisar conexões...",
searchDatabase: "Pesquisar bancos de dados...",
searchSchema: "Pesquisar schemas...",
defaultConfigName: "Padrão",
dependsOn: "depende de",
dependedBy: "dependido por",
openFieldMapping: "Mapeamento de Campos",
fieldMapping: {
title: "Mapeamento de Tipos de Campo",
sameTypeHint: "Origem e destino são do mesmo tipo de banco de dados. O mapeamento de campos só é necessário ao comparar entre tipos de banco de dados diferentes.",
preset: "Predefinição Integrada",
selectPreset: "Selecionar uma predefinição...",
noMappings: "Nenhum mapeamento de campos definido",
sourceType: "Tipo de Origem",
targetType: "Tipo de Destino",
paramStrategy: "Estratégia de Parâmetros",
strategyPreserve: "Preservar",
strategyStrip: "Remover",
strategyCustom: "Personalizado",
customParamsPlaceholder: "ex.: (100)",
addMapping: "Adicionar Mapeamento",
autoGenerate: "Auto-Gerar",
import: "Importar",
export: "Exportar",
done: "Concluído",
importTypeMismatch: "Os mapeamentos importados foram exportados para {src} → {tgt}, mas a comparação atual é {curSrc} → {curTgt}. Os mapeamentos de tipo podem não ser precisos. Continuar mesmo assim?",
importSuccess: "Mapeamentos de campos importados com sucesso",
importError: "Falha ao importar mapeamentos de campos. Verifique o formato JSON.",
clearMappings: "Limpar",
staleMappingWarning: "O tipo de banco de dados mudou de {prevSrc} → {prevTgt} para {curSrc} → {curTgt}. Os mapeamentos de campos existentes podem não ser mais válidos. Limpá-los?",
},
deployMode: "Implantar",
forwardSql: "SQL Direto",
rollbackSql: "SQL de Reversão",
rollbackMode: "Reversão",
deployMixed: "Implantação parcialmente concluída. Algumas instruções podem já ter sido aplicadas ({executedCount}/{statementCount}). DDL pode não ser transacional.",
deployRolledBack: "Todas as alterações foram revertidas.",
rollbackIncompleteBlocked: "Rollback incomplete (missing objects). Execution blocked.",
rollbackIncompleteBanner: "Rollback incomplete — missing trigger/table DDL.",
deployMixedTitle: "Parcialmente Implantado",
deployRolledBackTitle: "Revertido",
deployMixedWarning: "Algumas instruções podem já ter sido aplicadas enquanto outras falharam. O banco de dados pode estar em um estado inconsistente. Revise o log de transações e tome ação corretiva manual antes de tentar novamente.",
},
rollbackComparison: {
title: "Comparação de Reversão",
forwardSql: "SQL Direto",
rollbackSql: "SQL de Reversão",
},
schemaDiff: {
optionsTitle: "Opções de Comparação",
selectConfig: "Selecionar configuração",
newConfigName: "Nova Configuração",
newConfig: "Nova Configuração",
renameConfig: "Renomear Configuração",
duplicateConfig: "Duplicar Configuração",
deleteConfig: "Excluir Configuração",
exportConfig: "Exportar Configuração",
exportAllConfigs: "Exportar Todas as Configurações",
importConfig: "Importar Configuração",
importFromFile: "Importar de Arquivo",
importFromText: "Importar de Texto",
importPlaceholder: "Cole o JSON da configuração...",
importInvalidJson: "Formato JSON inválido",
configName: "Nome da Configuração",
tableFilter: "Filtro de tabela",
tableFilterHint: "Corresponde a nomes completos de tabela com regex. Não digite /.../. ^ significa começa com, $ significa termina com, | significa ou.",
tableFilterHintShort: "Limitar comparação por regex de nome de tabela",
tableFilterHelp: "Ajuda do filtro de tabela",
tableFilterHelpRule: "Corresponde a nomes completos de tabela. Não digite /.../.",
tableFilterHelpBlank: "Incluir em branco significa todas as tabelas. Pular em branco significa sem exclusões.",
tableFilterHelpExample: "^user_ significa começa com user_; _bak$ significa termina com _bak; a|b significa a ou b.",
tableIncludePattern: "Comparar apenas tabelas correspondidas",
tableIncludePatternPlaceholder: "ex.: ^user_",
tableExcludePattern: "Pular tabelas correspondidas",
tableExcludePatternPlaceholder: "ex.: _bak$",
tableFilterPriority: "Quando ambos correspondem",
tableFilterPriorityExclude: "Exclusão vence",
tableFilterPriorityInclude: "Inclusão vence",
options: {
tables: "Comparar tabelas",
primaryKeys: "Comparar chaves primárias",
foreignKeys: "Comparar chaves estrangeiras",
uniqueKeys: "Comparar chaves únicas",
checks: "Comparar constraints CHECK",
exclusions: "Comparar constraints de exclusão",
views: "Comparar visões",
functions: "Comparar funções",
indexes: "Comparar índices",
sequences: "Comparar sequências",
triggers: "Comparar gatilhos",
rules: "Comparar regras",
owners: "Comparar proprietários",
cascadeDelete: "Usar CASCADE delete",
sequenceLastValues: "Comparar últimos valores de sequência",
compareColumnOrder: "Comparar ordem das colunas",
detectRenames: "Detectar renomeações",
detectTableRenames: "Detectar renomeações de tabela",
enableRollback: "Habilitar rollback",
advancedSection: "Avançado",
renameThreshold: "Limiar de renomeação",
compatibilityThreshold: "Limiar de compatibilidade",
sourceDialect: "Dialeto de origem",
targetDialect: "Dialeto de destino",
batchSection: "Lote",
batchPatterns: "Padrões de tabela (separados por vírgula)",
dialectAuto: "automático",
},
},
dataCompare: {
title: "Comparar Dados",
selectTable: "Selecionar tabela",
searchTable: "Pesquisar tabelas...",
sourceTables: "Tabelas de origem",
targetTable: "Tabela de destino",
searchTables: "Pesquisar tabelas...",
selectedTables: "{selected}/{total} selecionadas",
selectAllTables: "Selecionar tudo",
deselectAllTables: "Desmarcar tudo",
selectSourceTables: "Selecione primeiro a conexão e o banco de dados de origem, depois escolha as tabelas para comparar",
noTables: "Nenhuma tabela disponível para comparação",
autoMatchHint: "O modo em lote corresponde automaticamente as tabelas de destino pelo mesmo nome",
matchedTables: "{matched}/{total} tabelas correspondidas",
missingTargetTables: "Tabelas de destino de mesmo nome ausentes: {tables}",
keyColumns: "Colunas-Chave",
keyColumnsPlaceholder: "Colunas primárias ou únicas separadas por vírgula",
keyColumnsAutoHint: "Deixe em branco para detectar automaticamente as chaves primárias na comparação de tabela única, ou por tabela na comparação em lote.",
rowCounts: "Origem com {source} linhas, destino com {target} linhas; comparação completa concluída",
previewLimitOption: "Pré-visualizar {count}",
compare: "Comparar Dados",
summary: "{added} adicionados, {removed} removidos, {modified} modificados",
batchSummary: "{tables} tabelas comparadas: {different} diferentes, {same} idênticas, {failed} com falha; {added} adicionados, {removed} removidos, {modified} modificados",
comparingTable: "Comparando {current}/{total}: {table}",
keyColumnsInline: "Colunas-chave: {columns}",
selectedInline: "Selecionados {selected}/{total}",
selectedSummary: "Selecionados: {added} adicionados, {removed} removidos, {modified} modificados",
selectAllKind: "Selecionar todos {kind}",
clearKind: "Limpar {kind}",
clearSelection: "Limpar todas as seleções",
showAllRows: "Mostrar todas as {count}",
showLessRows: "Mostrar menos",
remainingRows: "{count} linhas a mais ocultas na pré-visualização",
planningSync: "Atualizando plano de sincronização...",
noSelectedDifferences: "Nenhuma diferença foi selecionada para execução",
planSummary: "Plano: {inserts} inserções, {updates} atualizações, {deletes} exclusões, {statements} instruções",
statusDifferent: "Diferente",
statusSame: "Igual",
statusError: "Falhou",
noKeyColumns: "Selecione pelo menos uma coluna-chave",
missingKeyColumns: "As colunas-chave devem existir nas tabelas de origem e de destino: {columns}",
noCommonColumns: "As tabelas de origem e de destino não têm colunas em comum para comparar",
targetTableMissing: "Tabela de destino não encontrada: {table}",
noComparableTables: "Nenhuma tabela comparável encontrada. Verifique se existem tabelas de destino de mesmo nome.",
noDifferences: "Os dados são idênticos, nenhum SQL de sincronização é necessário",
syncSuccess: "Sincronização de dados executada com sucesso",
},
settings: {
title: "Configurações",
searchSettings: "Pesquisar configurações",
searchSettingsNoResults: "Nenhuma configuração encontrada",
searchSettingsResults: "Resultados da pesquisa de configurações",
clearSettingsSearch: "Limpar pesquisa de configurações",
exitSettingsSearch: "Voltar às configurações",
editorTab: "Editor",
sqlFormatterTab: "Formatador SQL",
sqlFormatterImport: "Importar configuração",
sqlFormatterExport: "Exportar configuração",
sqlFormatterImportSuccess: "Configuração do formatador importada.",
sqlFormatterCopyJson: "Copiar JSON",
sqlFormatterCopyJsonSuccess: "JSON copiado.",
sqlFormatterCopyJsonFailed: "Falha ao copiar: {message}",
sqlFormatterJsonEditorLoadFailed: "Falha ao carregar o editor JSON. Alternado para uma entrada básica: {message}",
sqlFormatterRestoreDefaults: "Restaurar padrões",
sqlFormatterFormMode: "Formulário",
sqlFormatterJsonMode: "JSON",
sqlFormatterKeywordCase: "Maiúsculas/minúsculas de palavras-chave",
sqlFormatterFunctionCase: "Maiúsculas/minúsculas de funções",
sqlFormatterDataTypeCase: "Maiúsculas/minúsculas de tipos de dados",
sqlFormatterIdentifierCase: "Maiúsculas/minúsculas de identificadores",
sqlFormatterCaseUpper: "Maiúsculas",
sqlFormatterCaseLower: "Minúsculas",
sqlFormatterCasePreserve: "Preservar",
sqlFormatterIndent: "Recuo",
sqlFormatterIndentSpaces: "Espaços",
sqlFormatterIndentTabs: "Tabulações",
sqlFormatterTabWidth: "Largura do tab",
sqlFormatterIndentStyle: "Estilo de recuo",
sqlFormatterIndentStyleStandard: "Padrão",
sqlFormatterIndentStyleTabularLeft: "Tabular esquerda",
sqlFormatterIndentStyleTabularRight: "Tabular direita",
sqlFormatterLogicalOperatorNewline: "Quebra de linha no operador lógico",
sqlFormatterLogicalBefore: "Antes do operador",
sqlFormatterLogicalAfter: "Depois do operador",
sqlFormatterExpressionWidth: "Largura da expressão",
sqlFormatterLinesBetweenQueries: "Linhas entre consultas",
sqlFormatterDenseOperators: "Operadores compactos",
sqlFormatterNewlineBeforeSemicolon: "Ponto e vírgula em nova linha",
sqlFormatterAdvancedOptions: "Opções avançadas",
sqlFormatterParams: "Parâmetros",
sqlFormatterParamTypes: "Tipos de parâmetro",
sqlFormatterEditorShortcuts: "Atalhos",
sqlFormatterShortcutAction: "Ação",
sqlFormatterShortcutEnabled: "Ativo",
sqlFormatterShortcutWindows: "Windows",
sqlFormatterShortcutLinux: "Linux",
sqlFormatterShortcutMacos: "macOS",
sqlFormatterShortcutFind: "Localizar",
sqlFormatterShortcutReplace: "Substituir",
sqlFormatterShortcutIndentMore: "Aumentar recuo",
sqlFormatterShortcutIndentLess: "Reduzir recuo",
sqlFormatterShortcutDuplicateLine: "Duplicar linha atual",
sqlFormatterShortcutDeleteLine: "Excluir linha atual",
sqlFormatterShortcutMoveLine: "Mover linha",
sqlFormatterShortcutMoveLineUp: "Mover linha para cima",
sqlFormatterShortcutMoveLineDown: "Mover linha para baixo",
sqlFormatterShortcutCopyLine: "Copiar linha",
sqlFormatterShortcutCopyLineUp: "Copiar linha para cima",
sqlFormatterShortcutCopyLineDown: "Copiar linha para baixo",
sqlFormatterShortcutUndo: "Desfazer",
sqlFormatterShortcutRedo: "Refazer",
sqlFormatterShortcutSelectAll: "Selecionar tudo",
sqlFormatterShortcutFormatJson: "Formatar JSON",
sqlFormatterShortcutApply: "Aplicar configuração",
sqlFormatterConfigErrorInvalidJson: "JSON inválido.",
sqlFormatterConfigErrorObject: "A configuração deve ser um objeto JSON.",
sqlFormatterConfigErrorVersion: "Versão de configuração não compatível.",
sqlFormatterConfigErrorFormatter: "Formatador não compatível.",
sqlFormatterConfigErrorUnsupportedParams: "A substituição params não é compatível. A formatação SQL não substituirá marcadores.",
sqlFormatterConfigErrorOptionsObject: "As opções de configuração devem ser um objeto JSON.",
sqlFormatterConfigErrorEditorObject: "A configuração do editor deve ser um objeto JSON.",
sqlFormatterConfigErrorEditorScope: "Escopo de editor não compatível.",
sqlFormatterConfigErrorEditorPlatforms: "Plataformas de editor inválidas.",
sqlFormatterConfigErrorEditorShortcutsArray: "Os atalhos do editor devem ser um array.",
sqlFormatterConfigErrorEditorShortcutValue: "Atalho de editor inválido.",
sqlFormatterConfigErrorUnknownOption: "Opção desconhecida do formatador: {option}.",
sqlFormatterConfigErrorInvalidOptionValue: "Valor inválido para {option}.",
sqlFormatterConfigErrorUnknownEditorShortcut: "Atalho de editor desconhecido: {shortcut}.",
sqlFormatterConfigErrorInvalidEditorShortcut: "Atalho de editor inválido: {shortcut}.",
sqlFormatterConfigErrorDuplicateEditorShortcut: "Atalho de editor duplicado: {shortcut}.",
sqlFormatterConfigErrorInvalidConfig: "Configuração do formatador inválida.",
appearanceTab: "Aparência",
navigationTab: "Navegação",
dataTab: "Dados",
tunnelsTab: "Túneis",
tunnelsDescription: "Configurações reutilizáveis de túneis SSH / proxy / HTTP. Configure uma vez e selecione o perfil na aba de túnel de uma conexão; as edições aqui se aplicam a todas as conexões que usam o perfil.",
tunnelsEmpty: "Ainda não há perfis de túnel. Crie um aqui e selecione-o nas configurações de túnel de uma conexão.",
tunnelsAddSsh: "Adicionar SSH",
tunnelsAddProxy: "Adicionar proxy",
tunnelsAddHttp: "Adicionar túnel HTTP",
tunnelsProfileName: "Nome do perfil",
tunnelsProfileNamePlaceholder: "ex.: Bastion do escritório",
tunnelsDelete: "Excluir",
tunnelsUnnamedProfile: "Perfil sem nome",
tunnelsSave: "Salvar",
tunnelsReset: "Redefinir",
tunnelsSaved: "Perfis de túnel salvos",
tunnelsSaveFailed: "Falha ao salvar os perfis de túnel: {message}",
tunnelsUnsavedHint: "Alterações não salvas",
tunnelsTest: "Testar",
tunnelsTesting: "Testando...",
tunnelsTestSuccess: "Teste de túnel bem-sucedido",
tunnelsTestFailed: "Falha no teste do túnel: {message}",
tunnelsHttpTestSuccess: "Conexão com proxy HTTP CONNECT bem-sucedida ({code})",
tunnelsSocks5TestSuccess: "Conexão com proxy SOCKS5 bem-sucedida",
tunnelsProxyHostRequired: "O host do proxy é obrigatório.",
tunnelsProxyPortRequired: "A porta do proxy é obrigatória.",
tunnelsSshHostRequired: "O host SSH é obrigatório.",
tunnelsHttpTunnelUnsupported: "O teste de túnel não é compatível com perfis de túnel HTTP.",
tunnelsProxyTimedOut: "Conexão com o proxy expirou ({duration})",
tunnelsProxyConnectFailed: "Falha ao conectar ao proxy: {error}",
tunnelsProxyHandshakeFailed: "Handshake com o proxy falhou: {error}",
tunnelsProxyHandshakeTimedOut: "Handshake com o proxy expirou ({duration})",
tunnelsHttpConnectFailed: "CONNECT do proxy HTTP falhou: {detail}",
tunnelsSocksInvalidVersion: "Versão de proxy SOCKS inválida: {version}",
tunnelsSocksAuthTooLong: "Usuário ou senha SOCKS muito longo",
tunnelsSocksAuthFailed: "Autenticação do proxy SOCKS falhou",
tunnelsSocksAuthRejected: "O proxy SOCKS rejeitou todos os métodos de autenticação",
tunnelsSocksUnsupportedAuth: "O proxy SOCKS selecionou um método de autenticação não compatível: {method}",
tunnelsSocksHostTooLong: "Host do proxy muito longo para endereço SOCKS5",
tunnelsSocksConnectRejected: "Conexão com proxy SOCKS rejeitada (código {code})",
tunnelsSocksUnsupportedAddrType: "Tipo de endereço de bind SOCKS não compatível: {type}",
redisTab: "Redis",
shortcutsTab: "Atalhos",
snippetsTab: "Snippets",
syncTab: "Sincronização",
aiTab: "IA",
mcpTab: "MCP",
jdbcTab: "Drivers JDBC",
securityTab: "Segurança",
aboutTab: "Sobre",
fontFamily: "Família da fonte",
dataGridFontFamily: "Fonte da grade de resultados",
dataGridFontFamilyDescription: "Aplica-se aos resultados de consultas, dados de tabelas, cabeçalhos de colunas e editores dentro das células.",
uiFontFamily: "Fonte da interface",
uiFontAppDefault: "Padrão do DBX",
uiFontSystemDefault: "Padrão do sistema",
uiFontFamilyDescription: "Aplica-se à barra superior, abas, barra lateral, diálogos e demais UI fora do editor.",
selectFont: "Selecionar fonte...",
searchFont: "Pesquisar fontes...",
loadingFonts: "Carregando fontes...",
noFontsFound: "Nenhuma fonte encontrada",
useCustomFont: "Usar “{font}”",
languageTitle: "Idioma / 语言",
fontSize: "Tamanho da fonte",
toolbarTitle: "Barra de ferramentas",
toolbarHiddenHint: "Alguns botões ocultos ou excedentes aparecerão no menu «Mais».",
exclusiveRightSidebarPanels: "Mostrar um painel lateral direito por vez",
exclusiveRightSidebarPanelsDescription: "Abrir um painel lateral direito fecha os demais. Desative para permitir vários painéis.",
uiScale: "Escala da UI",
uiScaleDescription: "Dimensione toda a UI do desktop para telas de alta resolução (high-DPI). As alterações são aplicadas imediatamente e restauradas na próxima inicialização.",
theme: "Tema",
cornerStyle: "Estilo dos cantos",
cornerStyleNone: "Sem arredondamento",
cornerStyleSmall: "Pequenos",
cornerStyleLarge: "Grandes",
selectTheme: "Selecionar tema...",
colorTheme: "Tema de cores",
selectColorTheme: "Selecionar tema de cores...",
themePalettePearl: "Branco",
themePaletteMist: "Cinza névoa",
themePaletteGraphite: "Cinza titânio",
themePaletteCobalt: "Azul cobalto",
themePaletteSage: "Verde sálvia",
themePaletteAmber: "Amarelo quente",
themePaletteBlush: "Rosa sakura",
themePaletteVscode: "VS Code",
themePaletteIdea: "IDEA",
themePaletteXcode: "Xcode",
themePaletteJetbrains: "JetBrains",
themePaletteCursor: "Cursor",
themePaletteClaude: "Claude Code",
followAppTheme: "Seguir o tema do app",
appLayout: "Layout da interface",
appLayoutSeparated: "Separado moderno",
appLayoutSeparatedDescription: "Separação clara de painéis com abas em estilo de bloco.",
appLayoutClassic: "Clássico compacto",
appLayoutClassicDescription: "Barra de abas contínua com cabeçalhos de painel compactos.",
tabLayout: "Estouro da barra de abas",
tabLayoutScroll: "Rolagem em linha única",
tabLayoutScrollDescription: "As abas rolam horizontalmente quando excedem o espaço.",
tabLayoutWrap: "Quebra em múltiplas linhas",
tabLayoutWrapDescription: "As abas quebram em múltiplas linhas para exibir todas.",
iconTheme: "Estilo do ícone e do logo",
iconThemeDefault: "Padrão",
iconThemeDefaultDescription: "Usar o ícone colorido do app DBX.",
iconThemeBlack: "Preto",
iconThemeBlackDescription: "Use o logo preto da DBX no app.",
iconThemeBlackDescriptionMac: "No app, usa o logo preto; o Dock usa base preta e a barra de menus segue o sistema.",
showTrayIcon: "Mostrar ícone na bandeja/barra de menus",
showTrayIconDescription: "Quando desativado, nenhum ícone é exibido, mas fechar a janela ainda oculta o DBX em segundo plano como antes.",
quitOnClose: "Sair ao fechar a janela",
quitOnCloseDescription: "Quando ativado, o botão de fechar encerra o DBX completamente em vez de minimizar para a bandeja.",
closeActionPromptTitle: "Fechar janela",
closeActionPromptDescription: "Escolha o que acontece ao clicar no botão de fechar. Você pode alterar depois em Configurações → Aparência.",
closeActionQuit: "Sair do DBX",
closeActionMinimize: "Minimizar para a bandeja",
updateNotificationsEnabled: "Ativar lembretes de atualização",
updateNotificationsEnabledDescription: "Quando desativado, o DBX não verificará automaticamente atualizações do app ou dos drivers nem mostrará indicadores. Verificações manuais continuam disponíveis.",
updateDownloadSource: "Fonte de download de atualização",
updateDownloadSourceDescription: "Escolha de onde os instaladores de atualização no aplicativo são baixados. A fonte oficial é recomendada; CNB pode ser mais rápido em redes da China continental.",
updateDownloadSourceOfficial: "Fonte oficial (recomendada)",
updateDownloadSourceCnb: "CNB",
debugLoggingEnabled: "Ativar logs de depuração",
debugLoggingEnabledDescription: "Registra logs locais de diagnóstico do lado do usuário ao investigar relatos. Desativado por padrão.",
duckDbWorkerProcessIsolation: "Modo de isolamento de processo do DuckDB (experimental)",
duckDbWorkerProcessIsolationDescription: "Executa consultas DuckDB em um processo worker separado. Se uma consulta longa não responder ao cancelamento, o DBX pode encerrar o processo worker para liberar o bloqueio do arquivo de banco de dados.",
duckDbWorkerMaxProcesses: "Máximo de workers simultâneos do DuckDB",
duckDbWorkerMaxProcessesDescription: "Limita quantos processos worker do DuckDB o DBX pode executar ao mesmo tempo. Intervalo: 1-16. Padrão: 4.",
duckDbWorkerProcessIsolationRestartRequired: "Reinicie o DBX para que esta alteração entre em vigor.",
restartDbx: "Reiniciar DBX",
restartDbxFailed: "Falha ao reiniciar o DBX: {error}",
debugLogsCopy: "Copiar logs",
debugLogsCopied: "Copiado",
debugLogsDownload: "Baixar logs",
debugLogsDownloaded: "Baixado",
debugLogsClear: "Limpar logs",
tableStructureSection: "Estrutura da tabela",
dataGridDisplay: "Exibição da grade de dados",
tableOpenPageSize: "Linhas padrão por página ao abrir tabelas",
tableOpenPageSizeDescription: "Linhas carregadas por página ao abrir uma nova tabela. Alterar as linhas por página atualiza esse padrão para futuras abas de tabelas.",
showColumnCommentsInHeader: "Mostrar comentários de coluna sob os nomes",
showColumnCommentsInHeaderDescription: "Exibir comentários de colunas da tabela diretamente abaixo dos nomes das colunas da grade.",
showColumnTypesInHeader: "Mostrar tipos de coluna sob os nomes",
showColumnTypesInHeaderDescription: "Exibir o tipo de dado de cada coluna diretamente abaixo dos nomes das colunas da grade.",
compactColumnHeaderActions: "Ferramentas compactas no cabeçalho da coluna",
compactColumnHeaderActionsDescription: "Mover as ferramentas de formatação e filtro local para um menu de mais opções para que os nomes das colunas tenham prioridade.",
dataGridQuickEntry: "Entrada rápida na grade",
dataGridQuickEntryDescription: "Quando ativado, editar uma célula ou preencher a linha vazia inferior salva no banco de dados assim que o foco sai. Ajuda na entrada frequente, mas pode causar gravações acidentais.",
dataGridAutoTransposeSingleRow: "Transpor automaticamente resultados de consulta com uma única linha",
dataGridAutoTransposeSingleRowDescription: "Quando ativado, os resultados de consultas SQL com exatamente uma linha e várias colunas alternam automaticamente para a visualização transposta.",
infiniteScroll: "Carregamento por rolagem infinita",
autoCalculateTotalRows: "Calcular automaticamente o total de linhas",
autoCalculateTotalRowsDescription: "Executa COUNT(*) automaticamente após cada consulta para mostrar o total de linhas correspondentes. Desativado por padrão para manter consultas grandes rápidas; você pode calculá-lo quando quiser no rodapé dos resultados.",
infiniteScrollDescription: "Carregar automaticamente a próxima página de dados ao rolar até o final da tabela.",
infiniteScrollMaxRows: "Máximo de linhas em rolagem infinita",
infiniteScrollMaxRowsDescription: "Número máximo de linhas a carregar no modo de rolagem infinita (1000–50000).",
regexMaxMatchCount: "Máximo de correspondências para selecionar todas",
regexMaxMatchCountDescription: "Limita o número de seleções criadas por Selecionar todas as correspondências; a contagem da pesquisa permanece completa (100–10000).",
tableColumnTemplateFields: "Campos predefinidos para novas tabelas",
tableColumnTemplateFieldsDescription: "Escolha um tipo de banco de dados e configure os tipos dos campos predefinidos usados ao criar novas tabelas.",
tableColumnTemplateAdd: "Adicionar campo",
tableColumnTemplateColumn: "Campo",
tableColumnTemplateDatabase: "Banco de dados",
tableColumnTemplateType: "Tipo",
tableColumnTemplateLength: "Comprimento",
tableColumnTemplateDefault: "Padrão",
tableColumnTemplateNoPresetType: "Sem tipo predefinido",
tableColumnTemplateRequired: "Obrigatório",
tableColumnTemplateComment: "Descrição",
tableColumnTemplateDragHandle: "Arraste para reordenar",
sidebarActivation: "Ativação da barra lateral",
sidebarActivationSingle: "Clique único",
sidebarActivationSingleDescription: "Abrir itens acionáveis da barra lateral com um clique.",
sidebarActivationDouble: "Clique duplo",
sidebarActivationDoubleDescription: "Clique único seleciona linhas; clique duplo abre itens.",
sidebarObjectDisplay: "Layout de objetos da barra lateral",
sidebarObjectDisplayGrouped: "Visualização avançada",
sidebarObjectDisplayGroupedDescription: "Agrupar objetos por tabelas, views, procedures e funções para bancos de dados com mais tipos de objetos.",
sidebarObjectDisplaySimple: "Visualização simples",
sidebarObjectDisplaySimpleDescription: "Listar tabelas e views diretamente sob cada banco de dados ou schema para reduzir os níveis intermediários.",
autoSelectActiveSidebarNode: "Sempre selecionar o item aberto",
autoSelectActiveSidebarNodeDescription: "Ao alternar abas, selecionar a tabela, coleção ou arquivo SQL correspondente visível na barra lateral.",
openTabsRestoreMode: "Restaurar abas ao iniciar",
openTabsRestoreModeDescription: "Escolha como o DBX restaura as abas que estavam abertas na última vez.",
openTabsRestoreModeAll: "Manter todas as abas",
openTabsRestoreModePinned: "Apenas abas fixadas",
openTabsRestoreModeNone: "Não manter abas",
openTabsRestoreModeHint: "As abas fixadas permanecem no lado esquerdo da barra de abas e funcionam bem como pontos de entrada frequentes.",
disconnectTabHandlingMode: "Abas após desconectar",
disconnectTabHandlingModeDescription: "Escolha como as abas relacionadas devem ser tratadas após fechar uma conexão ou banco de dados.",
disconnectTabHandlingModeCloseTabs: "Fechar todas as abas",
disconnectTabHandlingModeCloseTabsDescription: "Fechar todas as abas relacionadas à conexão ou ao banco de dados.",
disconnectTabHandlingModeKeepTabsClearResults: "Fechar abas de objetos, manter abas SQL",
disconnectTabHandlingModeKeepTabsClearResultsDescription: "Fechar abas de dados de tabela, navegador de objetos e estrutura, mantendo as abas de consultas SQL e o texto SQL, e também limpar o estado de execução e as sessões de resultados.",
disconnectTabHandlingModeKeepTabsKeepResults: "Não fechar abas relacionadas",
disconnectTabHandlingModeKeepTabsKeepResultsDescription: "Manter abas relacionadas, texto SQL e resultados atuais sem limpeza adicional.",
reuseDataTab: "Reutilizar aba de dados",
reuseDataTabDescription: "Reutiliza abas de dados ao abrir tabelas pela barra lateral; ao reabrir a mesma tabela pelo navegador de objetos, alterna para a aba existente.",
sidebarHiddenTablePrefixes: "Prefixos de nome de tabela ocultos",
sidebarHiddenTablePrefixesDescription: "Um prefixo por linha. Apenas os rótulos de tabela, view e coleção da barra lateral são encurtados; tooltips e ações ainda usam o nome completo.",
sidebarHiddenTablePrefixesPlaceholder: "Exemplo:\nODS_\nT8Y2_LONG_",
sidebarTablePageSize: "Tamanho da página da barra lateral",
sidebarTablePageSizeDescription: "Número máximo de tabelas/objetos carregados por página na árvore lateral. Aumente se tiver muitas tabelas para reduzir páginas.",
sidebarTableSearchEnabled: "Ativar busca de tabelas por banco",
sidebarTableSearchEnabledDescription: "Mostra uma busca local sob bancos, schemas ou grupos de tabelas expandidos para filtrar tabelas separadamente.",
sidebarObjectInfoMode: "Informações adicionais laterais",
sidebarObjectInfoModeDescription:
"Escolha comentários, tamanhos de objetos ou nenhum texto após os nomes. Comentários e tamanhos são mutuamente exclusivos. O tamanho total dos bancos aceita PostgreSQL; os tamanhos das tabelas aceitam MySQL, PostgreSQL, GaussDB, Kingbase, GBase 8a, SQL Server, Oracle, Dameng e ClickHouse.",
sidebarObjectInfoModeCommentInline: "Comentários (junto ao nome)",
sidebarObjectInfoModeCommentAligned: "Comentários (alinhar nível)",
sidebarObjectInfoModeCommentRight: "Comentários (alinhar à direita)",
sidebarObjectInfoModeSize: "Tamanho do objeto",
sidebarObjectInfoModeHidden: "Nenhuma",
sidebarAllowHorizontalScroll: "Permitir rolagem horizontal da barra lateral",
sidebarAllowHorizontalScrollDescription: "Mostrar nomes longos de tabelas, views e coleções por completo, permitindo a rolagem horizontal da barra lateral.",
snippetsDescription: "Personalize os modelos de snippets SQL acionados no editor.",
syncSnippetProviderGitee: "Snippets do Gitee",
snippetsAdd: "Adicionar snippet",
snippetsLabel: "Rótulo",
snippetsPrefix: "Prefixo",
snippetsStatus: "Status",
snippetsEnabled: "Ativo",
snippetsDisabled: "Desativado",
snippetsToggle: "Ativar ou desativar snippet",
snippetsBody: "Corpo SQL",
snippetsLabelPlaceholder: "ex.: select *",
snippetsPrefixPlaceholder: "ex.: sel",
snippetsBodyPlaceholder: "SELECT *\nFROM table\nLIMIT 100;",
snippetsRestoreDefaults: "Restaurar padrões",
snippetsAddTitle: "Adicionar snippet",
snippetsEditTitle: "Editar snippet",
syncWebDavTitle: "Sincronização WebDAV",
syncWebDavDescription: "Envie ou restaure um snapshot do DBX, incluindo a biblioteca SQL salva, a partir de um serviço de armazenamento compatível com WebDAV.",
syncEndpoint: "URL do WebDAV",
syncUsername: "Nome de usuário",
syncPassword: "Senha",
syncPasswordPlaceholder: "Digite a senha",
syncClearSavedPassword: "Limpar senha salva",
syncRememberWebDavPassword: "Lembrar senha do app WebDAV",
syncSavedPassword: "(salva)",
syncRememberWebDavPasswordDescription: "A senha é criptografada e armazenada apenas neste dispositivo. Ela não é sincronizada para o WebDAV e não substitui a senha de sincronização.",
syncRemotePath: "Caminho remoto do snapshot",
syncRemotePathDescription: "O DBX criará as pastas pai ausentes ao enviar.",
syncSecretNotice: "Por padrão, o DBX sincroniza apenas detalhes de conexão e configurações. Senhas de banco de dados, senhas SSH, senhas de proxy, strings de conexão e chaves de API de IA permanecem locais.",
syncSecrets: "Sincronizar segredos criptografados",
syncSecretsDescription: "Quando ativado, o DBX criptografa senhas de banco de dados, senhas SSH e chaves de API de IA antes de enviá-las para o WebDAV.",
syncSecretsPassphrase: "Senha de sincronização",
syncSecretsPassphraseDescription: "Esta senha é usada apenas para criptografar e restaurar dados sensíveis. O DBX não a salva; digite-a novamente em cada dispositivo.",
syncTest: "Testar",
syncUpload: "Enviar",
syncDownload: "Baixar",
syncTestSuccess: "O destino WebDAV está acessível.",
syncUploadSuccess: "Enviados {bytes} bytes para {path}.",
syncAutoUpload: "Enviar snapshots automaticamente",
syncAutoUploadInterval: "A cada",
syncAutoUploadMinutes: "minutos",
syncAutoUploadDescription: "Executa enquanto o DBX está aberto. Downloads ainda exigem confirmação manual para evitar substituir SQL salvos localmente.",
syncAutoUploadSuccess: "Enviados automaticamente {bytes} bytes para {path}.",
syncDownloadSuccess: "Baixados e aplicados {bytes} bytes de {path}.",
syncSecretsApplied: "Os segredos criptografados foram restaurados.",
syncSecretsSkipped: "Havia segredos criptografados, mas não foram restaurados.",
syncDownloadConfirm: "Baixar e aplicar o snapshot remoto do DBX? Os metadados locais e os SQL salvos serão substituídos.",
apply: "Aplicar",
applyAndClose: "Aplicar e fechar",
reset: "Redefinir",
resetDefaults: "Redefinir padrões",
resetAllDefaults: "Redefinir todos os padrões",
save: "Salvar",
cancel: "Cancelar",
executeMode: "Modo de execução (Cmd+Enter)",
executeModeAll: "Executar todo o SQL",
executeModeCurrent: "Executar instrução no cursor",
showExecutionTargetPicker: "Mostrar seletor de destino",
showExecutionTargetPickerDescription: "Quando ativado, executar sem seleção permite escolher entre a instrução atual e todo o SQL.",
showStatementRunButtons: "Mostrar botões de execução laterais",
showStatementRunButtonsDescription: "Mostra botões para executar cada instrução na margem do editor SQL. Atalhos de teclado e execução pelo menu de contexto continuam funcionando quando desativado.",
showCurrentStatementFrame: "Mostrar moldura da instrução atual",
showCurrentStatementFrameDescription: "Quando ativado, o editor SQL desenha um contorno ao redor da instrução executável atual; quando desativado, o contorno fica oculto.",
showInsertValueHints: "Mostrar dicas de colunas em VALUES de INSERT",
showInsertValueHintsDescription: "Quando ativado, o editor SQL mostra o nome da coluna ao lado de cada valor em cláusulas INSERT ... VALUES.",
previewStatementRunButton: "Botão de execução de instrução na prévia",
wordWrap: "Quebra de linha",
wordWrapDescription: "Quebrar linhas SQL longas dentro da largura do editor",
vimMode: "Modo Vim",
vimModeDescription: "Usar edição modal no estilo Vim no editor SQL",
autoCloseBrackets: "Fechar parênteses automaticamente",
autoCloseBracketsDescription: "Inserir automaticamente parênteses e aspas de fechamento ao digitar os de abertura",
sqlSemanticDiagnosticsEnabled: "Diagnóstico semântico de SQL",
sqlSemanticDiagnosticsEnabledDescription: "Quando ativado, o editor relata problemas semânticos como tabelas e colunas desconhecidas. Desative para reduzir a análise e verificações de metadados em SQL grande.",
confirmDangerousSqlExecution: "Confirmar antes de SQL perigoso",
confirmDangerousSqlExecutionDescription: "Quando desativado, ALTER, DROP, DELETE, TRUNCATE e outros SQL perigosos são executados sem a caixa de diálogo de aviso.",
continueOnErrorOnBatch: "Continuar em erro",
continueOnErrorOnBatchDescription: "Quando ativado, a execução de múltiplas instruções continua após um erro em vez de parar na primeira falha.",
confirmUnsavedSqlClose: "Confirmar antes de fechar SQL não salvo",
confirmUnsavedSqlCloseDescription: "Quando desativado, abas SQL com edições não salvas são fechadas ou o app é encerrado sem a caixa de diálogo de confirmação de salvamento.",
savedSqlOpenTarget: "Destino padrão do SQL salvo",
savedSqlOpenTargetSaved: "Destino salvo",
savedSqlOpenTargetSavedDescription: "Usar a conexão, o banco de dados e o esquema salvos com o arquivo SQL.",
savedSqlOpenTargetCurrent: "Aba atual",
savedSqlOpenTargetCurrentDescription: "Usar a conexão, o banco de dados, o esquema e o catálogo da aba ativa quando disponíveis; caso contrário, usar o destino salvo.",
prefillNewQueryWithSelect: "Preencher nova consulta com SELECT *",
prefillNewQueryWithSelectDescription: "Ao criar uma nova consulta, preenche o editor com SELECT * FROM <tabela> com base na aba de tabela ativa ou na tabela selecionada na barra lateral.",
clickTableNavigationTarget: "Ctrl+Clique abre DDL da tabela",
clickTableNavigationTargetDescription: "Quando ativado, Ctrl/Cmd+clicar no nome da tabela abre o editor de estrutura (DDL). Quando desativado, abre a visualização de dados.",
sqlVariableSyntax: "Substituição de variáveis e espaços reservados SQL",
sqlVariableSyntaxDescription: "Escolha quais sintaxes de variáveis e espaços reservados o DBX substitui antes de executar SQL, por tipo de banco de dados. Todas ativadas por padrão.",
sqlVariableSyntax_positional: "Espaço reservado posicional",
sqlVariableSyntax_positionalDescription: "Solicita um valor para substituir cada espaço reservado posicional em ordem.",
sqlVariableSyntax_named: "Espaço reservado nomeado",
sqlVariableSyntax_namedDescription: "Solicita um valor para substituir os espaços reservados nomeados.",
sqlVariableSyntax_shell: "Espaço reservado estilo shell",
sqlVariableSyntax_shellDescription: "Solicita um valor para substituir os espaços reservados de estilo shell.",
sqlVariableSyntax_mybatis: "Espaço reservado estilo MyBatis",
sqlVariableSyntax_mybatisDescription: "Solicita um valor para substituir os espaços reservados de estilo MyBatis.",
sqlVariableSyntax_sqlserver: "Espaço reservado estilo SQL Server",
sqlVariableSyntax_sqlserverDescription: "Solicita um valor para substituir os espaços reservados de estilo SQL Server (podem colidir com variáveis de sessão).",
sqlVariableSyntax_atSet: "Expansão de variáveis inline",
sqlVariableSyntax_atSetDescription: "Expande as declarações de variáveis inline e substitui seus valores antes de executar.",
autoAliasTables: "Adicionar alias de tabela automaticamente",
autoAliasTablesDescription: "Ao escolher uma tabela em FROM ou JOIN, insere um alias gerado como order_items AS oi.",
redisScanPageSize: "Contagem de scan do Redis",
redisScanPageSizeDescription: "Chaves solicitadas por página do Redis SCAN ao navegar pelas chaves.",
redisScanPageSizeOption: "{count} chaves",
exportBatchSize: "Tamanho do lote de exportação",
exportBatchSizeDescription: "Linhas buscadas por lote ao exportar dados da tabela (100-100000).",
exportRowLimitEnabled: "Limitar linhas exportadas",
exportRowLimitEnabledDescription: "Quando ativado, as exportações de resultados de consulta e dados de tabela param no limite de linhas abaixo.",
exportRowLimit: "Limite de linhas da exportação",
exportRowLimitDescription: "Máximo de linhas para exportações de resultados de consulta e dados de tabela.",
exportRowLimitUnlimited: "Ilimitado",
queryExportKeysetOptimizationEnabled: "Tentar otimização keyset",
queryExportKeysetOptimizationEnabledDescription: "Aplica-se apenas a consultas de tabela única reconhecidas com segurança; consultas complexas recuam automaticamente.",
exportSection: "Exportar",
shortcutExecuteSql: "Executar SQL",
shortcutExecuteSqlInNewResultTab: "Executar SQL em uma nova aba de resultados",
shortcutFind: "Localizar",
shortcutReplace: "Substituir",
shortcutSaveSql: "Salvar SQL",
shortcutAcceptCompletion: "Aceitar autocompletar",
shortcutFormatSql: "Formatar SQL",
shortcutToggleLineComment: "Alternar comentário de linha",
shortcutIndentMore: "Aumentar recuo",
shortcutIndentLess: "Reduzir recuo",
shortcutDuplicateLine: "Duplicar linha atual",
shortcutDeleteLine: "Excluir linha atual",
shortcutMoveLineUp: "Mover linha para cima",
shortcutMoveLineDown: "Mover linha para baixo",
shortcutCopyLineUp: "Copiar linha para cima",
shortcutCopyLineDown: "Copiar linha para baixo",
shortcutUndo: "Desfazer",
shortcutRedo: "Refazer",
shortcutSelectAll: "Selecionar tudo",
shortcutExtendSelection: "Expandir seleção",
shortcutCopyCurrentRow: "Copiar linha de dados atual",
shortcutDeleteCurrentRow: "Excluir linha de dados atual",
shortcutNewQuery: "Nova consulta",
shortcutOpenSettings: "Abrir configurações",
shortcutCloseTab: "Fechar aba",
shortcutToggleSidebar: "Alternar barra lateral",
shortcutFocusSearch: "Focar na pesquisa",
shortcutQuickOpen: "Abrir rapidamente (pesquisar todos os objetos do banco de dados)",
shortcutSwitchToPreviousTab: "Alternar para a aba anterior",
shortcutSwitchToNextTab: "Alternar para a próxima aba",
shortcutSwitchToTab1: "Alternar para a aba 1",
shortcutSwitchToTab2: "Alternar para a aba 2",
shortcutSwitchToTab3: "Alternar para a aba 3",
shortcutSwitchToTab4: "Alternar para a aba 4",
shortcutSwitchToTab5: "Alternar para a aba 5",
shortcutSwitchToTab6: "Alternar para a aba 6",
shortcutSwitchToTab7: "Alternar para a aba 7",
shortcutSwitchToTab8: "Alternar para a aba 8",
shortcutSwitchToTab9: "Alternar para a aba 9",
shortcutZoomInUi: "Aumentar zoom da UI",
shortcutZoomOutUi: "Diminuir zoom da UI",
shortcutResetUiZoom: "Redefinir zoom da UI",
shortcutRefreshData: "Atualizar dados",
shortcutToggleTranspose: "Alternar visualização transposta",
shortcutCancelSearch: "Cancelar pesquisa",
shortcutCopySidebarSelection: "Copiar seleção da barra lateral",
shortcutPasteSidebarSelection: "Colar na barra lateral",
shortcutEditSidebarConnection: "Editar conexão da barra lateral",
shortcutOpenDataInNewTab: "Abrir dados em nova aba (clique do mouse)",
shortcutSendSelectionToAi: "Enviar seleção para IA",
shortcutToggleFold: "Recolher/expandir código",
shortcutScopeGlobal: "Global",
shortcutScopeEditor: "Editor SQL",
shortcutScopeGrid: "Grade de dados",
shortcutScopeSearch: "Campos de pesquisa",
shortcutScopeSidebar: "Barra lateral",
shortcutPressShortcut: "Pressione o atalho",
shortcutSearchPlaceholder: "Pesquisar atalhos",
shortcutSearchNoResults: "Nenhum atalho corresponde à pesquisa.",
shortcutConflict: "Este atalho conflita com outra ação no mesmo escopo.",
shortcutClear: "Limpar atalho",
preview: "Pré-visualização ao vivo",
customTheme: "Tema personalizado",
customThemeConfigure: "Configurar tema personalizado",
customThemeTitle: "Configuração do tema personalizado",
customThemeMyThemes: "Meus temas",
customThemeNewTheme: "Novo tema",
customThemeVisualEdit: "Editor visual",
customThemeJsonConfig: "Configuração JSON",
customThemeLivePreview: "Pré-visualização ao vivo",
customThemePreviewExample: "Exemplo de consulta",
customThemePreset: "Tema predefinido",
customThemeSelectPreset: "Selecionar tema predefinido...",
customThemeApply: "Aplicar",
customThemePasteImport: "Importar colado",
customThemeExportJson: "Exportar JSON",
customThemeSaveAndApply: "Salvar e aplicar",
customThemeKeyword: "Palavra-chave",
customThemeField: "Campo/Variável",
customThemeFunction: "Função",
customThemeString: "String",
customThemeNumber: "Número",
customThemeComment: "Comentário",
customThemeTable: "Tabela",
customThemeOperator: "Operador",
customThemeType: "Tipo",
customThemeBuiltin: "Integrado",
customThemeBackground: "Plano de fundo",
customThemeForeground: "Primeiro plano",
customThemeDefaultName: "Tema personalizado",
customThemeCopySuffix: " Cópia",
customThemeApplied: 'Esquema de cores "{name}" aplicado',
customThemeKeepOne: "Mantenha pelo menos um tema",
customThemeJsonError: "Formato JSON inválido, verifique",
jdbcPlugin: "Plugin JDBC do DBX",
jdbcPluginInstall: "Instalar plugin JDBC",
jdbcPluginInstallSuccess: "Plugin JDBC instalado",
jdbcPluginUpdate: "Atualizar",
jdbcPluginUninstall: "Desinstalar",
jdbcPluginUninstallSuccess: "Plugin JDBC desinstalado",
jdbcPluginInstalled: "Instalado: v{version}",
jdbcPluginIncompatible: "Protocolo incompatível",
jdbcPluginNotInstalled: "Não instalado",
jdbcDrivers: "JARs de driver JDBC",
jdbcImport: "Importar JAR",
jdbcImportPath: "Caminho de importação",
jdbcDriverPathPlaceholder: "/caminho/para/driver.jar",
jdbcImportSuccess: "{count} arquivo(s) de driver importado(s)",
jdbcDeleteSuccess: "Driver removido",
jdbcNoDrivers: "Nenhum driver JDBC importado ainda.",
mcpTitle: "Servidor MCP",
mcpDescription: "Verifique a instalação e a versão do Servidor MCP do DBX usado pelo Claude Code, Cursor e outros agentes.",
mcpChecking: "Verificando",
mcpStatusUnknown: "Não verificado",
mcpStatusError: "Falha na verificação",
mcpReady: "Pronto",
mcpNotInstalled: "Não instalado",
mcpUpdateAvailable: "Atualização disponível",
mcpCurrent: "Versão atual",
mcpLatest: "Versão mais recente",
mcpVersionMissing: "Nenhuma instalação global detectada",
mcpVersionUnknown: "Desconhecida",
mcpAvailable: "Disponível",
mcpUnavailable: "Indisponível",
mcpBinPath: "Caminho do comando",
mcpInstallCommand: "Comando de instalação",
mcpUpdateCommand: "Comando de atualização",
mcpInstallButton: "Instalar",
mcpUpdateButton: "Atualizar",
mcpUpToDate: "Atualizado",
mcpInstalling: "Instalando...",
mcpInstallSuccess: "Instalação bem-sucedida",
mcpInstallFailed: "Falha na instalação",
mcpConfig: "Configuração do MCP",
mcpConfigOptionsHint:
"O DBX controla centralmente o acesso às conexões e as permissões de execução para todos os clientes MCP. A configuração gerada contém apenas os parâmetros de execução necessários para iniciar o servidor MCP e conectá-lo a esta instância do DBX, sem variáveis de permissão ou escopo de conexão.",
mcpScopeConnection: "Conexões permitidas para MCP",
mcpScopeConnectionDescription: "O DBX expõe ao MCP apenas as conexões selecionadas. As alterações se aplicam a todos os clientes MCP.",
mcpScopeMode: "Modo de escopo das conexões",
mcpScopeModeAll: "Todas as conexões",
mcpScopeModeAllDescription: "Inclui automaticamente conexões futuras",
mcpScopeModeSelected: "Conexões específicas",
mcpScopeModeSelectedDescription: "Somente conexões adicionadas explicitamente",
mcpScopeAllowedPane: "Permitidas",
mcpScopeAvailablePane: "Disponíveis",
mcpScopeAddAll: "Adicionar todas",
mcpScopeRemoveAll: "Remover todas",
mcpScopeAddMatches: "Adicionar correspondências ({count})",
mcpScopeRemoveMatches: "Remover correspondências ({count})",
mcpScopeAddConnection: "Permitir que o MCP acesse {name}",
mcpScopeRemoveConnection: "Remover o acesso MCP a {name}",
mcpScopeAvailableEmpty: "Não há conexões disponíveis para adicionar",
mcpScopeAllowedEmpty: "Nenhuma conexão está permitida no momento",
mcpScopeUnavailableGroup: "Conexões indisponíveis ({count})",
mcpScopeRemoveUnavailableConnection: "Remover a conexão indisponível {id} da lista permitida",
mcpScopeUpdatedAnnouncement: "O MCP permite atualmente {selected} de {total} conexões disponíveis",
mcpConnectionSearchPlaceholder: "Buscar nome, tipo, endereço, banco ou ID da conexão",
mcpConnectionSearchEmpty: "Nenhuma conexão correspondente",
mcpConnectionListEmpty: "Nenhuma conexão disponível",
mcpScopeAllAction: "Permitir todas",
mcpScopeNoneAction: "Limpar todas",
mcpScopeAllSummary: "Todas as {count} conexões",
mcpScopeSelectedSummary: "{selected}/{total} selecionadas",
mcpScopeAllConnections: "Todas as conexões",
mcpScopeNoConnections: "Nenhuma conexão",
mcpScopeConnectionUnavailable: "Conexão selecionada anteriormente (indisponível)",
mcpScopeConnectionUnavailableDescription: "{count} conexões selecionadas não existem mais. Seus IDs permanecem na lista de permissões, mas nenhuma conexão correspondente é exposta no momento.",
mcpScopeSelectedCount: "{count} conexões selecionadas",
mcpCodexConfig: "Configuração do Codex",
mcpCodexConfigPath: "O Codex pode usar ~/.codex/config.toml ou um .codex/config.toml no nível do projeto.",
mcpCursorConfigPath: "O Cursor pode usar .cursor/mcp.json no projeto ou ~/.cursor/mcp.json globalmente.",
mcpTraeConfigPath: "TRAE: Configurações > MCP > Adicionar > Adicionar manualmente; depois cole a configuração JSON.",
mcpCherryStudioConfigPath: "Cherry Studio: Configurações > Servidores MCP > Adicionar servidor > Importar JSON; depois cole a configuração.",
mcpVsCodeConfigPath: "O VS Code/Copilot pode usar .vscode/mcp.json no workspace ou mcp.json no perfil do usuário.",
mcpWindsurfConfigPath: "O Windsurf pode usar ~/.codeium/windsurf/mcp_config.json.",
mcpOpenCodeConfigPath: "~/.config/opencode/opencode.json globalmente, ou opencode.json no nível do projeto.",
mcpExecutionMode: "Permissão de execução MCP",
mcpExecutionModeDescription: "Escolha o nível de permissão que o DBX aplica a todos os clientes MCP. As configurações de leitura e gravação do cliente não podem alterar este nível.",
mcpExecutionModeReadOnly: "Somente leitura",
mcpExecutionModeSafeWrite: "Leitura e gravação de dados",
mcpExecutionModeRecommended: "Recomendado",
mcpExecutionModeHighRiskWrite: "Acesso completo",
mcpExecutionModeReadOnlyDescription: "Permite apenas solicitações classificadas pelo DBX como leitura; bloqueia gravações reconhecidas e alterações de conexão. As permissões da conta do banco continuam sendo o limite de segurança final.",
mcpExecutionModeSafeWriteDescription: "Permite INSERT normal, UPDATE/DELETE com filtros efetivos, alterações MongoDB de escopo verificável e gravações Redis comuns ou exclusão de chaves explícitas; bloqueia alterações globais e estruturais.",
mcpExecutionModeHighRiskWriteDescription: "Além da leitura e gravação de dados, permite alterações na tabela inteira, DDL, TRUNCATE, limpeza do banco e outras operações de alto risco. As proteções de produção e somente leitura continuam ativas.",
mcpExecutionModeHighRiskConfirm: "O acesso completo permite alterações na tabela inteira, DDL, TRUNCATE, limpeza do banco e outras operações de alto risco. Deseja ativá-lo?",
mcpCapabilityTitle: "Comparação de recursos",
mcpCapabilityDescription: "Estas são operações representativas; solicitações que o DBX não consegue classificar com segurança exigem acesso completo.",
mcpCapabilityOperation: "Recurso",
mcpCapabilityRead: "Consultas e leituras",
mcpCapabilityScopedMutation: "Alterações de dados com escopo (INSERT, UPDATE/DELETE filtrados, gravação/exclusão de chaves explícitas)",
mcpCapabilityBroadMutation: "Atualizações/exclusões de tabelas inteiras e limpeza de dados",
mcpCapabilitySchemaAdmin: "DDL, alterações estruturais e administração de alto risco",
mcpCapabilityConnectionManagement: "Adicionar/remover conexões MCP",
mcpCapabilityAllowed: "Permitido",
mcpCapabilityBlocked: "Bloqueado",
mcpCapabilityAlwaysEnforced: "Todos os modos continuam sujeitos à lista de conexões permitidas, à proteção somente leitura, à proteção de produção e às permissões da conta do banco de dados.",
mcpPolicySaveFailed: "Falha ao salvar a política de acesso MCP: {error}",
mcpPolicyLoadFailed: "Falha ao carregar a política de acesso MCP: {error}",
mcpDetectionTiming: "O DBX verifica automaticamente quando esta página é aberta; use Verificar novamente para atualizar.",
mcpNpmBoundary: "O DBX apenas verifica e explica o status do MCP; a instalação e as atualizações ainda são feitas pelo npm.",
mcpRefresh: "Verificar novamente",
mcpGuide: "Guia do MCP",
supportInfoTitle: "Informações de suporte",
supportInfoDescription: "Copie estes detalhes do ambiente ao abrir issues ou pedir ajuda.",
supportInfoCopy: "Copiar informações",
supportInfoCopied: "Copiado",
supportInfoLoading: "Carregando informações de suporte...",
supportInfoLoadFailed: "Falha ao carregar todas as informações de suporte: {message}",
supportInfoAppVersion: "Versão do DBX",
supportInfoRuntime: "Ambiente",
supportInfoRuntimeDesktop: "Desktop",
supportInfoRuntimeWeb: "Web",
supportInfoOperatingSystem: "Sistema operacional",
supportInfoArchitecture: "Arquitetura",
supportInfoUnknown: "Desconhecido",
community: "Comunidade",
qqGroup: "Grupo do QQ",
wechatGroup: "Grupo do WeChat",
wechatGroupInvite: "Convite do Tencent Docs",
project: "Projeto",
openSource: "Repositório de código aberto",
officialDocs: "Documentação oficial",
changelogTitle: "Registro de alterações",
changelogDescription: "Veja o que há de novo em cada versão.",
changelogLoading: "Carregando o registro de alterações...",
changelogLoadFailed: "Falha ao carregar o registro de alterações.",
changelogEmpty: "Ainda não há entradas no registro de alterações.",
changelogPublishedOn: "Publicado em {date}",
changelogNew: "NEW",
changelogLoadMore: "Carregar mais",
changelogOpenWebsite: "Ver no site",
changelogOpenGitHub: "GitHub Release",
changelogNoDetails: "Veja o GitHub Release para detalhes.",
changelogRetry: "Tentar novamente",
changelogSectionAdded: "Novidades",
changelogSectionImproved: "Melhorias",
changelogSectionFixed: "Correções",
changelogSectionChanged: "Alterações",
changelogSectionRemoved: "Removido",
shortcutUppercaseSelection: "Converter seleção em maiúsculas",
shortcutLowercaseSelection: "Converter seleção em minúsculas",
shortcutExPasteSqlInCondition: "ExPaste: colar como condição IN",
dateTimeSection: "Data e Hora",
globalDateTimeDisplayFormat: "Formato de exibição global",
globalDateTimeDisplayFormatDescription: "Aplicado a todos os campos de data e hora em todos os bancos de dados que não tenham formato de coluna configurado individualmente.",
globalDateTimeExportFormat: "Formato de exportação global",
globalDateTimeExportFormatDescription: "Formata campos de data e hora de forma uniforme ao exportar para CSV, Excel, JSON, Markdown e texto.",
globalDateTimeImportFormat: "Formato de importação global",
globalDateTimeImportFormatDescription: "Analisa datas e horas em arquivos importados de acordo com este formato; deixe em branco para detectar automaticamente formatos comuns.",
dateTimeFormatRaw: "Manter valor original do banco de dados",
dateTimeFormatAuto: "Detecção automática",
dateTimeFormatSearchPlaceholder: "Selecione ou digite um formato",
dateTimeFormatEmpty: "Insira um formato de data e hora personalizado",
routineSourceOpenMode: "Modo de abertura de funções/procedimentos/views",
routineSourceOpenModeQueryTab: "Aba de dados",
routineSourceOpenModeQueryTabDescription: "Abrir código-fonte em uma nova aba de dados, da mesma forma que executar uma consulta SQL.",
routineSourceOpenModeDialog: "Janela pop-up",
routineSourceOpenModeDialogDescription: "Abrir código-fonte em uma caixa de diálogo pop-up, facilitando a visualização e edição rápida.",
syncSnippetPassphrase: "Senha de criptografia do snippet",
syncSnippetPassphraseDescription: "Criptografa todo o snapshot do GitHub/Gitee. Não é salva e é separada da senha das credenciais sincronizadas.",
syncSnippetIncludeSecrets: "Incluir credenciais criptografadas ao enviar",
syncSnippetRestoreSecrets: "Restaurar credenciais criptografadas ao baixar",
syncSnippetMigrateLegacy: "Migrar snippet legado",
syncSnippetMigrateLegacyRequired: "Este snippet legado em texto simples deve ser migrado pela ação Migrar snippet legado.",
syncSnippetMigrateLegacyConfirm: "O DBX criará primeiro uma substituição criptografada e depois excluirá permanentemente o snippet legado em texto simples {id}. Esta ação não pode ser desfeita. Continuar?",
syncSnippetMigrateLegacySuccess: "O snippet criptografado {id} foi criado e o snippet legado em texto simples foi removido.",
syncSnippetMigrateLegacyCreated: "O snippet criptografado {id} foi criado.",
syncSnippetMigrateLegacyCleanupRequired: "O snippet criptografado foi criado, mas não foi possível excluir o snippet legado {id}. Exclua-o manualmente e altere as credenciais que possam ter sido expostas.",
syncSnippetRetryLegacyCleanup: "Tentar limpeza legada novamente",
syncSnippetLegacyCleanupSuccess: "O snippet legado em texto simples {id} foi removido.",
},
driverStore: {
jreDirRemoveFailed: "Não foi possível remover o diretório JRE antigo: {path} (erro original: {error})",
jreDirRemoveFailedWindows:
"Não foi possível remover o diretório JRE antigo: {path}\nCausas possíveis:\n - um processo dbx Agent / java ainda está usando o diretório\n - o antivírus está analisando o diretório\nFeche qualquer processo que possa estar usando o diretório, ou reinicie o dbx e tente novamente.\n(erro original: {error})",
jreInUseByDrivers: "O JRE {jre} está em uso pelos drivers: {drivers}. Desinstale-os primeiro.",
offlinePackageRegistryMissing: "agent-registry.json não encontrado no ZIP; não é um pacote de drivers offline válido.",
progressJreExtract: "Extraindo JRE...",
progressDownloadJre: "Baixando JRE",
progressDownloadDriver: "Baixando driver",
progressDownloadJdbcPlugin: "Baixando plugin JDBC",
progressJdbcPluginExtract: "Instalando plugin JDBC...",
usageTitle: "Uso de armazenamento",
usageTotal: "Total {size}",
usageTotalLabel: "Total",
calculating: "Calculando...",
usageManagedJre: "JRE gerenciada",
usageAgentDrivers: "Agentes de driver integrados",
usageDownloadCache: "Cache de downloads",
usageJdbcPlugin: "Plugin JDBC",
usageJdbcDriverJars: "JARs de driver JDBC",
clearDownloadCache: "Limpar cache",
downloadCacheClearSuccess: "Cache de downloads limpo",
downloadCacheClearFailed: "Falha ao limpar cache de downloads: {error}",
driverCategoryAll: "All Drivers",
driverCategoryLabel: "Category",
offlineDownloadHint: "Para ambientes sem internet, baixe pacotes de driver offline em uma máquina com acesso à internet e importe-os aqui.",
offlineDownloadLink: "Downloads de driver offline",
searchDrivers: "Pesquisar nome, tipo, versão do driver...",
searchJdbcDrivers: "Pesquisar nome ou caminho do driver JDBC...",
jdbcMavenCoordinatePlaceholder: "Coordenada Maven, ex.: org.postgresql:postgresql:42.7.7",
jdbcMavenInstall: "Instalar do Maven",
jdbcMavenInstallSuccess: "Driver JDBC Maven instalado",
jdbcSourceMaven: "Maven",
jdbcSourceManual: "Manual",
noMatchingDrivers: "Nenhum driver correspondente.",
javaRuntimeSaved: "Configurações de runtime do Java salvas",
javaRuntimeSaveFailed: "Falha ao salvar configurações de runtime do Java: {error}",
chooseJavaExecutable: "Escolher executável do Java",
driverInstallSuccess: "Driver {label} instalado",
driverInstallFailed: "Falha ao instalar o driver {label}: {error}",
driverUpdateBlocked: "Feche estas conexões de banco de dados antes de atualizar os drivers: {labels}",
upgradeAllSuccess: "{count} driver(s) atualizado(s)",
upgradeAllPartial: "{count} driver(s) atualizado(s). Ignorados: {failed}",
upgradeAllFailed: "Falha na atualização em lote: {error}",
driverUninstallSuccess: "Driver {label} desinstalado",
driverUninstallFailed: "Falha ao desinstalar o driver {label}: {error}",
chooseOfflineDriverPackage: "Escolher pacote de driver offline",
offlineImportSuccess: "Importação offline concluída. {count} driver(s) instalado(s).",
offlineImportFailed: "Falha na importação offline: {error}",
driverImportSuccess: "Driver {label} importado",
driverImportFailed: "Falha ao importar o driver {label}: {error}",
chooseDriverJar: "Escolher arquivo do driver",
jreReinstallSuccess: "JRE {jre} reinstalada",
jreReinstallFailed: "Falha ao reinstalar a JRE {jre}: {error}",
jreUninstallSuccess: "JRE {jre} desinstalada",
chooseJdbcPluginZip: "Escolher arquivo zip do plugin JDBC",
agentDrivers: "Drivers integrados",
jdbcDrivers: "Drivers JDBC",
importing: "Importando...",
importOfflinePackage: "Importar pacote offline",
refresh: "Atualizar",
javaRuntime: "Runtime do Java",
javaRuntimeManaged: "JRE gerenciada pelo DBX",
javaRuntimeSystem: "Java do sistema",
javaRuntimeCustom: "Caminho personalizado",
saving: "Salvando...",
customJavaPathPlaceholder: "/caminho/para/java ou /caminho/para/jdk",
choose: "Escolher",
systemJavaHint: "Usar o java do PATH atual.",
jreRuntimeTitle: "Runtime da JRE {jre}",
notInstalled: "Não instalado",
reinstalling: "Reinstalando",
installing: "Instalando",
install: "Instalar",
reinstall: "Reinstalar",
uninstall: "Desinstalar",
jreRuntime: "Runtime da JRE",
jreRuntimeAutoDownloadHint: "Baixada automaticamente ao instalar um driver pela primeira vez",
driversUpdatable: "{count} driver(s) pode(m) ser atualizado(s)",
updatesAvailableTitle: "Atualizações disponíveis",
updatesAvailableDescription: "Novas versões estão disponíveis para os drivers abaixo. Atualize para obter os recursos e correções mais recentes.",
allDriversTitle: "Todos os drivers",
upgradingProgress: "Atualizando ({current}/{total})",
upgradeAll: "Atualizar todos",
queued: "Na fila",
importLocalJar: "Importar arquivo de driver local",
updating: "Atualizando",
update: "Atualizar",
localInstall: "Instalação local",
runtimeDrivers: "Runtime",
storageTab: "Armazenamento",
runtimeTitle: "Runtime do driver",
runtimeHint: "As métricas de runtime são coletadas apenas enquanto este painel está aberto.",
runtimeRunning: "Em execução",
runtimeMemory: "Memória",
runtimeHealth: "Integridade",
runtimeHealth_healthy: "Saudável",
runtimeHealth_warning: "Aviso",
runtimeHealth_error: "Erro",
runtimeLastError: "Último erro",
runtimeEmpty: "Nenhum runtime de driver ainda. Abra uma conexão baseada em agente para iniciar um.",
runtimeKindAgent: "Agente",
runtimeKindPlugin: "Plugin",
runtimeSourceDaemon: "Daemon",
runtimeSourceConnection: "Conexão",
runtimeStatus_running: "Em execução",
runtimeStatus_stopped: "Parado",
runtimeStatus_error: "Erro",
runtimeStatus_unknown: "Desconhecido",
runtimePid: "PID",
runtimeUptime: "Tempo ativo",
runtimeActions: "Ações",
runtimeStop: "Parar",
runtimeRestart: "Reiniciar",
runtimeControlConnectionOwned: "Feche a conexão de banco de dados para parar este runtime.",
runtimeStopSuccess: "Runtime {label} parado",
runtimeStopFailed: "Falha ao parar {label}: {error}",
runtimeRestartSuccess: "Runtime {label} reiniciado",
runtimeRestartFailed: "Falha ao reiniciar {label}: {error}",
driverStoreDir: "Caminho de armazenamento de drivers",
driverStoreDirDescription: "Configure locais separados para o plugin JDBC e dados de Agent/JRE. O app será reiniciado automaticamente após a migração.",
pluginStoreDir: "Diretório do plugin JDBC",
pluginStoreDirDescription: "Armazena o plugin JDBC, Maven resolver e jars de drivers JDBC.",
agentStoreDir: "Diretório Agent / JRE",
agentStoreDirDescription: "Armazena pacotes de drivers Agent, JREs gerenciados e cache de runtime.",
driverStoreDirDefault: "Padrão (diretório de instalação)",
driverStoreDirChange: "Alterar",
driverStoreDirReset: "Restaurar padrão",
driverStoreDirMigrating: "Migrando {target}…",
driverStoreDirConfirm: "Alterar {target} migrará os dados relacionados para o novo local. Conexões relacionadas podem ser desconectadas durante a migração. O app será reiniciado automaticamente após. Continuar?",
driverStoreDirMigrationFailed: "Falha na migração de drivers: {error}",
driverStoreDirDialogTitle: "Selecionar {target}",
driverStoreDirSuccess: "{target} alterado, reiniciando…",
},
databaseExport: {
title: "Exportar banco de dados",
options: "Opções",
includeStructure: "Estrutura da tabela (DDL)",
includeCreateDatabase: "Incluir criação do banco (CREATE DATABASE / USE)",
dropTableIfExists: "Adicionar DROP TABLE IF EXISTS antes do DDL",
omitAutoIncrement: "Omitir AUTO_INCREMENT (para scripts de instalação do zero)",
includeData: "Dados da tabela (INSERT)",
includeObjects: "Views / Procedures / Funções / Sequências",
databaseSelection: "Bancos de dados",
selectedDatabases: "{selected}/{total} selecionados",
selectAllDatabases: "Selecionar todos",
filterDatabases: "Pesquisar bancos de dados...",
clearDatabases: "Limpar",
runInBackground: "Executar em segundo plano",
tableSelection: "Tabelas",
selectedTables: "{selected}/{total} selecionadas",
selectAllTables: "Selecionar todas",
filterTables: "Pesquisar tabelas...",
clearTables: "Limpar",
loadingTables: "Carregando tabelas...",
tableLoadError: "Falha ao carregar tabelas: {error}",
noTables: "Nenhuma tabela encontrada",
export: "Exportar",
exportAllDatabases: "Exportar todos os bancos de dados",
exporting: "Exportando...",
preparing: "Preparando exportação (lendo tabelas e metadados)...",
preparingObject: "Preparando: {object}",
selectExportDirectory: "Selecionar diretório de exportação",
currentDatabase: "Banco de dados {current}/{total}",
currentTable: "Atual: {table} ({current}/{total})",
rowsExported: "{current}/{total} objetos processados, {count} linhas exportadas",
allRowsExported: "Total de linhas exportadas: {count}",
exportSuccess: "Banco de dados exportado com sucesso",
exportAllSuccess: "{count} bancos de dados exportados com sucesso",
allDatabasesTask: "Todos os bancos de dados ({count})",
exportError: "Falha na exportação: {error}",
exportCancelled: "Exportação cancelada",
},
nacos: {
dashboard: "Painel",
dashboardTitle: "Painel de operações",
dashboardUpdatedAt: "Atualizado {time}",
dashboardAutoRefresh: "Atualização automática",
dashboardOff: "Desativada",
dashboardNamespaces: "Namespaces",
dashboardConfigs: "Configurações",
dashboardServices: "Serviços",
dashboardInstances: "Instâncias",
dashboardClients: "Clientes",
dashboardConnections: "{count} conexões",
dashboardNodes: "Nós saudáveis",
dashboardCpu: "CPU",
dashboardMemory: "Memória",
dashboardLoad: "Carga {value}",
dashboardCountsChart: "Descoberta de serviços",
dashboardResourcesChart: "Uso de recursos",
dashboardClusterNodes: "Nós do cluster",
dashboardSite: "Site",
dashboardLastRefresh: "Última atualização",
dashboardNoNodes: "Os detalhes dos nós não estão disponíveis",
dashboardPartial: "{count} fontes de dados não estão disponíveis",
dashboardMemoryUsed: "Heap / memória usada",
dashboardMemoryMax: "Máximo {value}",
dashboardRss: "Memória RSS",
dashboardVms: "Memória virtual",
dashboardJvmThreads: "Threads daemon da JVM",
dashboardGcPauses: "Pausas de GC",
dashboardTrafficSection: "Tráfego de requisições",
dashboardRequestRateChart: "Requisições HTTP / gRPC por segundo",
dashboardLatencyChart: "Latência das requisições",
dashboardHttpQps: "QPS HTTP",
dashboardGrpcQps: "QPS gRPC",
dashboardHttpAverage: "Média HTTP",
dashboardHttpP50: "HTTP P50",
dashboardHttpP95: "HTTP P95",
dashboardHttpP99: "HTTP P99",
dashboardGrpcAverage: "Média gRPC",
dashboardGrpcP50: "gRPC P50",
dashboardGrpcP95: "gRPC P95",
dashboardGrpcP99: "gRPC P99",
dashboardReliabilitySection: "Confiabilidade",
dashboardErrorRateChart: "Taxa de erros",
dashboardExecutorChart: "Executor gRPC",
dashboardHttpErrors: "Erros HTTP",
dashboardGrpcErrors: "Erros gRPC",
dashboardExecutorPool: "Tamanho do pool",
dashboardExecutorActive: "Ativos",
dashboardExecutorQueue: "Na fila",
dashboardConfigSection: "Central de configuração",
dashboardConfigRateChart: "Operações de configuração por segundo",
dashboardConfigStateChart: "Listeners e trabalho pendente",
dashboardConfigGets: "Consultas",
dashboardConfigPublishes: "Publicações",
dashboardLongPolling: "Long polling",
dashboardListenerClients: "Clientes listener",
dashboardListenerKeys: "Chaves listener",
dashboardNotifyTasks: "Tarefas de notificação",
dashboardNotifyClientTasks: "Notificações de clientes",
dashboardDumpTasks: "Tarefas dump",
dashboardNamingSection: "Descoberta de serviços",
dashboardNamingStateChart: "Serviços, instâncias e clientes",
dashboardPushRateChart: "Pushes por segundo",
dashboardPushDetailChart: "Latência e tarefas pendentes de push",
dashboardPushAverage: "Latência média",
dashboardPushMaximum: "Latência máxima",
dashboardPushPending: "Tarefas pendentes",
dashboardSubscribers: "Assinantes",
dashboardPushes: "Pushes",
dashboardFailedPushes: "Pushes com falha",
dashboardEmptyPushes: "Pushes vazios",
configs: "Configurações",
services: "Serviços",
raw: "Raw",
namespace: "Namespace",
createNamespace: "Criar Namespace",
editNamespace: "Editar Namespace",
creatingNamespace: "Criando...",
updatingNamespace: "Atualizando...",
namespaceCreated: 'Namespace "{name}" criado',
namespaceUpdated: 'Namespace "{name}" atualizado',
namespaceId: "ID do Namespace",
namespaceIdPlaceholder: "Deixe vazio para o Nacos gerar",
namespaceName: "Nome do Namespace",
namespaceNamePlaceholder: "Digite um nome de namespace",
namespaceDesc: "Descrição",
namespaceDescPlaceholder: "Padrão é o nome do namespace",
dataId: "Data ID",
group: "Grupo",
format: "Formato",
content: "Conteúdo",
tags: "Tags",
application: "Aplicação",
description: "Descrição",
advanced: "Avançado",
collapse: "Recolher",
configIdentity: "Identidade da configuração",
newConfigDraft: "Nova configuração",
draft: "Rascunho",
unsaved: "Não salva",
published: "Publicada",
readOnlyState: "Somente leitura",
load: "Carregar",
save: "Salvar",
saveAs: "Salvar como",
saving: "Salvando...",
saved: "Configuração salva",
createdAndLoaded: "{dataId} criado e carregado",
savedAndLoaded: "{dataId} salvo e atualizado",
deleted: "Configuração excluída",
delete: "Excluir",
copy: "Copiar",
copied: "Copiado",
copyVerifyFailed: "A verificação da área de transferência falhou após a gravação",
export: "Exportar",
exported: "Exportado",
exportedTo: "Exportado para {path}",
exportFailed: "Falha ao exportar: {message}",
contentSearch: "Pesquisa de texto completo",
contentSearchTitle: "Pesquisa de texto completo nas configurações do Nacos",
contentSearchDescription: "Executa uma pesquisa literal com diferenciação de maiúsculas e minúsculas no conteúdo publicado atual. As versões do histórico não são pesquisadas.",
contentSearchPlaceholder: "URL do banco, conta ou qualquer trecho de configuração",
search: "Pesquisar",
cancel: "Cancelar",
currentNamespace: "Namespace atual",
allNamespaces: "Todos os namespaces desta conexão",
allNamespacesSearchWarning: "Pesquisar em todos os namespaces pode percorrer muitas configurações. Pode ser lento no Nacos 2.x e no r-nacos e aumentar a carga do servidor.",
scannedCount: "{count} verificadas",
matchCount: "{count} correspondências",
incompleteResult: "Os resultados podem estar incompletos",
lineNumber: "Linha {line}",
noContentMatches: "Nenhuma configuração contém este conteúdo",
contentSearchEmptyHint: "Digite uma palavra-chave. Palavras-chave, conteúdo e trechos não são persistidos em disco nem nos logs.",
searchResults: "Resultados da pesquisa",
searchResultsRetainedHint: "Abra um resultado na área de conteúdo. Este conjunto continuará disponível em Resultados da pesquisa na barra superior.",
openedSearchResult: "Aberta",
exportSearchResults: "Exportar resultados",
clearSearchResults: "Limpar resultados",
searchResultsExported: "Resultados da pesquisa exportados",
searchResultsExportedTo: "Resultados da pesquisa exportados para {path}",
batchExport: "Exportação em lote",
batchImport: "Importação em lote",
copyToNamespace: "Sincronizar configurações",
selectedCount: "{count} selecionadas",
retryConnectionInfo: "Tentar detectar a conexão novamente",
resizeColumn: "Arraste para redimensionar a coluna",
selectCurrentPage: "Selecionar página atual",
selectConfigForBatch: "Selecionar configuração {dataId}",
batchExportTitle: "Exportar configurações do Nacos em lote",
batchExportDescription: "Cria um ZIP compatível com o console do Nacos. Ele contém configurações descriptografadas em texto simples e deve ser armazenado com segurança.",
batchImportTitle: "Importar configurações do Nacos em lote",
batchImportDescription: "Analisa o arquivo com segurança e mostra os conflitos antes de publicar cada item no namespace atual.",
batchCopyTitle: "Sincronizar configurações com outro namespace",
batchCopyDescription: "A sincronização é uma cópia unidirecional e não exclui nem altera a origem. Os conflitos no destino seguem a política selecionada.",
exportScope: "Escopo das configurações",
selectedConfigs: "Configurações selecionadas ({count})",
filteredConfigs: "Todas do filtro atual (estimativa: {count})",
namespaceAllConfigs: "Todas as configurações deste namespace",
importArchive: "Arquivo ZIP do Nacos",
noArchiveSelected: "Nenhum ZIP selecionado",
chooseZip: "Escolher ZIP",
importSensitiveWarning: "Um ZIP compatível pode conter senhas de banco, chaves e outros segredos em texto simples. Importe apenas arquivos confiáveis.",
targetConnection: "Conexão de destino",
chooseTargetConnection: "Escolha uma conexão Nacos de destino",
noTargetConnections: "Não há conexões Nacos graváveis disponíveis. Adicione uma ou desative o modo somente leitura da conexão de destino.",
targetNamespace: "Namespace de destino",
chooseTargetNamespace: "Escolha outro namespace",
copyKeepsSource: "A sincronização usa cópia unidirecional. As configurações do namespace de origem permanecem inalteradas.",
conflictPolicy: "Política de conflitos",
policyABORT: "Abortar ao encontrar conflito",
policyABORTHint: "Não gravar nada se a prévia encontrar um conflito",
policySKIP: "Ignorar conflitos",
policySKIPHint: "Criar somente configurações ausentes no destino",
policyOVERWRITE: "Sobrescrever destino",
policyOVERWRITEHint: "Substituir configurações de mesma chave no destino pela origem",
overwriteWarning: "A sobrescrita altera configurações publicadas no destino e exige uma confirmação adicional.",
overwriteConfirm: "Sobrescrever todas as configurações em conflito no namespace de destino? Isso não pode ser desfeito automaticamente.",
preview: "Prévia",
apply: "Aplicar",
exportZip: "Exportar ZIP",
previewTotal: "{count} no total",
previewCreated: "{count} novas",
previewConflicts: "{count} conflitos",
previewInvalid: "{count} inválidas",
previewExpired: "A prévia está desatualizada. Gere-a novamente.",
batchFinished: "Sincronização concluída: {written} gravadas",
batchAborted: "Sincronização não executada: um conflito impediu todas as gravações",
batchPartial: "A operação em lote foi concluída parcialmente; revise os itens com falha",
batchCancelled: "Cancelada",
batchCancelledSummary: "Sincronização cancelada: {processed}/{total} processadas",
batchFailedSummary: "Sincronização parcial: {written} gravadas, {failed} com falha",
batchPartialSummary: "Sincronização incompleta: {processed}/{total} processadas",
batchFinishedWithSkipped: "Sincronização concluída: {written} gravadas, {skipped} ignoradas",
batchStatusCreate: "Será criada",
batchStatusConflict: "Conflito",
batchStatusInvalid: "Inválida",
batchStatusCreated: "Criada",
batchStatusOverwritten: "Sobrescrita",
batchStatusSkipped: "Ignorada",
batchStatusFailed: "Falha",
batchStatusAborted: "Não executada",
batchStatusExported: "Exportada",
batchStatusUnknown: "{status}",
reportWritten: "{count} gravadas",
reportCreated: "{count} criadas",
reportOverwritten: "{count} sobrescritas",
reportSkipped: "{count} ignoradas",
reportFailed: "{count} com falha",
reportItems: "Detalhes das configurações ({count})",
history: "History",
configHistory: "Config history",
historyUnavailable: "O histórico de configurações não está disponível para esta conexão. Configure a URL do console r-nacos e reconecte para habilitá-lo.",
historyDisabled: "O histórico de configurações está desabilitado para esta conexão.",
historyConsoleUrlMissing: "O histórico de configurações precisa de uma URL do console r-nacos.",
historyConsoleCredentialsMissing: "O histórico de configurações precisa das credenciais do console r-nacos.",
rnacosConsoleAuthTitle: "Verificação do console r-nacos",
rnacosConsoleAuthDescription: "Informe o código de verificação do console r-nacos para ler tipos, descrições e histórico das configurações.",
rnacosCaptchaLabel: "Código de verificação",
rnacosCaptchaPlaceholder: "Informe o código exibido acima",
rnacosCaptchaRequired: "É necessário informar um código de verificação.",
rnacosCaptchaUnavailable: "O r-nacos não retornou uma imagem de verificação.",
rnacosRefreshCaptcha: "Atualizar código",
rnacosConsoleAuthSubmit: "Verificar e continuar",
historyDetail: "History detail",
historyCompareTitle: "History Version Compare",
currentPublishedContent: "Current published content:",
historyVersionContent: "History version content:",
updatedAt: "Updated at",
operationType: "Operation",
operator: "Operator",
view: "View",
compare: "Compare",
rollback: "Rollback",
loadingHistory: "Loading history...",
noHistory: "No history versions",
noHistoryHint: "Refresh if this config was just published. Some Nacos versions may not expose history APIs.",
historyCreate: "Create",
historyUpdate: "Update",
historyDelete: "Delete",
historyRollback: "Rollback",
confirmRollbackTitle: "Rollback Nacos config",
confirmRollbackMessage: "This will roll the current config back to the selected history version.",
rollbackSuccess: "Config rolled back",
publish: "Publicar",
dataIdRequired: "Data ID é obrigatório",
allGroups: "Todos os grupos",
noConfigs: "Nenhuma configuração",
selectConfig: "Selecione ou crie uma configuração",
noServices: "Nenhum serviço",
selectService: "Selecione um serviço",
service: "Serviço",
instances: "Instâncias",
instanceCount: "{count} instâncias",
refresh: "Atualizar",
address: "Endereço",
cluster: "Cluster",
weight: "Peso",
state: "Estado",
actions: "Ações",
query: "Query",
body: "Corpo",
response: "Resposta",
template: "Modelo",
configDiffTitle: "Comparar conteúdo da configuração",
inlineCompare: "Comparação inline",
currentVersionContent: "Versão oficial atual:",
publishVersionContent: "Conteúdo desta publicação:",
confirmSaveTitle: "Revisar alterações da configuração Nacos",
confirmSaveMessage: "Salvar esta alteração? +{added} / -{removed} linhas.",
confirmDeleteTitle: "Excluir configuração Nacos",
confirmDeleteMessage: "Isso remove a configuração selecionada do Nacos.",
confirmInstanceTitle: "Atualizar instância Nacos",
confirmInstanceMessage: "Confirme o estado de destino da instância.",
confirmRawTitle: "Enviar solicitação Raw API mutável",
confirmRawMessage: "Esta solicitação Raw API pode modificar o estado do Nacos.",
rawTemplate: {
serverState: "Estado do servidor",
namespaceList: "Lista de namespaces",
configDetail: "Detalhe da configuração",
serviceList: "Lista de serviços",
instanceList: "Lista de instâncias",
},
healthy: "Saudável",
unhealthy: "Não saudável",
enabled: "Ativado",
offline: "Offline",
ephemeral: "Efêmera",
persistent: "Persistente",
enable: "Ativar",
disable: "Desativar",
markHealthy: "Marcar saudável",
markUnhealthy: "Marcar não saudável",
send: "Enviar",
total: "{count} no total",
prev: "Anterior",
next: "Próximo",
test: "Testar",
readOnly: "Somente leitura",
},
gridfsBrowser: {
bucketCount: "Buckets",
fileCount: "Arquivos",
name: "Nome",
totalSize: "Tamanho",
chunkSize: "Tamanho do chunk",
uploadDate: "Data de upload",
contentType: "Tipo de conteúdo",
metadata: "Metadados",
selectBucket: "Selecione um bucket GridFS para visualizar ou abrir.",
selectFile: "Selecione um arquivo GridFS para visualizar ou gerenciar.",
emptyBuckets: "Nenhum bucket GridFS no momento. Você pode criar um.",
emptyFiles: "O bucket atual ainda não tem arquivos. Você pode fazer upload de um.",
createBucket: "Criar bucket",
openBucket: "Abrir bucket",
deleteBucket: "Excluir bucket",
createTitle: "Criar bucket GridFS",
deleteTitle: "Excluir bucket GridFS",
deleteMessage: "Tem certeza de que deseja excluir o bucket GridFS selecionado e todos os seus arquivos?",
bucketName: "Nome do bucket",
bucketNamePlaceholder: "example_bucket",
bucketCreated: "Bucket {bucket} criado.",
bucketDeleted: "Bucket {bucket} excluído.",
uploadFile: "Fazer upload de arquivo",
downloadFile: "Baixar arquivo",
downloadSelected: "Baixar selecionados",
deleteFile: "Excluir arquivo",
selectedCount: "{count} selecionados",
deleteFileTitle: "Excluir arquivo GridFS",
deleteFileMessage: "Tem certeza de que deseja excluir o arquivo selecionado do bucket GridFS atual?",
fileUploaded: "Arquivo {fileName} enviado.",
fileDeleted: "Arquivo {fileName} excluído.",
},
extension: {
installTitle: "Instalar extensão",
manageTitle: "Gerenciar extensão",
name: "Nome da extensão",
namePlaceholder: "Exemplo: pg_stat_statements",
install: "Instalar",
drop: "Remover",
available: "Extensões disponíveis",
installed: "Instaladas",
noAvailable: "Todas as extensões disponíveis já estão instaladas.",
noInstalled: "Nenhuma extensão instalada.",
},
sqlFileTree: {
title: "Arquivos SQL",
openFolder: "Abrir pasta",
closePanel: "Fechar",
loading: "Carregando...",
noFolder: "Nenhuma pasta aberta",
noSqlFiles: "Nenhum arquivo SQL encontrado",
folderAlreadyOpen: "Esta pasta já está aberta",
removeFolder: "Remover pasta",
openFailed: "Falha ao abrir a pasta: {message}",
loadFailed: "Falha ao carregar arquivos SQL: {message}",
desktopOnly: "Recurso disponível apenas no desktop",
refreshFolder: "Atualizar pasta",
refreshAll: "Atualizar tudo",
refreshed: "Atualizado",
revealInFileManager: "Mostrar no gerenciador de arquivos",
revealFailed: "Falha ao abrir o gerenciador de arquivos: {message}",
copyPath: "Copiar caminho",
pathCopied: "Caminho copiado",
copyFailed: "Falha ao copiar caminho",
openFile: "Abrir",
executeSqlFile: "Executar arquivo SQL",
expandAll: "Expandir todos",
collapseAll: "Recolher todos",
},
mqTopics: {
title: "Gerenciamento de tópicos",
searchPlaceholder: "Pesquisar tópico",
includeNonPersistent: "Incluir tópicos não persistentes",
refresh: "Atualizar",
refreshing: "Atualizando...",
createTopic: "Criar tópico",
selectTenantNamespace: "Selecione primeiro o locatário e o namespace",
loading: "Carregando...",
noTopics: "Nenhum tópico neste namespace",
noMatches: "Nenhum tópico correspondente",
name: "Nome",
type: "Tipo",
partitions: "Partições",
actions: "Ações",
nonPersistent: "Não persistente",
partitionedTopic: "Tópico particionado",
normalTopic: "Tópico normal",
partitionCount: "{count} partições",
partitionsUnknown: "Número de partições desconhecido",
adjustPartitions: "Ajustar partições",
delete: "Excluir",
tenantNamespace: "Locatário / Namespace",
topicName: "Nome do tópico",
topicNamePlaceholder: "Por exemplo: my-topic",
persistentRecommended: "Tópico persistente (recomendado)",
persistentHint: "Tópicos persistentes salvam as mensagens em disco, tópicos não persistentes salvam apenas na memória.",
enablePartitions: "Habilitar partições",
partitionQuantity: "Número de partições",
partitionHint: "As partições melhoram o desempenho de concorrência, mas aumentam o consumo de recursos.",
cancel: "Cancelar",
create: "Criar",
updatePartitionsTitle: "Ajustar número de partições: {name}",
currentPartitions: "Partições atuais",
newPartitions: "Novas partições",
partitionMinHint: "O número de partições só pode ser aumentado, não reduzido. Mínimo: {min}",
update: "Atualizar",
readOnly: "A conexão atual é somente leitura, não é possível executar operações de gravação.",
topicNameRequired: "O nome do tópico não pode estar vazio",
currentPartitionsUnknown: "O número atual de partições é desconhecido, não é possível ajustar com segurança.",
partitionMustIncrease: "O novo número de partições deve ser maior que o atual.",
confirmDelete: 'Tem certeza de que deseja excluir o tópico "{name}"? Esta operação é irreversível.',
systemTopic: "Tópico do sistema",
includeSystemTopics: "Incluir tópicos do sistema",
noUserTopics: "Nenhum tópico de negócio. Marque o filtro de tipo para ver tópicos internos/retry/DLQ.",
typeFilter: "Filtro de tipo",
messageType: "Tipo de mensagem",
messageTypeHint: "Após a criação, escreve a propriedade message.type na configuração do Broker Topic, consistente com o RocketMQ Dashboard.",
rocketmqType: {
normal: "Normal",
delay: "Atrasada",
fifo: "Ordenada",
transaction: "Transacional",
unspecified: "Não especificado",
retry: "Retry",
dlq: "DLQ",
system: "Sistema",
},
queues: "Filas",
tabQueues: "Filas",
tabExchanges: "Exchanges",
queueCount: "{count} filas",
clusterName: "Cluster",
brokerName: "Broker",
allBrokers: "Todos os Brokers Master",
readQueues: "Número de filas de leitura",
writeQueues: "Número de filas de escrita",
perm: "Permissão",
permReadWrite: "Leitura e Escrita (6)",
permRead: "Somente leitura (4)",
permWrite: "Somente escrita (2)",
actionStatus: "Status",
actionRoute: "Rota",
actionConsumers: "Consumidores",
actionConfig: "Configuração",
actionSend: "Enviar mensagem",
actionMessageQuery: "Consulta de mensagens",
actionReset: "Redefinir posição",
actionSkip: "Pular backlog",
topicStatusTitle: "Status do tópico: {name}",
topicRouteTitle: "Rota do tópico: {name}",
topicConsumersTitle: "Consumidores: {name}",
topicConfigTitle: "Configuração do tópico: {name}",
topicConfigHint: "Consistente com o RocketMQ Dashboard, suporta apenas modificar o número de filas de leitura/escrita e permissões. O tipo de mensagem é definido ao criar o tópico.",
topicResetTitle: "Redefinir posição: {name}",
topicSkipTitle: "Pular backlog: {name}",
confirmSkip: 'Tem certeza de que deseja redefinir todos os grupos de consumidores do tópico "{name}" para a posição mais recente?',
skipHint: "Redefine a posição de todos os grupos de consumidores inscritos neste tópico para a mais recente.",
saveConfig: "Salvar configuração",
resetPosition: "Redefinir posição",
positionEarliest: "Mais antigo",
positionLatest: "Mais recente",
positionTimestamp: "Por timestamp",
timestamp: "Timestamp",
invalidTimestamp: "Insira um timestamp válido",
resetTimePreview: "Hora atual: {time}",
noConsumerGroups: "Nenhum grupo de consumidores",
noConsumers: "Este tópico não possui grupos de consumidores",
manageConsumers: "Gerenciar",
routeQueues: "Dados da fila",
routeBrokers: "Dados do Broker",
brokerAddrs: "Endereço do Broker",
noRouteData: "Sem dados de rota",
noQueueStats: "Nenhuma estatística de fila",
noConfig: "Configuração do tópico não retornada",
queueId: "Fila",
beginOffset: "Offset mínimo",
endOffset: "Offset máximo",
messageCount: "Número de mensagens",
},
mqAdmin: {
viewTenant: "Ver locatário",
viewNamespace: "Ver namespace",
viewTopic: "Ver tópico",
readOnly: "Somente leitura",
allNamespaces: "Todos os namespaces",
newNamespace: "Novo namespace",
namespace: "Namespace",
selectNamespaceToCreate: "Selecione um namespace específico para criar",
selectNamespaceToWrite: "Selecione um namespace específico para realizar esta ação",
tabTenants: "Locatários",
tabNamespaces: "Namespaces",
tabTopics: "Tópicos",
tabSubscriptions: "Assinaturas",
tabMonitoring: "Monitoramento",
tabClients: "Clientes",
tabMessages: "Mensagens",
tabBroker: "Broker",
tabPolicies: "Políticas",
tabPermissions: "Permissões",
tabRawApi: "Raw API",
tabCluster: "Cluster",
tabConsumers: "Consumidores",
tabProducers: "Produtores",
tabDlq: "DLQ",
tabTrace: "Rastreamento",
tabAcl: "ACL",
},
mqMessages: {
title: "Enviar mensagem",
clear: "Limpar",
selectNamespaceOrTopicFirst: "Selecione primeiro um namespace ou tópico",
readOnlyCannotSend: "Esta conexão é somente leitura e não pode enviar mensagens",
selectTargetTopic: "Selecione um tópico de destino",
messageContentRequired: "O conteúdo da mensagem é obrigatório",
sendSuccess: "Mensagem enviada — partição: {partition}, offset: {offset}",
targetTopic: "Tópico de destino",
topicLoading: "Carregando...",
topicSearchPlaceholder: "Digite ou pesquise tópicos...",
refreshTopicList: "Atualizar lista de tópicos",
topicOptionWithPartitions: "{label} ({partitions} partições)",
noTopicsAvailable: "Nenhum tópico disponível",
topicSearchHint: "Pesquise por palavra-chave ou cole o nome de um tópico.",
messageKey: "Chave da mensagem",
optional: "Opcional",
messageContent: "Conteúdo da mensagem",
formatJson: "Formatar JSON",
messageHeaders: "Cabeçalhos",
headersPlaceholder: "chave: valor (um por linha)",
sending: "Enviando...",
sendMessage: "Enviar mensagem",
messageList: "Mensagens",
loadMessages: "Carregar mensagens",
loading: "Carregando...",
peekDefaultHint: "Sem partição definida, lê todas as partições desde Earliest, até {count} mensagens.",
count: "Quantidade",
advancedFilter: "Avançado (partição / offset)",
partition: "Partição",
partitionPlaceholderAll: "Vazio = todas",
offset: "Offset",
offsetPlaceholderEarliest: "Vazio = Earliest",
messagesLoading: "Carregando mensagens...",
noMessages: "Nenhuma mensagem",
selectTopicBeforeLoad: "Selecione um tópico antes de carregar mensagens",
partitionMustBeNonNegativeInt: "A partição deve ser um inteiro ≥ 0; deixe vazio para todas as partições",
offsetMustBeNonNegativeInt: "O Offset deve ser um inteiro ≥ 0; deixe vazio para Earliest",
metaPartition: "partição {partition}",
metaOffset: "offset {offset}",
metaKey: "chave {key}",
jsonBodyPlaceholder: "{'{'}\"key\": \"value\"{'}'}",
selectTopicPlaceholder: "Selecione um tópico",
messageTag: "Tag da mensagem",
exchange: "Exchange",
exchangePlaceholder: "Vazio = exchange padrão",
exchangeHint: "Quando definido, a mensagem é publicada neste exchange em vez de ir diretamente para a fila.",
routingKey: "Chave de roteamento",
queryTitle: "Consulta de mensagens",
queryTabTopic: "Por tópico",
queryTabKey: "Por Key",
queryTabMsgId: "Por MsgId",
queryTopicLabel: "Tópico",
noQueryResults: "Nenhum resultado encontrado",
tableMessageId: "ID da mensagem",
tableTag: "Tag",
tableKey: "Key",
tableStoreTime: "Hora de armazenamento",
tableOperation: "Operação",
viewDetails: "Ver",
messageDetails: "Detalhes da mensagem",
search: "Pesquisar",
messageQuery: "Consulta de mensagens",
queryByMsgId: "Por MsgId",
queryByKey: "Por Key",
queryByTopic: "Por tópico e hora",
msgId: "ID da mensagem",
msgIdPlaceholder: "Ex: 7F000001...",
msgIdRequired: "O ID da mensagem não pode estar vazio",
queryKey: "Key da mensagem",
queryKeyPlaceholder: "Key de negócio",
queryKeyRequired: "A Key da mensagem não pode estar vazia",
beginTime: "Hora inicial",
endTime: "Hora final",
maxNum: "Número máximo",
query: "Pesquisar",
querying: "Pesquisando...",
messageOverview: "Informações básicas",
messageBody: "Corpo da mensagem",
resendMessage: "Reenviar",
payloadCopied: "Copiado",
dlqConsumerGroupPlaceholder: "Grupo de consumidores (opcional)",
},
mqMonitoring: {
title: "Monitoramento",
autoRefresh: "Atualização automática",
refreshInterval5s: "5s",
refreshInterval10s: "10s",
refreshInterval30s: "30s",
refreshInterval60s: "60s",
refreshing: "Atualizando...",
refreshNow: "Atualizar",
selectTopicFirst: "Selecione um tópico primeiro",
loadingStats: "Carregando dados de monitoramento...",
kafkaTopicOverview: "Visão geral do tópico Kafka",
partitionCount: "Partições",
replicationFactor: "Fator de replicação",
messageCount: "Mensagens",
logEndOffset: "Log end offset",
offsetAndReplicaStatus: "Offsets e réplicas",
beginOffset: "Begin offset",
leaderCount: "Leaders",
isrHealthyPartitions: "ISR saudável",
noLeaderPartitions: "Sem leader",
kafkaPartitionDetails: "Partições Kafka",
noKafkaPartitionMetrics: "Nenhuma métrica de partição na resposta do Kafka",
tablePartition: "Partição",
tableBeginOffset: "Begin offset",
tableLogEndOffset: "Log end offset",
tableMessageCount: "Mensagens",
tableLeader: "Leader",
tableReplicas: "Réplicas",
tableIsr: "ISR",
tableStatus: "Status",
statusNoLeader: "Sem leader",
statusIsrIncomplete: "ISR incompleto",
statusHealthy: "Saudável",
kafkaMessageQuery: "Consulta de mensagens Kafka",
querying: "Consultando...",
queryMessages: "Consultar",
queryHint: "Omita PARTITION / OFFSET para ler todas as partições (máx. 100). Adicione-os para restringir o intervalo.",
sqlSyntaxError: 'Apenas SELECT * FROM "topic" [PARTITION n] [OFFSET n] [LIMIT n] é suportado',
messagesLoading: "Carregando mensagens...",
noMessages: "Nenhuma mensagem",
messageRate: "Taxa de mensagens",
inboundRate: "Taxa de entrada",
outboundRate: "Taxa de saída",
inboundThroughput: "Throughput de entrada",
outboundThroughput: "Throughput de saída",
rateTrend: "Tendência de taxa",
backlogTrend: "Tendência de backlog",
consumerLag: "Atraso do consumidor",
storageAndBacklog: "Armazenamento e backlog",
storageSize: "Tamanho do armazenamento",
backlogSize: "Tamanho do backlog",
backlogMessageCount: "Mensagens em backlog",
messageCounters: "Contadores de mensagens",
publishedMessages: "Publicadas",
consumedMessages: "Consumidas",
connectionStats: "Conexões",
subscriptionCount: "Assinaturas",
producerCount: "Produtores",
partitionDetails: "Partições",
tableInbound: "Entrada",
tableOutbound: "Saída",
tableInboundThroughput: "Throughput de entrada",
tableOutboundThroughput: "Throughput de saída",
tableBacklogMessages: "Msgs em backlog",
tableBacklogSize: "Tamanho do backlog",
tableProducers: "Produtores",
tableSubscriptions: "Assinaturas",
producers: "Produtores",
subscriptions: "Assinaturas",
tableName: "Nome",
tableRate: "Taxa",
tableAddress: "Endereço",
tableType: "Tipo",
tableBacklog: "Backlog",
tableConsumers: "Consumidores",
noProducers: "Nenhum produtor",
noSubscriptions: "Nenhuma assinatura",
noPartitionMetricsFromBroker: "Nenhuma métrica de partição do broker",
nonPartitionedTopicNoDetails: "Tópicos não particionados não têm detalhes de partição",
healthIndicators: "Saúde",
messageFlow: "Fluxo de mensagens",
backlogStatus: "Backlog",
producersLabel: "Produtores",
subscriptionsLabel: "Assinaturas",
flowActive: "Ativo",
flowIdle: "Ocioso",
backlogNormal: "Normal",
backlogHigh: "Alto",
producerConnected: "Conectado",
producerDisconnected: "Nenhum",
subscriptionActive: "Ativa",
subscriptionNone: "Nenhuma",
chartLegendIn: "Entrada",
chartLegendOut: "Saída",
chartLegendMessages: "Mensagens",
chartLegendBytes: "Bytes",
chartLegendConsumerLag: "Atraso do consumidor",
chartAxisMsgPerSec: "msg/s",
chartAxisMsg: "msg",
chartAxisBytes: "bytes",
chartAxisMs: "ms",
metaPartition: "partição {partition}",
metaOffset: "offset {offset}",
metaKey: "chave {key}",
rocketmqTopicOverview: "Visão geral do tópico RocketMQ",
rocketmqQueueDetails: "Detalhes do offset da fila",
queueCount: "Número de filas",
brokerCount: "Número de Brokers",
tableQueue: "Fila",
tableBroker: "Broker",
noRocketMqQueueMetrics: "Nenhuma métrica de fila",
},
mqTenants: {
title: "Gerenciamento de locatários",
createTenant: "Criar locatário",
notSupported: "O gerenciamento de locatários não é suportado para este sistema de mensageria",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
loading: "Carregando...",
name: "Nome",
adminRoles: "Funções de administrador",
allowedClusters: "Clusters permitidos*",
actions: "Ações",
none: "Nenhum",
edit: "Editar",
delete: "Excluir",
createDialogTitle: "Criar locatário",
editDialogTitle: "Editar locatário: {name}",
tenantName: "Nome do locatário*",
tenantNamePlaceholder: "por exemplo: my-tenant",
addRolePlaceholder: "Adicionar função",
add: "Adicionar",
selectClustersPlaceholder: "Selecione os clusters permitidos",
noClustersDetectedPlaceholder: "Nenhum cluster detectado; adicione manualmente",
clustersNotReturned: "A conexão não retornou uma lista de clusters",
addClusterPlaceholder: "Adicionar cluster manualmente",
clustersRequiredHint: "Selecione ou adicione pelo menos um cluster permitido",
cancel: "Cancelar",
create: "Criar",
save: "Salvar",
confirmDelete: 'Excluir o locatário "{name}"? Esta ação não pode ser desfeita.',
tenantNameRequired: "O nome do locatário é obrigatório",
allowedClustersRequired: "Os clusters permitidos são obrigatórios",
},
mqNamespaces: {
title: "Gerenciamento de namespaces",
createNamespace: "Criar namespace",
notSupported: "O gerenciamento de namespaces não é suportado para este sistema de mensageria",
selectTenantFirst: "Selecione um locatário primeiro",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
loading: "Carregando...",
name: "Nome",
tenant: "Locatário",
adminRoles: "Funções de administrador",
actions: "Ações",
none: "Nenhum",
editRoles: "Editar funções",
delete: "Excluir",
createDialogTitle: "Criar namespace",
namespaceName: "Nome do namespace*",
namespaceNamePlaceholder: "por exemplo: my-namespace",
cancel: "Cancelar",
create: "Criar",
confirmDelete: 'Excluir o namespace "{name}"? Esta ação não pode ser desfeita.',
namespaceNameRequired: "O nome do namespace é obrigatório",
},
mqSubscriptions: {
title: "Gerenciamento de assinaturas",
createSubscription: "Criar assinatura",
selectTopicFirst: "Selecione um tópico primeiro",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
loading: "Carregando...",
noSubscriptions: "Nenhuma assinatura para este tópico",
subscriptionName: "Nome da assinatura",
type: "Tipo",
backlog: "Backlog",
consumeRate: "Taxa de consumo",
consumers: "Consumidores",
actions: "Ações",
consumerCount: "{count} consumidores",
msgRate: "{rate} msg/s",
resetCursor: "Redefinir cursor",
skipMessages: "Pular mensagens",
clearBacklog: "Limpar backlog",
peek: "Peek",
expireMessages: "Expirar mensagens",
delete: "Excluir",
createDialogTitle: "Criar assinatura",
topic: "Tópico",
subscriptionNameLabel: "Nome da assinatura*",
subscriptionNamePlaceholder: "por exemplo: my-subscription",
startPosition: "Posição inicial",
startFromEarliest: "Da mensagem mais antiga (Earliest)",
startFromLatest: "Da mensagem mais recente (Latest)",
resetDialogTitle: "Redefinir cursor: {name}",
resetTo: "Redefinir para",
earliest: "Mensagem mais antiga (Earliest)",
latest: "Mensagem mais recente (Latest)",
timestamp: "Timestamp específico",
timestampMs: "Timestamp (ms)",
currentTime: "Hora atual: {time}",
reset: "Redefinir",
skipDialogTitle: "Pular mensagens: {name}",
skipMode: "Modo de pulo",
skipCount: "Pular quantidade especificada",
skipAll: "Pular todo o backlog",
skipCountLabel: "Quantidade a pular",
skip: "Pular",
peekDialogTitle: "Peek de mensagens: {name}",
count: "Quantidade",
refresh: "Atualizar",
noPeekMessages: "Nenhuma mensagem para visualizar",
close: "Fechar",
expireDialogTitle: "Expirar mensagens: {name}",
expireSeconds: "Tempo de expiração (segundos)",
expireHint: "Excluirá todas as mensagens mais antigas que {seconds} segundos",
expire: "Expirar",
cancel: "Cancelar",
create: "Criar",
confirmDelete: 'Excluir a assinatura "{name}"? Esta ação não pode ser desfeita.',
confirmClearBacklog: 'Limpar todas as mensagens em backlog da assinatura "{name}"?',
subscriptionNameRequired: "O nome da assinatura é obrigatório",
peekMessageKey: "chave={key}",
searchPlaceholder: "Pesquisar nome da assinatura",
subscribedTopics: "Tópicos inscritos",
refreshing: "Atualizando...",
noConsumerGroups: "Nenhum Consumer Group",
viewDetail: "Detalhes",
editConfig: "Configuração",
save: "Salvar",
consumerDetailTitle: "Detalhes do grupo de consumidores: {name}",
consumerConfigTitle: "Configuração do grupo de consumidores: {name}",
consumerOverview: "Visão geral",
consumerTerminals: "Terminais online",
consumerConsumeDetail: "Detalhes do consumo",
noOnlineConsumers: "Nenhum consumidor online no momento",
noConsumeDetail: "Nenhum detalhe de consumo",
operationTopic: "Topic",
consumeEnable: "Permitir consumo",
consumeBroadcastEnable: "Permitir consumo em broadcast",
consumeFromMinEnable: "Iniciar do offset mínimo",
consumeMessageOrderly: "Consumo ordenado",
retryQueueNums: "Número de filas de retry",
retryMaxTimes: "Máximo de tentativas de retry",
brokerId: "Broker ID",
whichBrokerWhenConsumeSlowly: "Broker ID para consumo lento",
mode: "Modo",
typeFilter: "Filtro de tipo",
rocketmqGroupType: {
normal: "Normal",
fifo: "Ordenado",
system: "Sistema",
},
rocketmqGroupMode: {
clustering: "Cluster",
broadcasting: "Broadcast",
},
},
mqClients: {
unloadTopicUnsupportedKafka: "O Kafka não suporta o descarregamento de tópicos",
title: "Produtores / Consumidores",
unloadTopic: "Descarregar tópico",
unloading: "Descarregando...",
refresh: "Atualizar",
refreshing: "Atualizando...",
selectTopicFirst: "Selecione um tópico primeiro",
confirmUnload: "Descarregar este tópico? Produtores e consumidores ativos serão reconectados.",
aggregateTopic: "Tópico agregado",
kafkaPartitionStatus: "Status das partições Kafka",
partitionCount: "{count} partições",
partition: "Partição",
beginOffset: "Begin offset",
latestOffset: "Latest offset",
messageCount: "Mensagens",
leader: "Leader",
replicas: "Réplicas",
isr: "ISR",
partitionClients: "Clientes da partição",
inboundRate: "Taxa de entrada",
outboundRate: "Taxa de saída",
producers: "Produtores",
subscriptions: "Assinaturas",
consumers: "Consumidores",
activeProducers: "Produtores ativos",
noActiveProducers: "Nenhum produtor ativo",
name: "Nome",
id: "ID",
address: "Endereço",
version: "Versão",
rate: "Taxa",
throughput: "Throughput",
rateValue: "{value} msg/s",
activeConsumers: "Consumidores ativos",
noSubscriptions: "Este tópico não tem assinaturas",
noConsumersOnPartition: "Nenhum consumidor ativo nesta assinatura de partição",
noConsumersOnSubscription: "Nenhum consumidor ativo nesta assinatura",
permits: "Permissões",
rocketmqClusterHint: "Exibe todos os terminais de Producer e Consumer Group online no Broker. Selecione um tópico para ver os detalhes do cliente do tópico.",
},
mqPolicies: {
title: "Gerenciamento de políticas",
refresh: "Atualizar",
refreshing: "Atualizando...",
selectTopicFirst: "Selecione um tópico primeiro",
selectNamespaceOrTopic: "Selecione um namespace ou tópico",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
readonlyHint: "Esta conexão é somente leitura; a edição de políticas está desativada.",
publishRate: "Limite de taxa de publicação",
msgsPerSecond: "Mensagens / segundo",
bytesPerSecond: "Bytes / segundo",
save: "Salvar",
dispatchRate: "Limite de taxa de despacho",
msgsPerPeriod: "Mensagens / período",
bytesPerPeriod: "Bytes / período",
periodSeconds: "Período (segundos)",
subscribeRate: "Limite de taxa de assinatura",
msgsPerConsumerPerPeriod: "Mensagens por consumidor / período",
backlogQuota: "Cota de backlog",
sizeLimitBytes: "Limite de tamanho (bytes)",
timeLimitSeconds: "Limite de tempo (segundos)",
policy: "Política",
type: "Tipo",
backlogPolicyProducerRequestHold: "Reter solicitações do produtor",
backlogPolicyProducerException: "Rejeitar com exceção",
backlogPolicyConsumerBacklogEviction: "Remover backlog do consumidor",
retention: "Retenção de mensagens",
retentionTimeMinutes: "Tempo de retenção (minutos)",
retentionSizeMb: "Tamanho de retenção (MB)",
effectivePolicies: "Políticas efetivas",
savedNotice: "{policy} salva",
},
mqPermissions: {
title: "Permissões",
refresh: "Atualizar",
refreshing: "Atualizando...",
selectNamespaceOrTopic: "Selecione um namespace ou tópico primeiro",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
readonlyHint: "Esta conexão é somente leitura; conceder e revogar estão desativados.",
grantRole: "Conceder função",
roleName: "Nome da função",
roleNamePlaceholder: "por exemplo: app-producer",
actions: "Ações",
grant: "Conceder",
currentPermissions: "Permissões atuais",
role: "Função",
operations: "Operações",
token: "Token",
revoke: "Revogar",
noPermissions: "Nenhum registro de permissão",
clientTokenTitle: "Token do cliente: {role}",
missingSigningKeyTitle: "Chave de assinatura de token não configurada",
missingSigningKeyMessage: "Esta conexão MQ não tem chave de assinatura de token do Broker configurada, portanto tokens de cliente não podem ser emitidos.",
missingSigningKeyDetail: 'Edite a conexão e defina "Assinatura de token do Broker" como HS256 SECRET ou RS256 PRIVATE, depois forneça a chave de assinatura antes de gerar tokens.',
tokenShowOnceWarning: "O token é exibido apenas uma vez. Copie e armazene-o imediatamente.",
copyToken: "Copiar token",
issueNewToken: "Emitir novo token",
neverExpires: "Nunca expira",
expiryDays: "Expiração (dias)",
note: "Nota",
notePlaceholder: "por exemplo: para rt-erp-server",
issuing: "Emitindo...",
generateToken: "Gerar token",
tokenRevokeHint: "Revogar permissões de função não invalida JWTs emitidos imediatamente; aguarde a expiração ou rotacione a chave de assinatura do Broker.",
issueRecords: "Registros de emissão",
time: "Hora",
algorithm: "Algoritmo",
expires: "Expira",
fingerprint: "Fingerprint",
noteColumn: "Nota",
unlimited: "Permanente",
loading: "Carregando...",
noIssueRecords: "Nenhum registro de emissão",
close: "Fechar",
kafkaAuthorizerNotConfigured: "Este cluster Kafka não tem authorizer configurado. Adicione authorizer.class.name na configuração do broker para suporte a ACL.",
kafkaAuthorizerDisabled: "Este cluster Kafka não tem authorizer habilitado. Habilite um authorizer na configuração do broker para conceder permissões.",
roleNameRequired: "O nome da função é obrigatório",
selectAtLeastOneAction: "Selecione pelo menos uma ação",
grantedRole: "Função {role} concedida",
confirmRevoke: 'Revogar permissões da função "{role}"?',
revokedRole: "Função {role} revogada",
roleNameEmpty: "O nome da função não pode estar vazio",
expiryMustBePositive: "A expiração deve ser maior que 0 dias",
},
mqBroker: {
title: "Cluster Broker",
autoRefresh: "Atualização automática",
refreshInterval5s: "5s",
refreshInterval10s: "10s",
refreshInterval30s: "30s",
refreshInterval60s: "60s",
refreshing: "Atualizando...",
refreshNow: "Atualizar agora",
loading: "Carregando...",
clusterOverview: "Visão geral do cluster",
clusterId: "ID do cluster",
unknown: "Desconhecido",
brokerCount: "Brokers",
controller: "Controller",
controllerNode: "Nó {id} · {host}",
brokerNodes: "Nós do broker",
nodeId: "ID do nó",
host: "Host",
port: "Porta",
rack: "Rack",
role: "Função",
roleController: "Controller",
roleFollower: "Follower",
noBrokerNodes: "Nenhuma informação de nó do broker",
brokerName: "Nome do Broker",
brokerEndpoints: "Endpoints do Broker",
roleMaster: "Master",
roleSlave: "Slave",
clusterTitle: "Cluster",
},
mqRaw: {
title: "Raw API",
sending: "Enviando...",
sendRequest: "Enviar solicitação",
readOnlyHint: "Esta conexão é somente leitura; apenas solicitações GET, HEAD e OPTIONS são permitidas.",
commonEndpoints: "Endpoints comuns",
fillFromSelection: "Preencher solicitação com a seleção atual",
expand: "Expandir",
collapse: "Recolher",
method: "Método",
path: "Caminho",
pathPlaceholder: "/admin/v2/...",
queryParams: "Parâmetros de consulta",
queryPlaceholder: "chave=valor, um por linha",
jsonBody: "JSON Body",
format: "Formatar",
bodyPlaceholder: "por exemplo: {'{'}\"key\":\"value\"{'}'}",
response: "Resposta",
textResponse: "Resposta em texto",
noRequestYet: "Nenhuma solicitação enviada ainda",
readOnly: "Esta conexão é somente leitura e não pode executar operações de gravação.",
pathRequired: "O caminho da solicitação é obrigatório",
jsonBodyInvalid: "Corpo JSON inválido: {error}",
presetBrokerVersion: "Versão do Broker",
presetBrokerVersionDesc: "String de versão do Broker",
presetClusters: "Lista de clusters",
presetClustersDesc: "Listar clusters Pulsar configurados",
presetTenant: "Detalhes do locatário",
presetTenantDesc: "Ver adminRoles / allowedClusters",
presetNamespacePolicies: "Políticas do namespace",
presetNamespacePoliciesDesc: "Estrutura bruta de políticas do namespace",
presetBundles: "Lista de bundles",
presetBundlesDesc: "Distribuição de bundles do namespace",
presetTopicInternalStats: "Estatísticas internas do tópico",
presetTopicInternalStatsDesc: "Detalhes de ledger / cursor / backlog",
presetPartitionedStats: "Métricas de partição",
presetPartitionedStatsDesc: "Taxas, produtores e consumidores por partição",
presetSchema: "Schema mais recente",
presetSchemaDesc: "Definição atual do schema do tópico",
},
production: {
title: "Ambiente de Produção",
connection: "Conexão de Produção",
enable: "Ativar proteção de ambiente de produção",
disabledDescription: "Após ativar, é possível escolher proteger todos os bancos de dados ou bancos específicos.",
scope: "Escopo da proteção",
allDatabases: "Todos os bancos de dados",
selectedDatabases: "Selecionar bancos de dados",
singleDatabaseScopeHint: "Este tipo de banco de dados suporta apenas proteção de ambiente de produção em nível de conexão.",
databases: "Bancos de dados de produção",
connectionDescription: "Todos os bancos de dados nesta conexão terão proteção de produção ativada.",
databaseDescription: "Selecione os bancos de dados da conexão que precisam de proteção de produção. Na primeira abertura, todos são selecionados por padrão.",
selectDatabases: "Selecionar bancos de dados de produção",
noDatabasesSelected: "Nenhum selecionado ainda",
databasesConfiguredCount: "{count} selecionado(s)",
databasesSelectedCount: "{selected}/{total} selecionado(s)",
databasePickerTitle: "Selecionar bancos de dados de produção",
databasePickerDescription: "Selecione os bancos de dados em «{connection}» que precisam de proteção de produção.",
databaseSearchPlaceholder: "Buscar bancos de dados...",
databaseSelectionRequired: "Por favor, selecione pelo menos um banco de dados.",
databaseLoadFailed: "Não foi possível carregar a lista de bancos de dados: {message}",
noDatabasesAvailable: "Nenhum banco de dados disponível encontrado.",
retry: "Tentar novamente",
confirmTitle: "Confirmar gravação em ambiente de produção",
confirmMessage: "Esta operação irá modificar o banco de dados de produção. É necessário confirmar explicitamente para continuar.",
confirmDetails: "Conexão: {connection}\nBanco de dados: {database}\nOrigem: {source}",
confirmAction: "Executar em produção",
sourceSqlEditor: "Editor SQL",
sourceDataGrid: "Editor de dados",
sourceStructure: "Editor de estrutura",
sourceSqlFile: "Execução de arquivo SQL",
sourceObjectBrowser: "Navegador de objetos",
sourceSchemaDiff: "Comparação de esquemas",
sourceDataCompare: "Comparação de dados",
sourceExtension: "Gerenciador de extensões",
sourceSidebar: "Árvore de objetos",
sourceObjectSource: "Editor de código-fonte de objetos",
sourceDataGenerate: "Gerador de dados",
sourceQueryHistory: "Reversão do histórico de consultas",
sourceAdmin: "Administração de banco de dados",
aiReviewRequired: "O SQL de produção foi colocado no editor. Verifique-o primeiro e execute manualmente para confirmar.",
},
processList: {
title: "Lista de Processos",
sessionCount: "{count} sessões",
filter: "Filtrar sessões",
autoRefresh: "Atualização automática",
seconds: "segundos",
colId: "Id",
colUser: "Usuário",
colHost: "Host",
colDb: "Banco de dados",
colCommand: "Comando",
colTime: "Duração",
colState: "Estado",
colInfo: "SQL",
colActions: "Ações",
self: "Atual",
kill: "Encerrar",
cannotKillSelf: "Não é possível encerrar a sessão atual",
empty: "Nenhuma sessão ativa.",
killTitle: "Encerrar sessão",
killConfirm: "Tem certeza de que deseja encerrar a sessão {id} ({user})? Sua instrução atual será abortada e a conexão será fechada.",
killSuccess: "Sessão {id} encerrada.",
killFailed: "Falha ao encerrar a sessão: {message}",
colPid: "PID",
colClient: "Cliente",
colApp: "Aplicativo",
colWait: "Espera",
colQuery: "Consulta",
previewTitle: "Declaração",
copy: "Copiar",
copied: "Copiado",
},
serverDashboard: {
title: "Painel do Servidor",
autoRefresh: "Atualização automática",
off: "Desligado",
qps: "Consultas por segundo",
connections: "Conexões",
running: "Threads em execução",
trafficIn: "Tráfego de entrada",
trafficOut: "Tráfego de saída",
slowQueries: "Consultas lentas",
uptime: "Tempo de atividade",
innodbHit: "Taxa de acertos do InnoDB",
in: "Entrada",
out: "Saída",
sessions: "Sessões",
qpsChart: "Consultas por segundo",
sessionsChart: "Novas sessões por segundo",
trafficChart: "Tráfego de rede por segundo",
commandChart: "Comandos por segundo",
rawStatus: "Variáveis de estado",
filterStatus: "Filtrar variáveis de estado",
tps: "Transações por segundo",
activeQueries: "Consultas ativas",
cacheHit: "Taxa de acertos do cache",
deadlocks: "Deadlocks",
tempFiles: "Arquivos temporários",
walRate: "Taxa de WAL",
commit: "Confirmações",
rollback: "Reversões",
total: "Total",
active: "Ativas",
idle: "Ociosas",
fetched: "Buscadas",
returned: "Retornadas",
read: "Leituras",
hits: "Acertos",
serverSessionsChart: "Sessões do servidor",
transactionsChart: "Transações por segundo",
tuplesInChart: "Gravação de tuplas",
tuplesOutChart: "Leitura de tuplas",
blockIoChart: "E/S de blocos",
},
databaseBackup: {
title: "Backup de banco de dados",
schedules: "Planos de backup",
runtimeRequirement: "O DBX executará backups agendados quando estiver aberto, inclusive quando minimizado na bandeja.",
addSchedule: "Novo plano",
editSchedule: "Editar plano",
defaultScheduleName: "Backup de banco de dados",
noSchedules: "Nenhum plano de backup",
scheduleName: "Nome do plano",
connection: "Conexão",
missingConnection: "Conexão não existe mais",
destination: "Diretório de backup",
selectDestination: "Selecionar diretório de backup",
databases: "Bancos de dados",
allDatabases: "Todos os bancos de dados",
databaseCount: "{count} bancos de dados",
tableScope: "Escopo de tabelas",
allTables: "Todas as tabelas e views",
includeTables: "Incluir apenas correspondências",
excludeTables: "Excluir correspondências",
tablePatterns: "Regras de nomes de tabela",
tablePatternsPlaceholder: "orders, audit_*, public.users",
tablePatternsHint: "Separe as regras com vírgulas. Há suporte a curingas * e ? e schema.table.",
includedTablePatterns: "{count} regras de inclusão",
excludedTablePatterns: "{count} regras de exclusão",
frequency: "Frequência",
frequencyHourly: "A cada hora",
frequencyDaily: "Diariamente",
frequencyWeekly: "Semanalmente",
intervalHours: "Intervalo em horas",
time: "Horário",
weekday: "Dia da semana",
retention: "Retenção",
contents: "Conteúdo do backup",
enabled: "Ativar plano",
enabledHint: "O próximo horário de execução é calculado com base no fuso horário local.",
nextRun: "Próximo: {time}",
nextRunPreview: "Próxima execução: {time}",
keepRuns: "Manter {count} execuções",
everyHours: "A cada {count} horas",
dailyAt: "Diariamente às {time}",
weeklyAt: "{weekday} às {time}",
never: "Nunca",
enable: "Ativar",
disable: "Desativar",
runNow: "Fazer backup agora",
cancel: "Cancelar backup",
edit: "Editar",
delete: "Excluir",
scheduleCreated: "Plano de backup criado",
scheduleUpdated: "Plano de backup atualizado",
deleteSchedule: "Excluir plano",
deleteScheduleConfirm: 'Tem certeza de que deseja excluir o plano "{name}"? Os arquivos de backup existentes ainda serão mantidos no histórico.',
cannotDeleteRunningSchedule: "Um plano de backup em execução não pode ser excluído",
history: "Histórico de backup",
noHistory: "Nenhum histórico de backup",
showFiles: "Mostrar arquivos de backup",
scheduledTrigger: "Execução agendada",
manualTrigger: "Execução manual",
fileCount: "{count} arquivos",
progress: "Progresso do backup",
renameBackup: "Renomear backup",
backupName: "Nome do backup",
backupRenamed: "Backup renomeado",
revealFile: "Mostrar no gerenciador de arquivos",
restore: "Restaurar",
deleteBackup: "Excluir backup",
deleteBackupConfirm: "Tem certeza de que deseja excluir este backup e seus {count} arquivos SQL? Esta ação é irreversível.",
backupDeleted: "Backup excluído",
runSuccess: "Backup concluído, {count} arquivos gerados",
runCancelled: "Backup cancelado",
runFailed: "Falha no backup: {error}",
unknownError: "Erro desconhecido",
status: {
running: "Em execução",
success: "Concluído",
failed: "Falhou",
cancelled: "Cancelado",
},
weekdays: {
sunday: "Domingo",
monday: "Segunda-feira",
tuesday: "Terça-feira",
wednesday: "Quarta-feira",
thursday: "Quinta-feira",
friday: "Sexta-feira",
saturday: "Sábado",
},
},
mqExchanges: {
searchPlaceholder: "Buscar exchanges",
refresh: "Atualizar",
refreshing: "Atualizando...",
createExchange: "Criar exchange",
selectNamespace: "Selecione um virtual host primeiro",
loading: "Carregando...",
noExchanges: "Nenhum exchange neste virtual host",
noMatches: "Nenhum exchange correspondente",
name: "Nome",
type: "Tipo",
durable: "Durável",
autoDelete: "Exclusão automática",
actions: "Ações",
builtin: "Interno",
viewBindings: "Bindings",
delete: "Excluir",
yes: "Sim",
no: "Não",
bindingsTitle: "Bindings de {name}",
bindDestination: "Vincular",
noBindings: "Nenhum binding a partir deste exchange",
bindingSource: "Origem",
bindingDestination: "Destino",
bindingType: "Tipo",
routingKey: "Chave de roteamento",
arguments: "Argumentos",
unbind: "Desvincular",
destinationTypeQueue: "Fila",
destinationTypeExchange: "Exchange",
virtualHost: "Virtual host",
namePlaceholder: "ex.: dbx-events",
cancel: "Cancelar",
create: "Criar",
bind: "Vincular",
bindDialogTitle: "Vincular a {name}",
queueNamePlaceholder: "ex.: dbx-queue",
exchangeNamePlaceholder: "ex.: dbx-events",
routingKeyPlaceholder: "ex.: orders.*",
argumentsPlaceholder: 'Objeto JSON opcional, ex.: {"x-match": "all"}',
nameRequired: "O nome do exchange é obrigatório",
destinationRequired: "O destino é obrigatório",
argumentsMustBeObject: "Os argumentos devem ser um objeto JSON",
readOnly: "Esta conexão é somente leitura e não pode executar operações de escrita.",
confirmDelete: 'Excluir o exchange "{name}"? Esta ação não pode ser desfeita.',
confirmUnbind: 'Remover o binding de "{source}" para "{destination}"?',
},
mqClientConnections: {
searchPlaceholder: "Pesquisar conexões",
refresh: "Atualizar",
refreshing: "Atualizando...",
loading: "Carregando...",
noConnections: "Nenhuma conexão de cliente",
noMatches: "Nenhuma conexão correspondente",
name: "Nome",
user: "Usuário",
peerAddress: "Endereço de origem",
state: "Estado",
channels: "Canais",
recvRate: "Taxa de recepção",
sendRate: "Taxa de envio",
connectedAt: "Conectado em",
actions: "Ações",
closeConnection: "Fechar conexão",
confirmClose: 'Fechar a conexão "{name}"? Todos os seus canais serão fechados e esta ação não pode ser desfeita.',
readOnly: "Esta conexão é somente leitura; operações de escrita estão desabilitadas.",
noChannels: "Esta conexão não possui canais",
channelName: "Canal",
prefetch: "Prefetch",
unacked: "Não confirmados",
consumers: "Consumidores",
},
mqUserPermissions: {
usersTitle: "Usuários",
permissionsTitle: "Permissões",
refresh: "Atualizar",
refreshing: "Atualizando...",
loading: "Carregando...",
createUser: "Criar usuário",
grantPermission: "Conceder permissão",
searchUsers: "Buscar usuários",
noUsers: "Nenhum usuário",
noUserMatches: "Nenhum usuário correspondente",
name: "Nome",
tags: "Tags",
actions: "Ações",
delete: "Excluir",
confirmDeleteUser: 'Excluir o usuário "{name}"? Esta ação não pode ser desfeita.',
password: "Senha",
tagsPlaceholder: "Separadas por vírgula, ex. administrator, monitoring",
nameRequired: "O nome de usuário é obrigatório",
passwordRequired: "A senha é obrigatória",
cancel: "Cancelar",
create: "Criar",
user: "Usuário",
vhost: "Host virtual",
configure: "Configure",
write: "Write",
read: "Read",
noPermissions: "Nenhuma permissão",
revoke: "Revogar",
confirmRevoke: 'Revogar a permissão do usuário "{user}" no host virtual "{vhost}"?',
grant: "Conceder",
selectUser: "Selecione um usuário",
selectVhost: "Selecione um host virtual",
patternHint: "Expressão regular aplicada aos nomes de recursos; vazio equivale a .* (tudo).",
userRequired: "Selecione um usuário",
vhostRequired: "Selecione um host virtual",
readOnly: "Esta conexão é somente leitura; operações de escrita estão desabilitadas.",
},
mqRabbitMqPolicies: {
title: "Políticas",
refresh: "Atualizar",
refreshing: "Atualizando...",
loading: "Carregando...",
createPolicy: "Criar política",
editPolicy: "Editar política",
noPolicies: "Nenhuma política",
name: "Nome",
vhost: "Host virtual",
pattern: "Padrão",
applyTo: "Aplicar a",
priority: "Prioridade",
definition: "Definição",
actions: "Ações",
edit: "Editar",
delete: "Excluir",
confirmDelete: 'Excluir a política "{name}" no host virtual "{vhost}"?',
cancel: "Cancelar",
save: "Salvar",
selectVhost: "Selecione um host virtual",
definitionKey: "Chave",
definitionValue: "Valor",
addDefinition: "Adicionar entrada de definição",
patternHint: "Expressão regular correspondente a nomes de filas/exchanges.",
nameRequired: "O nome da política é obrigatório",
vhostRequired: "Selecione um host virtual",
patternRequired: "O padrão é obrigatório",
readOnly: "Esta conexão é somente leitura; operações de escrita estão desabilitadas.",
},
mqRabbitMqMonitoring: {
title: "Monitoramento do cluster",
loading: "Carregando...",
overviewTitle: "Visão geral",
messagesReady: "Mensagens prontas",
messagesUnacked: "Mensagens não confirmadas",
publishRate: "Taxa de publicação",
deliverRate: "Taxa de entrega",
ackRate: "Taxa de confirmação",
totalQueues: "Filas",
totalExchanges: "Exchanges",
totalConnections: "Conexões",
totalChannels: "Canais",
totalConsumers: "Consumidores",
nodesTitle: "Nós",
nodeName: "Nó",
status: "Status",
running: "Em execução",
stopped: "Parado",
memory: "Memória",
diskFree: "Disco livre",
fileDescriptors: "Descritores de arquivo",
sockets: "Sockets",
uptime: "Tempo ativo",
noNodes: "Nenhum nó",
},
mqRocketmq: {
consumerGroupTitle: "Grupo de consumidores",
searchConsumerGroup: "Pesquisar grupo de consumidores",
connectionNotReady: "Conexão não pronta, atualize as informações do cluster",
tabSend: "Enviar mensagem",
tabQuery: "Consulta de mensagens",
noDlqTopics: 'Nenhum tópico DLQ encontrado. Ative o filtro de tipo "DLQ" na página de tópicos e atualize.',
topicFilterAll: "Todos",
topicFilterBusiness: "Negócio",
topicFilterDlq: "DLQ",
actionProduce: "Publicar",
actionConsume: "Assinar",
aclTitle: "Controle de acesso",
actionMessageQuery: "Consulta de mensagens",
actionSendMessage: "Enviar mensagem",
actionMore: "Mais",
actionDetailGroup: "Detalhes",
actionResetOffset: "Redefinir offset",
dlqConsumerGroup: "Grupo de consumidores",
dlqConsumerGroupPlaceholder: "Grupo de consumidores (opcional)",
dlqQueryByKey: "Consultar por Key",
viewDlqMessages: "Ver mensagens DLQ",
namesrvAddr: "NameServer",
},
mqDlq: {
title: "Fila DLQ",
refresh: "Atualizar",
refreshing: "Atualizando...",
loading: "Carregando...",
selectContext: "Selecione o contexto do namespace primeiro",
selectTopic: "Selecione um tópico DLQ",
topic: "DLQ Topic",
consumerGroup: "Grupo de consumidores",
groupPlaceholder: "Grupo de consumidores para peek (opcional)",
queryByKey: "Consultar por Key",
queryKey: "Key da mensagem",
queryKeyPlaceholder: "Key a ser pesquisada",
loadMessages: "Carregar mensagens",
loadingMessages: "Carregando mensagens...",
noDlqTopics: 'Nenhum tópico DLQ encontrado. Ative o filtro de tipo "DLQ" na página de tópicos e atualize.',
noMessages: "Nenhuma mensagem",
},
mqTrace: {
title: "Rastreamento de mensagens",
msgId: "ID da mensagem",
msgIdPlaceholder: "MsgId original da mensagem",
msgIdRequired: "O ID da mensagem não pode estar vazio",
queryKeyRequired: "A Message Key não pode estar vazia",
selectTopicBeforeQuery: "Selecione um tópico antes de consultar o rastreamento",
traceTopic: "Tópico de rastreamento",
traceTopicPlaceholder: "RMQ_SYS_TRACE_TOPIC",
query: "Consultar rastreamento",
querying: "Consultando...",
noTrace: "Nenhum registro de rastreamento encontrado",
searchHint: 'Pesquise uma mensagem primeiro e clique em "Ver rastreamento de consumo"',
viewTrace: "Ver rastreamento de consumo",
detailTitle: "Detalhes do rastreamento de consumo",
traceTopicRouteMissing:
"O tópico de rastreamento não possui informações de rota no NameServer (CODE: 17).\n\nCausas comuns:\n1. Broker não habilitou rastreamento de mensagens: defina traceTopicEnable=true no broker.conf e reinicie o Broker\n2. Producer/Consumer não habilitou rastreamento: setEnableTrace(true)\n3. Usou um tópico de rastreamento personalizado, selecione o tópico correto acima.",
},
});