1// Traduções para o ERD 2window.ERD_TRANSLATIONS = { 3 // Interface geral 4 "Loading...": "Carregando...", 5 "Error": "Erro", 6 "Search": "Buscar", 7 "Filter": "Filtrar", 8 "View": "Visualizar", 9 "Settings": "Configurações", 10 "Help": "Ajuda", 11 "About": "Sobre", 12 "Close": "Fechar", 13 "Open": "Abrir", 14 "Save": "Salvar", 15 "Cancel": "Cancelar", 16 "Export": "Exportar", 17 "Import": "Importar", 18 "Zoom": "Zoom", 19 "Fit": "Ajustar", 20 "Reset": "Redefinir", 21 "Fullscreen": "Tela cheia", 22 "Minimap": "Mini mapa", 23 24 // Tabelas e esquemas 25 "Table": "Tabela", 26 "Tables": "Tabelas", 27 "Schema": "Esquema", 28 "Schemas": "Esquemas", 29 "Relations": "Relações", 30 "Columns": "Colunas", 31 "Column": "Coluna", 32 "Indexes": "Ãndices", 33 "Index": "Ãndice", 34 "Foreign Key": "Chave Estrangeira", 35 "Foreign Keys": "Chaves Estrangeiras", 36 "Primary Key": "Chave Primária", 37 "Primary Keys": "Chaves Primárias", 38 "Key": "Chave", 39 "Type": "Tipo", 40 "Null": "Nulo", 41 "Not Null": "Não Nulo", 42 "Default": "Padrão", 43 "Comment": "Comentário", 44 "Description": "Descrição", 45 "Name": "Nome", 46 47 // Tipos de dados comuns 48 "String": "Texto", 49 "Integer": "Inteiro", 50 "Boolean": "Booleano", 51 "Date": "Data", 52 "DateTime": "Data e Hora", 53 "Time": "Hora", 54 "Decimal": "Decimal", 55 "Float": "Ponto Flutuante", 56 "Text": "Texto Longo", 57 "Binary": "Binário", 58 "JSON": "JSON", 59 "Array": "Array", 60 61 // Ações e estados 62 "Show All": "Mostrar Todos", 63 "Hide": "Ocultar", 64 "Show": "Mostrar", 65 "Expand": "Expandir", 66 "Collapse": "Recolher", 67 "Select": "Selecionar", 68 "Deselect": "Desselecionar", 69 "Related Tables": "Tabelas Relacionadas", 70 "No tables found": "Nenhuma tabela encontrada", 71 "No columns": "Sem colunas", 72 "No indexes": "Sem Ãndices", 73 "No relations": "Sem relações", 74 75 // Mensagens de erro 76 "Failed to load schema": "Falha ao carregar esquema", 77 "Schema not found": "Esquema não encontrado", 78 "Invalid schema format": "Formato de esquema inválido", 79 80 // Controles 81 "Zoom In": "Aumentar Zoom", 82 "Zoom Out": "Diminuir Zoom", 83 "Fit to Screen": "Ajustar à Tela", 84 "Reset View": "Redefinir Visualização", 85 "Toggle Minimap": "Alternar Mini Mapa", 86 "Toggle Fullscreen": "Alternar Tela Cheia", 87 88 // Propriedades 89 "Unique": "Ãnico", 90 "Required": "Obrigatório", 91 "Optional": "Opcional", 92 "Auto Increment": "Auto Incremento", 93 "Unsigned": "Sem Sinal", 94 95 // Outros 96 "Version": "Versão", 97 "Created": "Criado", 98 "Updated": "Atualizado", 99 "Count": "Contagem", 100 "Total": "Total", 101 102 // Ações de cópia e visualização 103 "Copy Link": "Copiar Link", 104 "Copy PostgreSQL": "Copiar PostgreSQL", 105 "Copy YAML": "Copiar YAML", 106 "Link Copied!": "Link copiado", 107 "Copy current URL": "Copiar URL atual", 108 "All Fields": "Todos os Campos", 109 "Table Name": "Nome da Tabela", 110 "KeyOnly": "Apenas Chaves", 111 "Hide All": "Ocultar Todos", 112 "Visible": "VisÃvel" 113}; 114 115// Função para traduzir textos no DOM 116function translateERDTexts() { 117 const walker = document.createTreeWalker( 118 document.body, 119 NodeFilter.SHOW_TEXT, 120 null, 121 false 122 ); 123 124 const textNodes = []; 125 let node; 126 127 while (node = walker.nextNode()) { 128 if (node.nodeValue.trim()) { 129 textNodes.push(node); 130 } 131 } 132 133 textNodes.forEach(textNode => { 134 const originalText = textNode.nodeValue.trim(); 135 if (window.ERD_TRANSLATIONS[originalText]) { 136 textNode.nodeValue = textNode.nodeValue.replace( 137 originalText, 138 window.ERD_TRANSLATIONS[originalText] 139 ); 140 } 141 }); 142} 143 144// Observar mudanças no DOM para traduzir novos elementos 145const observer = new MutationObserver(() => { 146 translateERDTexts(); 147}); 148 149// Iniciar observação quando o DOM estiver pronto 150if (document.readyState === 'loading') { 151 document.addEventListener('DOMContentLoaded', () => { 152 observer.observe(document.body, { 153 childList: true, 154 subtree: true 155 }); 156 translateERDTexts(); 157 }); 158} else { 159 observer.observe(document.body, { 160 childList: true, 161 subtree: true 162 }); 163 translateERDTexts(); 164};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.