Ir para o conteúdo

Conversor PO para JSON

Converta um catálogo gettext .po para JSON, e vice-versa.

Entrada

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.

FAQ

O que acontece ao cabeçalho .po quando converto para JSON?
Com "Manter o cabeçalho do catálogo" ativado, o bloco de metadados (msgid "") é incluído como um objecto sob a chave string vazia. Desative-o para obter apenas as strings traduzidas.
Como são representadas as formas plurais?
Com "Formas plurais como um array" ativado, entradas msgid_plural tornam-se numa array JSON de cada msgstr[n]. Desative-o e cada forma torna-se na sua própria chave com um sufixo numérico, como item_0 e item_1.
Posso fazer round-trip a um ficheiro através de ambas as direcções?
Sim. Converta .po para JSON, edite o JSON, depois mude a direcção e converta de volta — as mesmas opções (aninhamento, prefixo msgctxt, estilo plural) são usadas em ambos os lados para que as formas correspondam.
O que conta como uma entrada "fuzzy"?
Uma entrada que gettext marcou com a bandeira #, fuzzy, significando que uma máquina ou um tradutor anterior a rascunhou mas ainda precisa de revisão. O contador automático conta-as separadamente de entradas traduzidas e não traduzidas.
O meu catálogo de tradução é enviado para algum lugar?
Não. A conversão corre integralmente no seu navegador usando JavaScript — o seu ficheiro .po ou JSON nunca sai do seu dispositivo.