+1 vote
825 vues

Quelqu'un connaît-il un outil en ligne de commande pour convertir le format USFM en USX (ou tout autre format XML) ?

Je voudrais écrire un script pour récupérer plusieurs fichiers .sfm de différents projets et les convertir en masse… ce qui est assez difficile avec l'outil intégré Tools–>Advanced–>Export Project to USX.

Aussi, USX prend certaines décisions de conception étranges qui semblent être des reflets directs du code USFM plutôt que du véritable XML. Du moins, elles me semblent étranges à moi qui ai très peu de connaissances dans ce domaine… mais j'aurais attendu que la balise se ferme à la fin du chapitre et non immédiatement après le numéro du chapitre, par exemple
<chapter number=“1” style=“c”>
    all the verses
</chapter>

au lieu de
<chapter number=“1” style=“c” />

J'ai exactement la même question concernant les balises de versets.

Quelqu'un peut-il expliquer pourquoi le XML fonctionne ainsi, ou suggérer d'autres formats XML plus logiques ? Ces fichiers seront utilisés en interne dans un projet d'édition et nous ne nous soucions donc pas trop des normes externes.

Notez que j'ai essayé l'outil Haiola usfm2usfx.exe et je n'arrive pas à le faire fonctionner, mais si les gens disent que c'est la meilleure option, je peux essayer de comprendre ce qui ne va pas.

Traduit automatiquement depuis English
Paratext par (1,9k points) | 825 vues

6 Réponses

0 votes
Meilleure réponse

Désolé, cela ne fonctionnera pas. Vous pouvez lire le résultat d'un module déjà configuré sur lequel Paratext a déjà exécuté la génération de module, mais vous ne pouvez pas écrire un module dans Paratext et le faire savoir que c'est un module et exécuter la génération.

EDIT: Apparemment, j'ai manqué quelques questions d'il y a plus de deux ans : :grimacing:

Oui, il devrait maintenant sortir au format 3.0.

Malheureusement, non. rdwrtp8 est conçu pour lire/écrire les fichiers bruts afin que d'autres applications puissent lire/écrire les données Paratext. Cela nécessite que les données soient réversibles (round-trip-able) et les modifications définies dans PrintDraftChanges.txt ne sont pas réversibles.

Traduit automatiquement depuis English
par [Expert]
(16,7k points)

réaffiché
0 votes

Je ne connais pas un tel outil. À mon avis, la meilleure solution consiste à utiliser un schéma d'emplacement standardisé pour l'exportation des fichiers USX, par exemple C:\My Paratext 8 Projects\[project name]\local\USX, et à les récupérer à partir de cet emplacement.
Concernant les marqueurs de chapitres et de versets, ils sont appelés « milestones » (repères) et constituent une manière de gérer le balisage imbriqué.
Est-ce destiné à une publication imprimée ou uniquement numérique ?

Traduit automatiquement depuis English
par (872 points)
réaffiché

Ceci est destiné à une publication uniquement imprimée. Le programme de publication que nous utilisons, SILE, prend en entrée des fichiers xml. Il accepterait en réalité une entrée de type TeX (c'est-à-dire USFM), mais le développeur avec qui je travaille préférerait utiliser du xml.

Je suppose que le format USX conviendra parfaitement au développeur, donc ces autres questions sont pour ma propre compréhension.

Je suppose qu'il s'agit simplement de décisions de conception, mais je me demande pourquoi la personne qui a créé USX a décidé que <chapter> signifiait « le numéro au début d'un chapitre » et non « chapitre ». Ma compréhension du xml est qu'il utilise généralement un formatage comme
<tag attributes=“aaa”>content</tag>

La façon dont les choses sont actuellement
<chapter number=“1” style=“c” > n'a aucun contenu
Alors que je m'attendrais à
<chapter number=“1” style=“c”>the actual content of the chapter<\chapter>

Peut-être que je manque quelque chose, mais je ne vois pas comment cela est causé par des problèmes de balisage superposé.

Voici un autre problème – suivant le style des livres religieux de notre région, notre projet prévoit de marquer les numéros de versets à la fin des versets, et non au début. Avec la façon dont le marqueur <verse> fonctionne actuellement, nous devrons utiliser des scripts pour déplacer la balise à une position différente dans le document xml en texte brut, mais si USX utilisait le format que je pense qu'il devrait utiliser:
<verse number=“1” style=“v”>verse text</verse>
alors il serait assez simple que le programme lisant le xml interprète cette ligne et dise « imprimer l'attribut 'number' à la fin de 'verse text' au lieu du début ».

Traduit automatiquement depuis English
0 votes

Un an et demi plus tard, je veux toujours cette fonctionnalité.

L'option intégrée de Paratext « exporter le projet en USX » est exactement ce dont j'ai besoin, mais je voudrais l'automatiser pour pouvoir l'intégrer dans un script construit en ligne de commande. Le code de conversion USFM–>USX doit être dans PT. Y a-t-il un moyen d'obtenir ce code des développeurs (en comprenant qu'une modification serait nécessaire de notre part pour le faire fonctionner dans le langage que nous utilisons) ? Si oui, comment procéder ?

