Conversor YAML para Properties

Transforme estruturas hierárquicas YAML em .properties de forma simples.

Por que usar Properties?

Simplicidade

O formato chave=valor é universalmente compreendido e fácil de editar em qualquer editor de texto.

Internacionalização

Padrão global (i18n) para arquivos de tradução em Java, Spring e muitas outras plataformas.

Compatibilidade

Suportado nativamente em muitas linguagens de programação sem necessidade de bibliotecas pesadas.

Dúvidas comuns

O que é um arquivo .properties?

É um formato de arquivo de texto simples usado principalmente em tecnologias relacionadas ao Java para armazenar configurações. Ele armazena dados em pares de chave=valor, onde cada linha geralmente representa uma única configuração.

Sua principal função é separar o código-fonte das configurações do ambiente.

  • Internacionalização (i18n): Armazenar traduções de textos para diferentes idiomas.
  • Configurações de Banco de Dados: URLs de conexão, usuários e senhas.
  • Parâmetros de Sistema: Flags de ativação de recursos (feature toggles) e caminhos de pastas.

A estrutura é a mais simples possível: chave=valor ou chave:valor. Veja abaixo:

# Isto é um comentário
server.port=8080
database.url=jdbc:mysql://localhost:3306/db
app.welcome_message=Bem-vindo ao Ferramental Web!

O formato é amplamente adotado em diversos cenários:

  • Spring Boot: O famoso application.properties é o padrão para configurar aplicações Java modernas.
  • Android: Usado para gerenciar strings e recursos locais.
  • Ferramentas de Build: Como Apache Ant e configurações de plugins no Maven.
  • Sistemas Legados: Por ser fácil de ler por qualquer linguagem, é comum em sistemas antigos que precisam de uma configuração rápida.

Existem regras simples mas importantes:

  • Comentários: Iniciam com # ou !. Tudo o que estiver na linha após esses símbolos é ignorado.
  • Espaços: Espaços em branco ao redor do separador (=) são ignorados. "porta=80" é o mesmo que "porta = 80".
  • Caracteres Especiais: Se a chave ou o valor precisar de um caractere especial, ele deve ser "escapado" com uma barra invertida (\).
  • Codificação: Tradicionalmente usam ISO-8859-1 (Latin-1). Caracteres Unicode devem usar sequências de escape (ex: \u00E1).

Comparativo direto entre os formatos:

  • Hierarquia: Properties é Plana (usa pontos), YAML é Visual (usa indentação).
  • Complexidade: Properties é Extremamente Simples, YAML é Complexa (sensível a espaços).
  • Tipagem: Properties é Tudo String, YAML suporta números, booleanos e listas.
  • Comentários: Ambos suportam comentários.

A validação consiste em verificar alguns pontos chave:

  • Duplicidade: Verificar se não existem chaves duplicadas (a última geralmente sobrescreve a primeira).
  • Escaping: Garantir que caracteres especiais estão escapados corretamente.
  • Encoding: Certificar-se de que não há caracteres ocultos ou codificação errada (UTF-8 sem BOM é o ideal hoje, embora Java legado prefira Latin-1).