Conversor PO para JSON
Converta um catálogo gettext .po para JSON, e vice-versa.
Conversor PO para JSON
Cole um catálogo gettext .po e esta ferramenta converte cada par msgid/msgstr numa estrutura JSON, pronta para carregar numa biblioteca i18n JavaScript ou inspeccionar manualmente. Inverta a direcção e funciona ao contrário também, convertendo um objeto JSON de tradução de volta para um ficheiro .po válido. Programadores usam-na para ligar ferramentas de gestão de traduções que exportam .po com pilhas front-end que esperam JSON, sem instalar ferramentas gettext ou escrever um script único.
As opções controlam a forma exacta do JSON. "Aninhar chaves por msgid com pontos" transforma um catálogo simples como "nav.home" em objetos aninhados em vez de uma única chave longa. "Remover entradas com tradução vazia" filtra msgids que ainda ninguém traduziu. Formas plurais (msgid_plural mais msgstr[0], msgstr[1]...) tornam-se numa array JSON ou em chaves separadas com sufixo como key_0 e key_1. Um contexto msgctxt, quando presente, pode dobrar-se na chave como um prefixo context|msgid para que strings de inglês idênticas usadas em lugares diferentes não colidam. Comentários, referências de origem e o cabeçalho do catálogo (o bloco de metadados no topo da maioria dos ficheiros .po) podem cada um ser mantidos ou removidos.
String literais multi-linha e concatenadas, aspas escapadas, barras invertidas e novas linhas são tratadas da forma que o gettext as escreve, em ambas as direcções. O contador automático relata quantas entradas estão traduzidas, não traduzidas e marcadas como fuzzy, para que possa avaliar a completude do catálogo sem abrir um editor de tradução. Catálogos muito grandes são suportados; um resultado que ultrapassasse o limite de tamanho de saída produz uma mensagem em vez de congelar o separador.
Tudo corre localmente no seu navegador — um ficheiro .po contém frequentemente todo o texto de interface de um produto, e nada é enviado para qualquer lugar. Copie o resultado, descarregue-o como um ficheiro .txt ou envie-o directamente de volta para a entrada para converter novamente na direcção oposta.