Traduit automatiquement depuis English
par (1,9k points)
0 votes

Il semble que vous vouliez un outil autonome, mais si tout ce dont vous avez besoin est le texte d'un projet au format USX, Paratext 8+ est livré avec un petit outil en ligne de commande qui peut extraire le texte d'un projet au format USX:
rdwrtp8 -r projectShortName bookCode chapterNum resultFileName -x

Le -x sert à spécifier le format USX au lieu du format USFM.
Si chapterNum est 0 (zéro), alors le livre entier est renvoyé.

Cela ne peut pas être utilisé sur des ressources pour des raisons évidentes.

Il serait difficile de séparer le code d'analyse en dehors de Paratext, car il dépend beaucoup des paramètres du projet et des informations de feuille de style pour produire l'USX à partir de l'USFM.

Traduit automatiquement depuis English
par [Expert]
(16,7k points)
0 votes

Lorsque j'ai vu votre récent message, j'allais suggérer Haiola également, mais je vois que vous l'avez déjà essayé. Admettons que je ne l'ai pas utilisé moi-même. Je suggérerais de contacter l'auteur avec les problèmes que vous avez trouvés, si rdwrtp8 ne fournit pas de solution.

Concernant le balisage imbriqué, je suppose qu'un exemple serait Néhémie 8. Dans ma NIV imprimée, le chapitre 8 commence au milieu d'un paragraphe. Et le numéro de verset (1 dans ce cas) est imprimé à côté du numéro de chapitre (qui est en capitales). Dans d'autres chapitres, le numéro de verset est omis s'il est 1.

Dans Paratext, la feuille de style définit une hiérarchie de marqueurs, tels que id > ide > c > p > v. Et pour la plupart des chapitres et des paragraphes, cela pourrait correspondre au XML de la manière que vous attendez (avec l'élément c contenant un élément p, etc.) Mais pour Néhémie 8, la hiérarchie de Paratext s'effondre, c'est pourquoi je soupçonne que USX a un élément c qui n'a pas de contenu.

Traduit automatiquement depuis English
par (185 points)
0 votes

Merci, @anon291708, je pense que rdwrtp8 fera exactement ce dont j'ai besoin. J'ai quelques questions à ce sujet, l'ayant tout juste exécuté.
Il sort l'USX au format version 2.5, ce que PT8 utilisait. Sera-t-il un jour mis à jour pour sortir au format 3.0 comme PT9 ?
Il ne semble pas utiliser le fichier PrintDraftChanges.txt pendant le processus d'exportation, ce que l'option de menu « Exporter le projet en USX » dans PT8/9 utilise. Y a-t-il un moyen d'incorporer ces modifications ?

@Bobby, merci pour la suggestion de Haiola. Oui, je l'avais essayé sans succès. Concernant les marqueurs imbriqués, après avoir lu ce message il y a un ou deux ans et avoir réfléchi aux problèmes, je pense que j'ai une meilleure compréhension de pourquoi c'est important (et pourquoi tout système aura des lacunes inhérentes).

Traduit automatiquement depuis English
par (1,9k points)

Je voudrais maintenant écrire un script qui prend un fichier de spécification de module biblique et crée le fichier de sortie à partir de celui-ci. On m'a dit ici que rdwrtp8.exe devrait le faire, mais je n'arrive pas à le faire fonctionner.

Devrait-il le faire ? Devrais-je pouvoir prendre un fichier de spécification de module biblique, le charger dans PT en externe comme un livre XXA-XXG, puis l'exporter… et avoir le fichier résultant être la sortie du module biblique avec toutes les Écritures remplies ?

Les commandes que j'utilise sont:
rdwrtp8 -w PROJ XXA 0 "D:\My-Modules\module1.sfm"
et
rdwrtp8 -r PROJ XXA 0 "D:\My-Expanded-Modules\module1.sfm"

Traduit automatiquement depuis English

Questions connexes

0 votes
2 réponses 51 vues
J'ai besoin de convertir un fichier USX en USFM. Je vois une option dans Paratext pour faire l'inverse, ... que leur conversion en USFM facilitera leur traitement par Proskomma.
yeti 109 posée mars 19
0 votes
2 réponses 368 vues
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
posée oct. 2, 2015
0 votes
2 réponses 236 vues
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 posée avr. 24, 2020
0 votes
1 réponse 35 vues
Nous utilisons /xt dans les renvois de notes de bas de page, configuré pour utiliser le nom court du livre. ... -il un code USFM différent que je pourrais utiliser pour cela ?
Lenice 180 posée oct. 7, 2025
0 votes
1 réponse 430 vues
Je souhaite exporter le projet en HTML afin de pouvoir partager des brouillons avec d'autres personnes. Je ne veux ... . Comment masquer les marqueurs USFM dans le HTML exporté ?
bit 495 posée avr. 14, 2022
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
For just as each of us has one body with many members, and these members do not all have the same function, so in Christ we, though many, form one body, and each member belongs to all the others.
Romans 12:4-5
3,047 questions
6,007 réponses
5,672 commentaires
2,027 utilisateurs