+1
813 次浏览

有没有人知道可以将 USFM 格式转换为 USX(或其他任何 xml 变体)的命令行工具?

我想写一个脚本来从不同项目中获取几个不同的 .sfm 文件并批量转换它们……使用内置的 Tools–>Advanced–>Export Project to USX 功能来做这件事相当困难。

此外,USX 做出了一些奇怪的设计决定,看起来似乎是直接反映 USFM 代码而不是真正的 xml。至少对我来说,我对这个领域知之甚少,所以它们看起来很奇怪……但我原本期望 chapter 标签在章节结束时关闭,而不是紧跟在章节编号之后,例如
<chapter number=“1” style=“c”>
all the verses
</chapter>

而不是
<chapter number=“1” style=“c” />

关于 verse 标签,我也有完全相同的问题。

有人能解释一下为什么 xml 是这样工作的,或者建议其他更合乎逻辑的 xml 格式吗?这些文件将在出版项目内部使用,因此我们不太关心外部标准。

注意,我尝试过 Haiola usfm2usfx.exe 工具,但无法使其工作,但如果人们说那是最佳选择,我可以尝试弄清楚哪里出了问题。

机器翻译自 English
Paratext (1.9k 分) 发布 | 813 次浏览

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 个回答 45 次浏览
我需要将一个 USX 文件转换为 USFM。我看到 Paratext 有反向操作的选项,但没看到从 USX 到 USFM 的选项。我需要这样做,因为 Proskomma(用于 Scripture App Builder 构建 PWA)拒绝了圣经中的 12 卷书,原因是它们不符合标准格式。我希望将它们转换为 USFM 后,Proskomma 处理起来会更轻松。
yeti 109 发布 提问于 三月 19
0
2 个回答 360 次浏览
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 个回答 425 次浏览
我想将项目导出为 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.
They devoted themselves to the apostles’ teaching and to fellowship, to the breaking of bread and to prayer.
Acts 2:42
3,045 个问题
6,005 个回答
5,671 条评论
2,026 位用户