gpt4 book ai didi

javascript - 将 RTL 语言音译为 LTR 语言的通用(粗略)算法

转载 作者:行者123 更新时间:2023-12-02 22:52:10 30 4
gpt4 key购买 nike

我开始考虑如何将 RTL 字符串(即阿拉伯语、希伯来语)transliterate 转换为 LTR 字符串(即声音/字母的 romanization)。如果是 LTR -> LTR,则相对简单,但对于 RTL -> LTR,心理上会比较棘手。对于 LTR -> LTR,您可以对 A 中的每个字母到 B 中的每个字母进行简单映射。在某些情况下,也许多个 A 组合起来会形成一个 B,或者单个 A 会形成一串 B。

a        b
- -
X 1
YZ 2
ABC 3
D 456
E 78

然后给定像 XYZYZDDEABC 这样的字符串,您将得到 122456456783。足够基本,尽管实际的算法会有点棘手,因为它可能必须向前看并对元素进行优先级排序。但这就是要点。

现在对于 RTL -> LTR 转换,我在两个层面上感到困惑。首先,如何迭代 RTL 字符串?这些字符实际上是按LTR顺序排列的,对吗?这只是浏览器中的视觉布局等使其成为 RTL。所以从代码的 Angular 来看,你的 RTL 语言实际上是读取 LTR (这不像我们必须做任何相反的事情或任何事情)。只是确保我正确地解释了这一点。这意味着我可以像上面的 LTR -> LTR 转换一样实现所有意图和目的。

如果不是这样,并且还有其他需要考虑的事情,我想知道一般如何做到这一点。如果演示需要一种语言,那么 JavaScript 会很好。

最佳答案

你是对的。文本按“逻辑顺序”存储,即输入的顺序(或者,在大多数情况下,是说出的顺序)。因此在音译过程中不需要考虑方向性。

请注意,在许多书写系统(包括阿拉伯语和希伯来语)中,数字都以“big-endian”形式书写,最高有效数字位于左侧。它们也按此顺序键入,这意味着文本实际上是双向的。当不同方向性的文本混合在一起时也是这种情况,例如当以拉丁字母书写的名称包含在阿拉伯语或希伯来语文档中时。幸运的是,您也不必担心这一点,除非您正在编写 Unicode 渲染器。 (如果是的话,您需要阅读 Annex 9 to the Unicode standard ,其中介绍了双向渲染的所有细节。)

关于javascript - 将 RTL 语言音译为 LTR 语言的通用(粗略)算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143586/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com