我有一个QTextEdit
用户可以插入任意文本的地方。在本文中,可能有一些我希望自动翻译的特殊字符序列。从翻译版本中,我希望我能回到序列。
以这个为例:
QMessageBox::information(0, "Foo", MAGIC_TRANSLATE(myTextEdit->text()));
如果用户在myTextEdit
's text 中写入了 sequence \n
,我希望将MAGIC_TRANSLATE
字符串转换\n
为实际的换行符。
同样,如果我给出一个包含换行符的文本,aMAGIC_UNTRANSLATE
会将换行符转换为\n
字符串。
现在,我当然可以自己实现这两个功能,但我要问的是,在 Qt 中是否已经制作了一些易于使用的东西,它允许我指定一个字典,其余的工作会为我完成。
请注意,具有公共前缀的序列可能会产生一些冲突,例如转换:
\foo -> FOO
\foobar -> FOOBAR
翻译文本时可能会出现问题asd \foobar lol
,因为如果\foo
在之前搜索和替换\foobar
,那么生成的文本将是asd FOObar lol
而不是(更自然)asd FOOBAR lol
。
我希望已经明确了我的需求。我相信这可能是一个常见的任务,所以我希望有一个 Qt 解决方案可以在前缀冲突时考虑到这类问题。
如果这是一个微不足道的话题(我认为可能是这样),我很抱歉,但我对编码技术和问题一点也不熟悉,而且我对 Qt 编码的了解只涵盖了非常简单的与 Unicode 相关的问题。
编辑:顺便说一句,在我的情况下,基于资源或外部文件或任何不需要重新编译的面向数据的方法会很棒。