+1 voto
807 vistas

Does anyone know of a command line tool to convert USFM format to USX (or any other xml flavor)?

I’d like to write a script to grab a few different .sfm files from different projects and mass-convert them… something quite difficult with the built-in Tools–>Advanced–>Export Project to USX.

Also, USX makes some strange design decisions that seem to be direct reflections of the USFM code instead of true xml. At least they seem strange to me who has very little background in this area… but I would have expected the tag to close at the end of the chapter and not immediately after the chapter number, e.g.
<chapter number=“1” style=“c”>
    all the verses
</chapter>

instead of
<chapter number=“1” style=“c” />

I have the exact same question about verse tags.

Can anyone explain why the xml works this way, or suggest other xml formats that are more logical? These files will be used internally in a publishing project and thus we’re not too concerned about external standards.

Note I’ve tried the Haiola usfm2usfx.exe tool and can’t get it to work, but if people say that’s the best option I can try to figure out what’s wrong.

Publicación antigua - se muestra en su idioma original
Paratext por (1,9k puntos) | 807 vistas

6 Respuestas

0 votos
Mejor respuesta

Lo siento, esto no funcionará. Puedes leer el resultado de un módulo ya configurado que Paratext ya ha ejecutado en la generación del módulo, pero no puedes escribir un módulo a Paratext y hacer que sepa que es un módulo y ejecute la generación.

EDICIÓN: Aparentemente me perdí algunas preguntas de hace más de dos años: :grimacing:

Sí, ahora debería salir en formato 3.0.

Desafortunadamente, no. rdwrtp8 está diseñado para leer/escribir los archivos crudos para que otras aplicaciones puedan leer/escribir datos de Paratext. Esto requiere que los datos sean reversibles (round-trip-able) y los cambios definidos en PrintDraftChanges.txt no son reversibles.

Traducción automática desde English
por [Expert]
(16,7k puntos)

mostrada de nuevo
0 votos

No conozco ninguna herramienta así. La mejor manera, a mi parecer, es usar un esquema de ubicación estandarizado para exportar los archivos USX, p. ej. C:\My Paratext 8 Projects\[project name]\local\USX y obtenerlos de ahí.
En cuanto a los marcadores de capítulos y versículos, estos se llaman hitos (milestones) y son una forma de manejar la marcación superpuesta.
¿Es esto para una publicación impresa o solo digital?

Traducción automática desde English
por (872 puntos)
mostrada de nuevo

Esto es para una publicación solo impresa. El programa de publicación que estamos usando, SILE, acepta entradas xml. En realidad aceptaría una entrada tipo TeX (es decir, USFM), pero el programador con quien estoy trabajando preferiría usar xml.

Asumo que el formato de USX funcionará perfectamente bien para el programador, por lo que estas otras preguntas son para mi propio entendimiento.

Supongo que son solo decisiones de diseño, pero me pregunto por qué quien creó USX decidió que <chapter> significaba “el número al principio de un capítulo” y no “capítulo”. Mi entendimiento del xml es que típicamente usa un formato como
<tag attributes=“aaa”>content</tag>

La forma en que están las cosas actualmente
<chapter number=“1” style=“c” > no tiene contenido
Donde yo esperaría
<chapter number=“1” style=“c”>the actual content of the chapter<\chapter>

Quizás me esté perdiendo algo, pero no veo cómo esto se deba a problemas de marcación superpuesta.

Aquí hay otro problema: siguiendo el estilo de los libros religiosos de nuestra región, nuestro proyecto planea marcar los números de versículo al final de los versículos, no al principio. Con la forma en que funciona actualmente el marcador <verse>, necesitaremos usar scripting para mover la etiqueta a una posición diferente en el documento xml de texto plano, pero si USX usara el formato que creo que debería:
<verse number=“1” style=“v”>verse text</verse>
entonces sería bastante simple que el programa que lee el xml interpretara esa línea y dijera “imprime el atributo ‘number’ al final de ‘verse text’ en lugar del principio”.

Traducción automática desde English
0 votos

Un año y medio después, todavía quiero esta funcionalidad.

La opción integrada de Paratext “export project to USX” es exactamente lo que necesito, pero me gustaría automatizarla para poder incorporarla en un script construido en línea de comandos. El código de conversión USFM–>USX debe estar en PT. ¿Hay una manera de obtener ese código de los desarrolladores (entendiendo que sería necesaria una modificación por nuestra parte para hacerlo funcionar en el lenguaje que estemos usando)? Si es así, ¿cómo procedería?

Traducción automática desde English
por (1,9k puntos)
0 votos

Parece que quieres una herramienta independiente, pero si todo lo que necesitas es el texto de un proyecto en formato USX, Paratext 8+ viene con una pequeña herramienta de línea de comandos que puede extraer el texto de un proyecto en formato USX:
rdwrtp8 -r projectShortName bookCode chapterNum resultFileName -x

