+1 voto
809 visualizações

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.

Publicação antiga - exibida no idioma original
Paratext por (1,9k pontos) | 809 visualizações

6 Respostas

0 votos
Melhor resposta

Desculpe, isso não funcionará. Você pode ler o resultado de um módulo já configurado que o Paratext já executou a geração do módulo, mas não pode escrever um módulo para o Paratext e fazê-lo saber que é um módulo e executar a geração.

EDIÇÃO: Aparentemente, eu perdi algumas perguntas de mais de dois anos atrás: :grimacing:

Sim, ele deve exportar no formato 3.0 agora.

Infelizmente, não. O rdwrtp8 é projetado para ler/escrever os arquivos brutos para que outros aplicativos possam ler/escrever dados do Paratext. Isso requer que os dados sejam reversíveis (round-trip-able) e as alterações definidas em PrintDraftChanges.txt não são reversíveis.

Tradução automática de English
por [Expert]
(16,7k pontos)

reexibida
0 votos

Não conheço nenhuma ferramenta assim. A melhor maneira, a meu ver, é usar um esquema de localização padronizado para exportar os arquivos USX, por exemplo C:\My Paratext 8 Projects\[project name]\local\USX e obtê-los de lá.
Quanto aos marcadores de capítulos e versículos, esses são chamados de marcos (milestones) e são uma maneira de lidar com marcação sobreposta.
Isso é para uma publicação impressa ou apenas digital?

Tradução automática de English
por (872 pontos)
reexibida

Isso é para uma publicação apenas em formato impresso. O programa de publicação que estamos usando, SILE, aceita entradas em xml. Na verdade, ele aceitaria uma entrada semelhante ao TeX (ou seja, USFM), mas o programador com quem estou trabalhando prefere usar xml.

Estou assumindo que o formato USX funcionará perfeitamente bem para o programador, então essas outras perguntas são para o meu próprio entendimento.

Acho que são apenas decisões de design, mas estou me perguntando por que quem criou o USX decidiu que <chapter> significava “o número no início de um capítulo” e não “capítulo”. Meu entendimento sobre xml é que ele normalmente usa formatações como
<tag attributes=“aaa”>content</tag>

Da forma como as coisas estão atualmente
<chapter number=“1” style=“c” > não tem conteúdo
Onde eu esperaria
<chapter number=“1” style=“c”>the actual content of the chapter<\chapter>

Talvez eu esteja perdendo algo, mas não vejo como isso seja causado por problemas de marcação sobreposta.

Aqui está outro problema – seguindo o estilo dos livros religiosos da nossa região, nosso projeto planeja marcar os números dos versículos no final dos versículos, não no início. Da forma como o marcador <verse> funciona atualmente, precisaremos usar scripts para mover a tag para uma posição diferente no documento xml em texto simples, mas se o USX usasse o formato que acho que deveria usar:
<verse number=“1” style=“v”>verse text</verse>
então seria bastante simples fazer o programa que lê o xml interpretar aquela linha e dizer “imprima o atributo ‘number’ no final de ‘verse text’ em vez do início”.

Tradução automática de English
0 votos

Um ano e meio depois, eu ainda quero essa funcionalidade.

A exportação integrada do Paratext “export project to USX” é exatamente o que eu preciso, mas gostaria que fosse automatizada para que eu pudesse incorporá-la em um script construído na linha de comando. O código de conversão USFM–>USX deve estar no PT. Há uma maneira de obter esse código dos desenvolvedores (entendendo que seria necessária alguma modificação da nossa parte para fazê-lo funcionar na linguagem que estivermos usando)? Se sim, como eu deveria proceder?

Tradução automática de English
por (1,9k pontos)
0 votos

Parece que você quer uma ferramenta independente, mas, se tudo o que você precisa é o texto de um projeto em formato USX, o Paratext 8+ vem com uma pequena ferramenta de linha de comando que pode extrair o texto de um projeto em formato USX:
rdwrtp8 -r projectShortName bookCode chapterNum resultFileName -x

O -x serve para especificar o formato USX em vez do formato USFM.
Se chapterNum for 0 (zero), o livro inteiro será retornado.

Isso não pode ser usado em recursos, por razões óbvias.

