0
521 次浏览

我注意到在“主要圣经术语”(Major Biblical Terms)中出现的某些术语 ID 与项目渲染文件中使用的术语 ID 之间似乎存在二进制差异。如果你在编辑器中打开 xml 文件,匹配的术语 ID 在视觉上看起来完全一样。但我正在开发一个插件的原型,我的代码检测到了这种差异。也许这类似于组合形式(composed)与非组合形式(uncomposed)的区别,但我完全不懂希伯来语。我发布了 Shem 术语 ID 的两个版本的链接。一个来自“主要圣经术语”,另一个来自我某个项目中的 TermRenderings.xml。这两个 ID 看起来一样,但二进制文件查看器显示它们是不同的。
感谢任何建议。
stevepence

来自渲染文件的 Shem
来自主要术语的 Shem

机器翻译自 English
Paratext (127 分) 发布 | 521 次浏览

4 个回答

0
最佳答案

这也许比你想要的细节更多,但以下是我对希伯来语规范化问题的看法。Unicode 制定了一个规范变音符号顺序(canonical diacritic order),但这在语言学上并不理想。由于非交互变音符号之间的顺序可以是任意的,当被要求时,他们决定不改变顺序。但在希伯来语中,有些情况下交互变音符号的顺序很重要,而规范化会丢失这种顺序。为了解决这个问题,人们使用 CGJ(U+034F)来允许不同的变音符号顺序。这应该被视为单词拼写的一部分。

在所有这些讨论进行的同时,字体通常没有设计来处理 Unicode 规范顺序。但这早已修复,字体可以很好地处理 Unicode 规范排序的文本。

所有这些都是为了说明,我认为没有理由不将数据存储为 Unicode 规范形式(NFC、NFD,我认为在希伯来语中它们是相同的),但如果你有一些遗留数据(旧的 Unicode 数据),那么在规范化时应小心。特别是检查耶路撒冷(Jerusalem)这个词(据我模糊的记忆,这是包含变音符号顺序问题的词之一),它应该包含一个 CGJ(或者在面前有一个视觉表示时仔细查看)。

至于 Lorna 的例子,这两个变音符号之间应该没有困难,因为它们是非交互的(一个在上方,一个在下方)。

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

要查看字符串中包含哪些字符,你可以使用 UniView 14。将你的文本粘贴到标有“text area”的框中,然后点击文本区域框正下方的向下箭头,你就会看到字符列表(字符形状、Unicode 值和描述)。

如果你的猜测是正确的,且差异是由于规范化形式(normalization form)造成的,你可能需要在你的插件中包含一个规范化步骤。

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

ShemFrompmcdblRendering.txt 编码字符串:U+05E9 U+05B5 U+05C1 U+05DD
ShemFromMajorTerms.txt 编码字符串:U+05E9 U+05C1 U+05B5 U+05DD

如果我们查看 Unicode 属性,我认为 ShemFromMajorTerms.txt 中的编码是错误的,主要术语文档可能需要规范化。
注意:我知道希伯来语存在一些 Unicode 规范化问题,而且我不清楚在哪些情况下不应遵循规范化。

机器翻译自 English
(329 分) 发布

stevepence,
我怀疑随着越来越多的组织编写自己的插件,其他人可能会遇到你的问题。这并没有影响 Paratext 的用户,但显然如果你正在编写插件,它会影响你。如果“主要圣经术语”列表没有使用希伯来语编码的最佳实践,也许你可以与 anon291708 讨论你的需求。

机器翻译自 English
0

感谢所有回复的人。每个人的回复对于理解这个问题都极有帮助。我非常感激!

我不会妄加评论哪个文件具有“正确”的编码——这显然是一个复杂的话题。我有限的关注点在于能够无歧义地使用这些 ID 作为数据集的键。显然,圣经术语工具能够正确链接不同文件中的 ID,尽管它们的二进制表示存在差异,这大概是通过即时规范化实现的。

由于我目前只是在进行原型开发,现在只需要深入到这个程度。一旦我开始编写插件本身的代码,我将需要深入研究 PT 在这个领域是如何工作的细节。

我现在对问题的理解好多了。谢谢大家!

stevepence

机器翻译自 English
(127 分) 发布

在 Paratext 中,所有术语 ID 和渲染 ID 在加载时都会规范化为 NFC 格式,以解决此问题。事实上,由于这个问题,几乎所有数据在比较两个字符串时都会在内部进行规范化。我认为这是 Unicode 的一个设计问题,但那是另一个话题。:stuck_out_tongue_winking_eye:

编辑:另外,如果你正在制作 Paratext 插件,你应该使用 IProject.GetBiblicalTermRenderingsIPluginHost.GetBiblicalTermList / IProject.BiblicalTermList 来处理圣经术语——这应该可以避免此问题。

机器翻译自 English

谢谢。目前我仍在 VBA 中工作,以完成原型并获取用户反馈。我还没有开始使用 api 进行实际工作。我当然希望 api 能隐藏所有这些细节,但我感谢每个人在理解这些问题上的帮助——即使我最终不需要深入那里。

stevepence

机器翻译自 English

相关问题

0
2 个回答 199 次浏览
When downloading Paratext 8, I'm told: The Online file is smaller and may be used if you are installing while connected to the ... to download that extra 85Mb, if I don't have to.
jeffh 1.4k 发布 提问于 三月 23, 2017
0
3 个回答 409 次浏览
We have a problem with language IDs not matching which prevents the Interlinearizer from working. The KPZ project was registered ... or how I can look at those changes. Iver+Larsen
Iver Larsen 869 发布 提问于 一月 24, 2020
0
2 个回答 360 次浏览
In PT8 when I compare two project (of the same language) there were two arrows to go backwards or forwards to ... they do not work for difference between two different projects.
anon784407 105 发布 提问于 一月 13, 2020
0
0 个回答 154 次浏览
Biblical Term rendering discussion not | Biblical Term rendering description e | The entire history leading to a deci ... Terms tool. See also: Introduction to Biblical Term notes
[Expert]
anon421222
735 发布
提问于 二月 23, 2017
0
2 个回答 639 次浏览
我们有一位用户,其新约关键圣经术语列表(NT Key Biblical Terms list)中关联了许多译法 他们希望开始使用主要圣经术语列表(Major Biblical Terms list) 这两个列表不会自动关联,因为新约列表基于英语术语 ... 会改变术语本身的顺序 我认为在这个过程中,按字母顺序排列术语会很有帮助 谢谢, james_post
[Moderator]
james_post
2.1k 发布
提问于 十一月 10, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Just as a body, though one, has many parts, but all its many parts form one body, so it is with Christ.
1 Corinthians 12:12
3,048 个问题
6,007 个回答
5,672 条评论
2,028 位用户