关于翻译前要替换的字符的设置技巧
=======
问题
=======
引用 47楼 hanuser001 的一段字串:
\001CT=Roughen Brush\001TH=Roughen Brush tool\001TT=Distort the edge of an object by dragging along the outline.
这段字串与常见的字串的最大不同是它在每个句子开始有\001这样的八进制转义符,这个转义符所显示的是“”这样一个字符(可能显示不出来),它在这段字串中的作用估计是用于分隔前后句子。直接用Microsoft翻译引擎的话,会导致翻译失败。这是因为翻译引擎无法识别\001转义符。
=======
解决方案
=======
思路:如果我们将\001替换成其他字符应该可以解决问题。
Passolo 在线翻译宏提供了“翻译前替换特定字符后还原”选项,该选项调用的是在字串处理设置中的“翻译前要被替换的字串”中所设置的值,这个值会应用于所有调用它的配置的翻译中。现在我们来看看应该如何设置这里的值。
一般情况下,我们只要将替换\001替换成其他的字符即可。我们将它替换成其他字串不太会出现\001,即在“翻译前要被替换的字串”中输入“\001|001”,并选定“翻译前替换特定字符后还原”选项,用Microsoft翻译引擎翻译结果如下:
\001 CT 粗糙 Brush\001TH = = 粗糙的画笔 tool\001TT = 通过拖动轮廓以及扭曲对象的边缘。
不能翻译问题已经解决,但是遗漏了部分单词的翻译。这个问题的原因是Microsoft翻译引擎对于直接跟随数值的单词无法识别或识别为不可翻译的部分的缘故。
为此,有什么办法可以完美在线翻译呢?我们利用Passolo 在线翻译宏提供的分行翻译功能,在每个\001前插入一个分行符,看看是否可以完美翻译。
我们在“翻译前要被替换的字串”中输入“\001|\n001”,并选中“分行翻译”,然后用Microsoft翻译引擎再次翻译一下,结果如下:
\001 CT = 粗糙刷\001TH = 粗糙画笔工具\001TT = 通过拖动轮廓以及扭曲对象的边缘。
以上翻译结果,是不是很完美了。
当然,我们也可以用其他方法,只要将每个句子前面的转义符去除,并在每个句尾的最后一个单词不和其他字符相连,一般都可以完美翻译。比如留几个空格加几个不可能重复的字符组合,如3个空格+MMMM。这个留给各位测试了。但是我估计应该是插入换行符换行翻译干扰最少、效果最好。
这里我只是抛砖引玉,提供一种思路给各位,希望今后各位在使用在线翻译遇到类似的问题,可以借鉴。谢谢各位。
========
备注
========
在“翻译前要被替换的字串”中可以直接输入转义符是2010.06.05版才支持的功能。请不要在以前的版本中输入类似的转义符。
[ 此帖被wanfu在2010-06-05 06:39重新编辑 ]