Saltar al contenido

Convertidor de PO a JSON

Convierte un catálogo gettext .po a JSON y viceversa.

Entrada

Convertidor de PO a JSON

Pega un catálogo gettext .po y esta herramienta convierte cada par msgid/msgstr en un objeto JSON, listo para cargar en una librería i18n de JavaScript o inspeccionar manualmente. Invierte la dirección y funciona al revés también, transformando un objeto de traducción JSON en un archivo .po válido. Los desarrolladores lo usan para conectar herramientas de gestión de traducciones que exportan .po con stacks de front-end que esperan JSON, sin instalar herramientas gettext ni escribir un script personalizado.

Las opciones controlan la forma exacta del JSON. "Anidar claves por msgid con puntos" convierte un catálogo plano como "nav.home" en objetos anidados en lugar de una única clave larga. "Eliminar entradas sin traducción" filtra msgids que nadie ha traducido aún. Las formas plurales (msgid_plural más msgstr[0], msgstr[1]...) se convierten en una matriz JSON o en claves separadas con sufijo como key_0 y key_1. Un contexto msgctxt, cuando está presente, puede incorporarse a la clave como un prefijo context|msgid para que cadenas inglesas idénticas usadas en diferentes lugares no entren en conflicto. Los comentarios, referencias de origen y el encabezado del catálogo (el bloque de metadatos en la parte superior de la mayoría de archivos .po) pueden mantenerse o eliminarse.

Las cadenas literales multilínea y concatenadas, comillas escapadas, barras invertidas y saltos de línea se manejan como lo hace gettext en ambas direcciones. El contador en vivo informa cuántas entradas están traducidas, sin traducir y marcadas como difusas, para que puedas evaluar la integridad del catálogo sin abrir un editor de traducciones. Se admiten catálogos muy grandes; un resultado que excedería el límite de tamaño de salida produce un mensaje en lugar de congelar la pestaña.

Todo se ejecuta localmente en tu navegador — un archivo .po a menudo contiene todo el texto de la interfaz de usuario de un producto, y nada se carga en ningún lado. Copia el resultado, descárgalo como archivo .txt o envíalo directamente a la entrada para convertir nuevamente en la dirección opuesta.

Preguntas frecuentes

¿Qué sucede con el encabezado .po cuando convierto a JSON?
Con "Mantener el encabezado del catálogo" activado, el bloque de metadatos (msgid "") se incluye como un objeto bajo la clave de cadena vacía. Desactívalo para obtener solo las cadenas traducidas.
¿Cómo se representan las formas plurales?
Con "Formas plurales como matriz" activado, las entradas msgid_plural se convierten en una matriz JSON de cada msgstr[n]. Desactívalo y cada forma se convierte en su propia clave con un sufijo numérico, como item_0 e item_1.
¿Puedo hacer un viaje de ida y vuelta a través de ambas direcciones?
Sí. Convierte .po a JSON, edita el JSON, luego cambia de dirección y convierte de vuelta — las mismas opciones (anidación, prefijo msgctxt, estilo plural) se usan en ambos lados para que las formas coincidan.
¿Qué cuenta como una entrada "difusa"?
Una entrada que gettext marcó con la bandera #, fuzzy, lo que significa que una máquina o un traductor anterior la redactó pero aún necesita revisión. El contador en vivo cuenta estas por separado de las entradas traducidas y sin traducir.
¿Mi catálogo de traducción se carga en algún lugar?
No. La conversión se ejecuta completamente en tu navegador usando JavaScript — tu archivo .po o JSON nunca abandona tu dispositivo.