C# 本地化。在同一句子中混合使用从左到右的单词和从右到左的单词的问题
我正在研究如何解决问题,同时混合需要从右到左(如阿拉伯语)阅读的单词和从左到右的单词(如英语)。
我们遇到的问题是,当在要以 RTL 读取的句子中插入 LTR 单词时(例如,在阿拉伯语句子中插入英语单词):英语文本是从左到右正确书写的,但问题是之后的阿拉伯语部分最终出现在错误的一侧。 其背景是,我正在开发的程序需要插入一些 ID 或对象标识符,这些 ID 或对象标识符需要保留为英语,但插入本地化句子(在本例中为阿拉伯语)。
为了举例说明,假设 RTL 单词为小写,LTR 单词为大写。
我想要的输出是:
abc ABC efg
但我们却得到了
abc ABC gfe
获得正确输出的唯一方法是在之前插入 unicode 标记(LTR 表示从左到右,PDF 表示 Pop-Directional-Formatting 将标记它的结尾)在 LTR 文本之后:
abc {LTR} ABC {PDF} efg
这是一个可以使用的解决方案,但我想知道是否没有更简单的方法来自动处理这个问题? RTL 单词位于资源文件中,而英语部分通常来自 Db 调用。 过去有关于如何处理这种特殊情况的经验吗? 谢谢!
I'm looking on how to solve problems while mixing words that require right-to-left(like arabic) reading and left-to-right words (like English).
The problem we encounter is that when inserting a LTR word inside a sentence meant to be read in RTL (inserting an English word inside an Arabic sentence for eg): the English text is correctly written from left to right,but the problem is that the Arabic part that comes after ends-up on the wrong side.
The context of this is that the program I'm working on needs for example to insert some IDs or object identifiers that need to be remained in English but inserted in a localized sentence (Arabic in this case).
To illustrate an example, let's say the RTL words are in lowercase and LTR words are in uppercase.
My desired output would be:
abc ABC efg
but we instead get
abc ABC gfe
The only way to get the correct output is to insert the unicode markers (LTR for left-to-right, the PDF for Pop-Directional-Formatting that will mark the end of it) before and after the LTR text :
abc {LTR} ABC {PDF} efg
This is a solution that can be used, but I was wondering if there was not an easier way to handle this, automatically? The RTL words are in the resource files, while the English parts are -usually- coming from Db calls.
Any past experience on how to handle this particular scenario?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只是在黑暗中刺探:您是否尝试过使用 {RTL} 而不是 {PDF}...?
Just a stab in the dark: have you tried using {RTL} instead of {PDF}...?