C#读入和翻译其他应用程序的应用程序
我正在尝试构建一个翻译助手,它可以读入其他已编译的C#应用程序(.exe),并显示exe中的表单,单独显示,旁边还有一个表,其中的英文列将显示当前显示的英文单词,另一列是值,翻译人员可以输入。翻译完成后,翻译人员可以将翻译导出到resx文件中,以添加到项目中,也可以作为excel文件进行记录 我是C#新手,因此不确定我的结构是否正确,我在中设计了一个dll,在编译期间将其插入.exe,然后使用此dll,翻译应用程序可以提取字符串。这适用于大多数字符串,但在同一文本框中有多个字符串可以在不同时间出现的情况下(例如断开连接、已连接等)会被卡住。我尝试到处搜索,但我无法找到有关如何从应用程序中提取所有字符串的信息,以及如何识别它们所属的表单,以便创建我的应用程序 我面临的另一个问题是,实际显示翻译后的字符串,如果我正在构建的应用程序能够显示翻译后的字符串的外观,那么它将非常有益,因为某些语言的翻译可能非常长。但我发现,我只能读入已编译应用程序的各个方面并创建一个实例,但无法翻译它 我正在使用Reflection阅读exe,并从网上了解到我需要使用Reflection.emit来修改表单。但是我发现从表单中标识的每个sting都被提取为一个实例,因此更改字符串只是更改字符串的实例,而不是表单本身的实例。因此,我无法如此正确地显示C#读入和翻译其他应用程序的应用程序,c#,reflection,translation,translation-scheme,C#,Reflection,Translation,Translation Scheme,我正在尝试构建一个翻译助手,它可以读入其他已编译的C#应用程序(.exe),并显示exe中的表单,单独显示,旁边还有一个表,其中的英文列将显示当前显示的英文单词,另一列是值,翻译人员可以输入。翻译完成后,翻译人员可以将翻译导出到resx文件中,以添加到项目中,也可以作为excel文件进行记录 我是C#新手,因此不确定我的结构是否正确,我在中设计了一个dll,在编译期间将其插入.exe,然后使用此dll,翻译应用程序可以提取字符串。这适用于大多数字符串,但在同一文本框中有多个字符串可以在不同时间出
我已经试了三个星期来解决最后两个问题,提前谢谢你帮我解决这个问题 我认为,对于文本框中可能出现的文本,您无法找到解决问题的通用方法。原因如下:
如果文本在资源文件中,您可以阅读它们,但您仍然不知道它们在哪里使用。您需要对源代码进行复杂的分析,才能知道文本显示在哪里。想象一下这个小场景:
textBox.Text = GetCorrectText(connection.State);
GetCorrectText可能如下所示:
string GetCorrectText(ConnectionState state)
{
return string.Format(Resources.ConnectionState, state);
}
Resources.ConnectionState可能是“连接处于状态{0}”
这是一个简单的例子,但您需要了解或提取很多信息:
我想向您展示的是,您需要做出权衡。为什么不创建资源程序集呢?我正在制作的实际应用程序是将其传递给翻译人员,我不熟悉其他语言,一直在请朋友为我翻译,她不熟悉编程,有时我也会收到抱怨,说翻译的意思和单词的意思不一样。因此,nead的上下文,这就是为什么应用程序。这样她就可以直观地翻译字符串了。