Seria difícil separar o código de análise fora do Paratext, pois ele depende muito das configurações do projeto e das informações de folha de estilo para produzir o USX a partir do USFM.

Tradução automática de English
por [Expert]
(16,7k pontos)
0 votos

Quando vi seu post recente, eu ia sugerir o Haiola também, mas vejo que você já tentou isso antes. Admito que não o usei pessoalmente. Eu sugeriria entrar em contato com o autor sobre quaisquer problemas que você encontrou, caso o rdwrtp8 não forneça uma solução.

Quanto à marcação sobreposta, eu chutaria que um exemplo seria Neemias 8. Na minha NIV impressa, o capítulo 8 começa no meio de um parágrafo. E o número do versículo (1, neste caso) é impresso ao lado do número do capítulo (que está em capitulares). Em outros capítulos, o número do versículo é omitido se for 1.

No Paratext, a folha de estilo define uma hierarquia de marcadores, como id > ide > c > p > v. E, para a maioria dos capítulos e parágrafos, isso poderia ser mapeado para XML da maneira que você espera (com o elemento c contendo um elemento p, etc.). Mas, para Neemias 8, a hierarquia do Paratext quebra, o que é por que eu suspeito que o USX tem um elemento c que não tem conteúdo.

Tradução automática de English
por (185 pontos)
0 votos

Obrigado, @anon291708, acho que o rdwrtp8 fará exatamente o que eu preciso. Tenho algumas perguntas sobre ele, tendo acabado de executá-lo.
Ele exporta USX no formato da versão 2.5, que é o que o PT8 usava. Será que ele será atualizado para exportar no formato 3.0, como o PT9 faz?
Não parece que ele usa o arquivo PrintDraftChanges.txt durante o processo de exportação, o que a opção de menu “Export project to USX” no PT8/9 usa. Há uma maneira de incorporar essas alterações?

@Bobby, obrigado por sugerir o Haiola. Sim, eu tinha tentado sem sucesso. Quanto aos marcadores sobrepostos, depois de ler este post há um ou dois anos e refletir sobre os problemas, acho que cheguei a um melhor entendimento de por que isso é importante (e por que qualquer sistema terá deficiências inerentes).

Tradução automática de English
por (1,9k pontos)

Agora eu gostaria de escrever um script que pegue um arquivo de especificação de Módulo Bíblico e crie o arquivo de saída a partir dele. Me disseram aqui que o rdwrtp8.exe deveria fazer isso, mas não consigo fazê-lo funcionar.

Ele deveria? Eu deveria ser capaz de pegar um arquivo de especificação de Módulo Bíblico, carregá-lo externamente no PT como um livro XXA-XXG e, em seguida, exportá-lo… e ter o arquivo resultante como a saída do Módulo Bíblico com todas as escrituras preenchidas?

Os comandos que estou usando são:
rdwrtp8 -w PROJ XXA 0 "D:\My-Modules\module1.sfm"
e
rdwrtp8 -r PROJ XXA 0 "D:\My-Expanded-Modules\module1.sfm"

Tradução automática de English

Perguntas relacionadas

0 votos
2 respostas 43 visualizações
Preciso converter um arquivo USX para USFM. Vejo uma opção no Paratext para fazer o processo inverso, mas não ... convertê-los para USFM facilite o processamento pelo Proskomma.
yeti 109 perguntada Mar 19
0 votos
2 respostas 359 visualizações
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
perguntada Out 2, 2015
0 votos
2 respostas 236 visualizações
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 perguntada Abr 24, 2020
0 votos
1 resposta 34 visualizações
Estamos usando /xt nas referências cruzadas de notas de rodapé, configurado para usar o 'nome curto' do livro. Mas ... Existe um código USFM diferente que eu possa usar para isso?
Lenice 180 perguntada Out 7, 2025
0 votos
1 resposta 423 visualizações
Gostaria de exportar o projeto para HTML para que eu possa compartilhar rascunhos com as pessoas. Não quero exportar ... faço para ocultar os marcadores USFM do HTML exportado?
bit 495 perguntada Abr 14, 2022
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
They devoted themselves to the apostles’ teaching and to fellowship, to the breaking of bread and to prayer.
Acts 2:42
3,045 perguntas
6,005 respostas
5,671 comentários
2,026 usuários