+1 voto
826 visualizações

Alguém conhece uma ferramenta de linha de comando para converter o formato USFM em USX (ou qualquer outro tipo de xml)?

Gostaria de escrever um script para pegar alguns arquivos .sfm diferentes de projetos distintos e convertê-los em massa… algo bastante difícil com a ferramenta integrada Tools–>Advanced–>Export Project to USX.

Além disso, o USX toma algumas decisões de design estranhas que parecem ser reflexos diretos do código USFM em vez de xml verdadeiro. Pelo menos parecem estranhas para mim, que tenho muito pouco conhecimento nessa área… mas eu esperava que a tag fosse fechada no final do capítulo e não imediatamente após o número do capítulo, por exemplo:
<chapter number=“1” style=“c”>
    all the verses
</chapter>

em vez de
<chapter number=“1” style=“c” />

Eu tenho exatamente a mesma pergunta sobre as tags de versículo.

Alguém pode explicar por que o xml funciona dessa maneira, ou sugerir outros formatos de xml que sejam mais lógicos? Esses arquivos serão usados internamente em um projeto de publicação e, portanto, não nos preocupamos muito com padrões externos.

Observação: tentei a ferramenta Haiola usfm2usfx.exe e não consegui fazê-la funcionar, mas, se as pessoas disserem que essa é a melhor opção, posso tentar descobrir o que está errado.

Tradução automática de English
Paratext por (1,9k pontos) | 826 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 51 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 368 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 35 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 430 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.
And let us consider how we may spur one another on toward love and good deeds, not giving up meeting together, as some are in the habit of doing, but encouraging one another—and all the more as you see the Day approaching.
Hebrews 10:24-25
3,047 perguntas
6,007 respostas
5,672 comentários
2,027 usuários