+1
809 次浏览

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.

较早的帖子 - 以原始语言显示
Paratext (1.9k 分) 发布 | 809 次浏览

6 个回答

0
最佳答案

抱歉,这行不通。你可以读取 Paratext 已经运行过模块生成的已设置模块的结果,但你不能写入一个模块到 Paratext 并让它知道这是一个模块并运行生成。

编辑:显然我漏掉了两年多前的一些问题::grimacing:

是的,现在它应该输出 3.0 格式。

不幸的是,不行。rdwrtp8 旨在读写原始文件,以便其他应用程序可以读写 Paratext 数据。这要求数据是可往返的(round-trip-able),而 PrintDraftChanges.txt 中定义的更改是不可往返的。

机器翻译自 English
[Expert]
(16.7k 分) 发布

已重新显示
0

我不知道有这样的工具。在我看来,最好的方法似乎是使用标准化的位置方案来导出 USX 文件,例如 C:\My Paratext 8 Projects\[project name]\local\USX,然后从那里获取它们。
关于章节和经文标记,这些被称为里程碑(milestones),是处理重叠标记的一种方式。
这是用于印刷出版物还是仅用于数字出版?

机器翻译自 English
(872 分) 发布
已重新显示

这是用于纯印刷出版物的。我们使用的出版程序 SILE 接受 xml 输入。实际上它接受类似 TeX 的输入(即 USFM),但我合作的程序员更倾向于使用 xml。

我假设 USX 的格式对程序员来说完全没问题,所以这些其他问题是为了我自己的理解。

我想这仅仅是设计决策,但我在想为什么创建 USX 的人决定让 <chapter> 表示“章节开头的数字”而不是“章节”。我对 xml 的理解是,它通常使用这样的格式:
<tag attributes=“aaa”>content</tag>

目前的情况是
<chapter number=“1” style=“c” > 没有内容
而我预期的是
<chapter number=“1” style=“c”>the actual content of the chapter<\chapter>

也许我遗漏了什么,但我看不出这是由标记重叠问题引起的。

这是另一个问题——按照我们地区宗教书籍的风格,我们的项目计划在节末而不是节首标记节号。按照 <verse> 标记目前的工作方式,我们需要使用脚本来将该标签移动到纯文本 xml 文档中的不同位置,但如果 USX 使用我认为它应该使用的格式:
<verse number=“1” style=“v”>verse text</verse>
那么让读取 xml 的程序解释该行并说“将属性 ‘number’ 打印在 ‘verse text’ 的末尾而不是开头”就会非常简单。

机器翻译自 English
0

一年半过去了,我仍然需要这个功能。

Paratext 内置的“export project to USX”正是我需要的,但我希望它能自动化,这样我就可以将其整合到命令行构建脚本中。USFM–>USX 转换代码肯定在 PT 中。有没有办法从开发人员那里获取该代码(理解我们需要进行一些修改才能使其在我们使用的任何语言下运行)?如果可以,我该怎么做?

机器翻译自 English
(1.9k 分) 发布
0

听起来你想要一个独立工具,但如果你只需要项目的 USX 格式文本,Paratext 8+ 附带了一个小型命令行工具,可以提取项目的 USX 格式文本:
rdwrtp8 -r projectShortName bookCode chapterNum resultFileName -x

-x 用于指定 USX 格式而不是 USFM 格式。
如果 chapterNum 为 0(零),则返回整本书。

出于显而易见的原因,这不能用于资源。

由于解析代码严重依赖于项目设置和样式表信息才能从 USFM 生成 USX,因此很难将其从 Paratext 中分离出来。

机器翻译自 English
[Expert]
(16.7k 分) 发布
0

当我看到你最近的帖子时,我本来也想建议 Haiola,但我看到你已经尝试过了。诚实地说,我自己没有使用过。如果 rdwrtp8 不能提供解决方案,我建议联系作者并告知你发现的问题。

至于重叠标记,我猜一个例子是尼希米记第 8 章。在我印刷版的 NIV 中,第 8 章从段落中间开始。并且经文编号(在这种情况下是 1)打印在章节编号(采用首字下沉)旁边。在其他章节中,如果经文编号是 1,则会被省略。

在 Paratext 中,样式表定义了标记的层级,例如 id > ide > c > p > v。对于大多数章节和段落,这可以按照你预期的方式映射到 XML(c 元素包含 p 元素等)。但对于尼希米记第 8 章,Paratext 的层级结构失效了,这就是为什么我怀疑 USX 有一个没有内容的 c 元素。

机器翻译自 English
(185 分) 发布
0

谢谢,@anon291708,我认为 rdwrtp8 正好能做我需要的。我刚运行完,有几个问题。
它输出 2.5 版本的 USX,这是 PT8 使用的版本。它将来会更新为输出 3.0 格式,就像 PT9 那样吗?
它似乎没有在导出过程中使用 PrintDraftChanges.txt 文件,而 PT8/9 中的“Export project to USX”菜单选项确实使用了该文件。有没有办法将这些更改整合进去?

@Bobby,谢谢建议 Haiola。是的,我尝试过但不成功。至于重叠标记,在一年或两年前读完这个帖子并思考这些问题后,我认为我对为什么这很重要(以及为什么任何系统都会有固有的缺陷)有了更好的理解。

机器翻译自 English
(1.9k 分) 发布

现在我想写一个脚本,它接受一个圣经模块规范文件并从中创建输出文件。有人在这里告诉我 rdwrtp8.exe 应该能做到这一点,但我无法使其正常工作。

它应该能做到吗?我应该能够接受一个圣经模块规范文件,将其作为 XXA-XXG 书籍外部加载到 PT 中,然后导出它……并且生成的文件应该是包含所有填充经文的圣经模块输出吗?

我使用的命令是:
rdwrtp8 -w PROJ XXA 0 "D:\My-Modules\module1.sfm"
以及
rdwrtp8 -r PROJ XXA 0 "D:\My-Expanded-Modules\module1.sfm"

机器翻译自 English

相关问题

0
2 个回答 43 次浏览
我需要将一个 USX 文件转换为 USFM。我看到 Paratext 有反向操作的选项,但没看到从 USX 到 USFM 的选项。我需要这样做,因为 Proskomma(用于 Scripture App Builder 构建 PWA)拒绝了圣经中的 12 卷书,原因是它们不符合标准格式。我希望将它们转换为 USFM 后,Proskomma 处理起来会更轻松。
yeti 109 发布 提问于 三月 19
0
2 个回答 359 次浏览
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 发布
提问于 十月 2, 2015
0
2 个回答 236 次浏览
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 发布 提问于 四月 24, 2020
0
1 个回答 34 次浏览
我们在脚注交叉引用中使用了 /xt,设置为使用书籍的“短名”。但在词汇表中,我想使用书籍名称的缩写,是否有不同的 USFM 代码可以实现这一点?
Lenice 180 发布 提问于 十月 7, 2025
0
1 个回答 423 次浏览
我想将项目导出为 HTML,以便与他人分享草稿 我不想导出为 PDF,因为 PDF 在智能手机和其他小屏幕设备上使用起来很不方便 我可以通过打开 Paratext,点击项目菜单按钮,然后选择 高级 (Advanced),再选择 将项目导出为 ... 标记是可见的,例如 \v 1 和 \s 等标记 我该如何在导出的 HTML 中隐藏这些 USFM 标记?
bit 495 发布 提问于 四月 14, 2022
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Finally, all of you, be like-minded, be sympathetic, love one another, be compassionate and humble.
1 Peter 3:8
3,045 个问题
6,005 个回答
5,671 条评论
2,026 位用户