+1 voto
824 vistas

¿Alguien conoce una herramienta de línea de comandos para convertir el formato USFM a USX (o cualquier otra variante de xml)?

Me gustaría escribir un script para obtener varios archivos .sfm de diferentes proyectos y convertirlos en lote… algo bastante difícil con la herramienta integrada Tools–>Advanced–>Export Project to USX.

Además, USX toma algunas decisiones de diseño extrañas que parecen ser reflejos directos del código USFM en lugar de xml auténtico. Al menos me parecen extrañas a mí, que tengo muy poca experiencia en esta área… pero habría esperado que la etiqueta se cerrara al final del capítulo y no inmediatamente después del número de capítulo, p. ej.
<chapter number=“1” style=“c”>
    all the verses
</chapter>

en lugar de
<chapter number=“1” style=“c” />

Tengo exactamente la misma pregunta sobre las etiquetas de versículo.

¿Puede alguien explicar por qué el xml funciona de esta manera, o sugerir otros formatos de xml que sean más lógicos? Estos archivos se usarán internamente en un proyecto de publicación, por lo que no nos preocupamos demasiado por los estándares externos.

Nota: he probado la herramienta Haiola usfm2usfx.exe y no logro que funcione, pero si la gente dice que es la mejor opción, puedo intentar averiguar qué está mal.

Traducción automática desde English
Paratext por (1,9k puntos) | 824 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 51 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 368 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 35 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 430 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.
So Peter was kept in prison, but the church was earnestly praying to God for him.
Acts 12:5
3,047 preguntas
6,007 respuestas
5,672 comentarios
2,027 usuarios