El -x es para especificar el formato USX en lugar del formato USFM.
Si chapterNum es 0 (cero), se devuelve el libro completo.

Esto no se puede usar en recursos, por razones obvias.

Sería difícil separar el código de análisis fuera de Paratext, ya que depende mucho de la configuración del proyecto y de la información de la hoja de estilo para producir el USX a partir del USFM.

Traducción automática desde English
por [Expert]
(16,7k puntos)
0 votos

Cuando vi tu publicación reciente, iba a sugerir Haiola también, pero veo que ya lo intentaste antes. Admito que yo mismo no lo he usado. Sugeriría contactar al autor con cualquier problema que hayas encontrado, si rdwrtp8 no proporciona una solución.

En cuanto a la marcación superpuesta, supongo que un ejemplo sería Nehemías 8. En mi NIV impreso, el capítulo 8 comienza en medio de un párrafo. Y el número de versículo (1 en este caso) se imprime junto al número de capítulo (que está en capitulares). En otros capítulos, el número de versículo se omite si es 1.

En Paratext, la hoja de estilo define una jerarquía de marcadores, como id > ide > c > p > v. Y para la mayoría de los capítulos y párrafos, esto podría mapearse al XML de la manera que esperas (con el elemento c conteniendo un elemento p, etc.). Pero para Nehemías 8, la jerarquía de Paratext se rompe, por lo que sospecho que USX tiene un elemento c que no tiene contenido.

Traducción automática desde English
por (185 puntos)
0 votos

Gracias, @anon291708, creo que rdwrtp8 hará exactamente lo que necesito. Tengo algunas preguntas al respecto, habiéndolo ejecutado hace poco.
Sale USX en formato versión 2.5, que es lo que usaba PT8. ¿Alguna vez se actualizará para salir en formato 3.0 como lo hace PT9?
No parece usar el archivo PrintDraftChanges.txt durante el proceso de exportación, que la opción de menú “Export project to USX” en PT8/9 sí usa. ¿Hay una manera de incorporar esos cambios?

@Bobby, gracias por sugerir Haiola. Sí, lo había intentado sin éxito. En cuanto a los marcadores superpuestos, después de leer esta publicación hace un año o dos y reflexionar sobre los problemas, creo que he llegado a un mejor entendimiento de por qué es importante (y por qué cualquier sistema tendrá deficiencias inherentes).

Traducción automática desde English
por (1,9k puntos)

Ahora me gustaría escribir un script que tome un archivo de especificación de un Módulo de la Biblia y cree el archivo de salida a partir de él. Me dijeron aquí que rdwrtp8.exe debería hacer esto, pero no logro que funcione.

¿Debería hacerlo? ¿Debería poder tomar un archivo de especificación de un Módulo de la Biblia, cargarlo en PT externamente como un libro XXA-XXG, y luego exportarlo… y tener el archivo resultante como la salida del Módulo de la Biblia con todas las escrituras completadas?

Los comandos que estoy usando son:
rdwrtp8 -w PROJ XXA 0 "D:\My-Modules\module1.sfm"
y
rdwrtp8 -r PROJ XXA 0 "D:\My-Expanded-Modules\module1.sfm"

Traducción automática desde English

Preguntas relacionadas

0 votos
2 respuestas 43 vistas
Necesito convertir un archivo USX a USFM. Veo una opción en Paratext para hacer lo contrario, pero no veo una ... Espero que convertirlos a USFM facilite que Proskomma los procese.
yeti 109 preguntada mar 19
0 votos
2 respuestas 359 vistas
Hello, I am writing as a representative of a small task team assigned to review proposals for what becomes a ... necessary information with you. Thank you. jmkla [Email Removed]
[Expert]
jmkla
290
preguntada oct 2, 2015
0 votos
2 respuestas 236 vistas
In the USX export file from Paratext, for certain references, the transformation adds an extra - in the tag. ... bug in the USX transformation. Any help would be appreciated.
anon753074 109 preguntada abr 24, 2020
0 votos
1 respuesta 34 vistas
Estamos usando /xt en las referencias cruzadas de las notas al pie, configurado para usar el 'nombre corto' del libro ... hay algún código USFM diferente que pueda usar para eso?
Lenice 180 preguntada oct 7, 2025
0 votos
1 respuesta 423 vistas
Me gustaría exportar el proyecto a HTML para poder compartir borradores con otras personas. No quiero exportar a PDF, ... otras. Cómo oculto las marcas USFM del HTML exportado?
bit 495 preguntada abr 14, 2022
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Live in harmony with one another. Do not be proud, but be willing to associate with people of low position. Do not be conceited.
Romans 12:16
3,045 preguntas
6,005 respuestas
5,671 comentarios
2,026 usuarios