在 .NET 应用程序中自动翻译和同步资源






3.17/5 (9投票s)
自动翻译和同步是一个小巧的实用程序,它通过简单地以您的单个回退资源文件(Resx)作为输入,并实时自动将其翻译成特定语言的资源文件来工作。
引言
创建多语言应用程序,虽然 .NET Framework 的每个版本都在不断改进,但将翻译或复制回退资源文件到不同语言仍然是一项艰巨的任务。
在开发应用程序的过程中,您会一个接一个地在您的 .resx 文件中创建键/值对。这并不困难,VS.NET 在 VS.NET 设计环境本身就有一个相当不错的 resx 文件编辑器。到目前为止,一切都很好。
后来,当您计划为第 2、第 3、第 4... 种语言创建资源时,问题就出现了。您会发现自己需要手动复制资源文件,重命名它,然后编辑新语言的值。
这是第一个问题,手动复制。第二个问题是同步。现在您有了不止一个资源文件,例如:resources.resx、resources.en-US.resx、resources.it-IT.resx 等。您必须保持它们的同步。因此,如果您在主资源文件中添加了一个新的键/值,您现在就有责任确保该键及其特定语言的值在所有资源中都得到复制。
这确实是个问题。AT&S 是一个用 WPF 编写的小型实用程序,其目标是解决这两个问题。这个问题对我来说如此严重,以至于您可以看到,我最终写了一个实用程序。
但又出现了一个第三个问题。翻译本身。我当然没有公司支持,也没有经济能力聘请翻译来使我的应用程序支持多语言。当然,我可以做意大利语和英语,但是日语呢?或者中文?也许是印地语或阿拉伯语?嗯,也许是俄语?这对我的受众来说更广,但我却无法进入那个市场。
这一切的答案是微软和谷歌最近免费提供的在线翻译器。这太棒了,因为它可能不完美,但我能完全理解翻译,而且它很有意义。虽然不是 100%,但有区别吗?总比没有好,而且它是免费的。更不用说,如果我真的有能力,它实际上可以帮助减轻翻译者现在的工作量,因为一半的工作已经完成,唯一剩下的工作就是进行必要的更正以达到更高的准确性。
我在在线翻译器方面遇到过的一个问题是,我拥有键/值对,每个值都包含翻译数据。而通过在线翻译器逐个值复制粘贴并不是我想要的度过周末的方式,也不是我以后每个周末想做的事情。实际上,微软和谷歌都提供了丰富的 API 来访问他们的服务,这使得编写一个与它们接口并以自动化方式逐个值提交翻译的小型实用程序变得非常容易。完美。
虽然这个应用程序很简单,只有一个屏幕和 4 个按钮,但很难说不知道该怎么做,让我们一步一步来。

在使用微软翻译或谷歌翻译之前,您需要向它们注册以获取应用程序 ID(微软)/ API 密钥(谷歌),然后将其提供给应用程序。请注意,下面我们正在提供我们的微软应用程序 ID。
- Microsoft applicationId: http://www.bing.com/developers/createapp.aspx
- Google API Key: http://code.google.com/apis/ajaxsearch/signup.html
Google API 屏幕是相同的。
提供 ID 后,您可以选择微软或谷歌作为您的翻译服务并开始。需要注意的一点是,您还需要选择您的默认资源文件。所有翻译和自动生成的资源都将基于此。

同样,如果您不想要翻译,而只是想将资源复制到特定语言的资源文件中,那么您也可以选择“系统”选项。选择此选项后,它将不执行翻译,而是会复制资源并相应地命名所选语言。
资源文件在您的回退资源文件(您之前浏览过的文件,请参阅上文)的同一文件夹内自动生成。如果您想在 Visual Studio 中查看新创建的文件,您需要选择该文件夹,然后从您的“编辑”菜单(VS.NET 中的主菜单栏)或直接从“解决方案资源管理器”标题栏中选择“刷新”图标。您还需要在“解决方案资源管理器”中启用“显示所有文件”选项,否则请启用它。
接下来,您可能还想右键单击文件并从“解决方案资源管理器”中选择“添加到项目”,这样它就会添加到您的项目中。总之,底线是任何从 Visual Studio 外部添加的文件都需要这样做,因为它不知道。

此应用程序可免费下载。您可以在 http://www.jiffycms.net/autotranslatesynchronize.aspx 找到它。
下载需要 30 秒注册没有特别原因。我只是想跟踪使用情况,并希望您成为我网站的会员。 :-)
开玩笑的。无需注册。快去拿吧。
历史
- 2009 年 6 月 14 日:初次发布