VB 6源代码,语音文本为法语要翻译成英语

问题描述 投票:2回答:6

我有一个可能对我有用的程序,但是文档和所有工具提示均使用我无法阅读的语言。源代码可用,整个过程大约需要84,000行代码。我的问题是,是否有一种方法可以仅导出或获取例如工具提示文本,按钮文本,会在最终用户中显示为任何可读消息一部分的内容,以便轻松翻译文本?

vb6
6个回答
1
投票

一种可能的方法是使用知道如何转换VB6程序的内容。它将需要解析VB6,拉出所有文字文本字符串,将它们提供给您进行翻译,然后用替换的内容替换原始字符串。实际上,您需要两遍,第一遍产生使您能够翻译感兴趣的翻译的第二遍,第二遍替换您指定的翻译(如果有)。您可能需要进行一些调试,因为通常有些事情取决于字符串的大小。

您如何将字符串从一种语言转换为另一种语言取决于您。正如其他张贴者所建议的那样,您可以使用在线翻译,然后将您得到的东西拿走。我希望如果有人做,您会做得更好。因为它们是从代码中提取的,所以它们通常只需要关注字符串的含义,但是您还会发现翻译取决于代码的作用的情况,因此需要程序员参与。

我们的DMS Software Reengineering Toolkit及其Visual Basic Front End可以很容易地配置为执行此操作。 DMS提供通用的解析和转换机制; VB前端提供有关Visual Basic 6的详细信息(在您的情况下)。

此想法的一种变体是将翻译后的文字字符串替换为对包含原始(法语)或新(英语)的“资源”(相当于由字符串数字索引的查找表)的引用。这种解决方案产生了一些接近国际化人们想要做的事情。 (这不涉及日期和货币格式;它们需要数据流分析来确定导致/来自日期或货币操作的计算。虽然不需要进行文字字符串转换,但DMS提供了流分析,因此可以将其配置为这也是。)

如果您有关于字符串在文本中位置的精确信息(例如,起始行/列,结束行/列),则可以使用另一种方法:使用该精确信息来提取字符串,然后使用同样准确的信息来重新插入翻译。为避免损坏字符串位置,应首先从每个文件的末尾开始替换字符串,并在整个文件中向后工作。在文本缓冲区上这样做应该很简单。

我们的Source Code Search Engine (SCSE)可用于轻松查找此类字符串及其位置。 SCSE根据其词法结构对源代码进行索引(从而准确地查看字符串文字),然后全部允许在源代码中查询任意标记序列。它使用DMS的语言前端(出于您的目的,使用VB6前端)来准确地提取词素。

[一个人可能会寻找这样的陈述,该陈述为具有以下查询的名称包含X(使用通配符)的变量分配了大于10的常量(使用范围约束):

 I=*x* '=' N>10

SCSE将找到所有匹配项,向您显示匹配项,并且只需单击一下即可启用源代码中的匹配项。

您要查找文字字符串的查询非常简单:

 S=*

的意思是,“查找所有字符串而不考虑内容”。您可以打开SCSE日志记录,它将所有命中列表以及精确位置写入日志文件。至此,您将获得所有精确的字符串信息。 (SCSE无法进行流量分析,因此它无法像DMS一样帮助国际化日期,但是它可以找到

 N 'mod' 4 '==' 0 

模式,通常是leap年调整项。


0
投票

我没有完美的建议,但这可能是您最好的选择:使用文档翻译器,并与自己保持密切联系。然后编译新的源,看看有什么坏处。它很可能会忽略不是正确单词的项目(例如btnOK等)


0
投票

一个选项是


0
投票

仅是我的2c。源代码文本的自动翻译非常有问题。基本上,它永远无法正常工作。为什么不?上下文。为了使自动翻译器正常工作,它必须具有一定的上下文。但是,当您谈论源代码文本时,您所谈论的是一些简短的文本片段,这些片段要么没有明显的上下文,要么通过代码串在一起,因此失去了上下文。


0
投票

如果打开VB6 .frm文件,您将在所有表单控件的顶部看到该控件,如以下摘录:


-1
投票

在线免费翻译器可根据要求将英语单词,词组或文本轻松转换为最准确的英语translation。另外,即时将英语单词,短语或文本翻译成几种不同的语言,例如English To tamil Translation

© www.soinside.com 2019 - 2024. All rights reserved.