我该如何在VS 2010中创建多语言文本翻译编辑器?

8 c# globalization visual-studio-2010 dynamics-ax-2009 asp.net-mvc-3

下面介绍的功能可在Microsoft Dynamics AX(以前称为Axapta)(ERP应用程序)中找到.但是,我的问题与Visual Studio 2010和MVC 3应用程序有关.请在此功能说明后找到我的问题.

  1. 屏幕截图#1显示了使用MorphX编辑器以X ++(Microsoft Dynamics AX中使用的语言)编写的方法.如果我在双引号中选择文本并右键单击它们,我将获得截图中显示的选项.如果文本以@字符开头并且是在标签文件中找到的有效ID,则为true .
  2. 如果单击该选项Lookup Properties/Methods,将出现一个工具提示,显示与所选标签ID关联的实际文本.在这种情况下,标签ID是@SYS67及其相关的标签文本Transaction date.参见截图#2.
  3. 如果我单击该选项Lookup Label/Text,标签编辑器将显示标签ID与编辑器底部的其他选择语言一起预过滤.我可以使用编辑器更改不同语言的翻译文本.参见截图#3.
  4. 在Dynamics AX中,标签文本存储在带有标签ID的文本文件中,并由选项卡分隔.标签ID始终以@符号开头.在所示的示例中,@ SYS是组前缀,给定的数字是顺序索引.请参阅屏幕截图#4,其中显示了在en-us标签文件中找到的文本.

我理解这类似于Visual Studio中的资源编辑器,其中翻译文本存储在每种语言的.resx文件中.我想对使用SQL Server数据库作为翻译文本的数据存储的ASP.NET MVC 3应用程序执行类似的操作.

这是我的问题:

  1. 我需要在Visual Studio 2010中创建什么来实现此功能,以便我可以在IDE中调用翻译编辑器?这会是插件还是扩展?

  2. 是否可以在ASP.NET MVC应用程序中执行类似的资源提供程序,我可以在双引号中指定标签ID并让运行时模型从数据库中获取数据?语法Resources.MyResource.GetLabel("@SYS67");是ASP.NET中唯一可用的选项吗?对不起,如果资源语法错误.

  3. 是否有任何类似的工具集(插件/扩展)已经可用于Visual Studio?

  4. 我相信在ASP.NET应用程序中进行翻译的一个术语就是利用它Resource Provider Model.还有其他条款吗?我很想知道我想要实现的术语,所以我可以在网上搜索更多关于它的内容.

任何输入都将非常感激.

提前致谢.

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

4

IAm*_*rey 1

我要跳到这里告诉你我所知道的。如果它不能完全回答您的问题,我深表歉意,但我不想偏离我熟悉的内容太远,从而给您提供不好的建议。

从您描述问题的方式来看,您似乎可以使用资源文件(RESX)进行翻译,问题更多的是您想知道如何以用户友好的方式编辑它们。此外,一些用户可能想要在网络上编辑翻译。

为了回答你的这部分问题,我建议你看看这篇文章:

http://blog.lavablast.com/post/2008/02/07/RESX-file-Web-Editor.aspx

作者似乎和您有类似的问题,并且作者得出的结论与您的想法相似。提供了源代码,因此如果您想采用此方法,您可以抢占先机。

如果您打算推出自己的编辑器,我建议您选择一种界面并坚持使用。否则,您将增加非实际产品的开发时间。由于您希望为某些用户提供网络,因此我建议您坚持为所有人提供网络。但是,如果您确实想寻求 Visual Studio 的插件,我建议您将尽可能多的代码放入中央业务逻辑层,以便表示层不会占用您太多时间。

至于当前可用的选项,我认为以下任何一个都不是 Visual Studio 插件,但它们在本地化方面都做得很好:

如果您想了解更多有关本地化术语和实践的信息,我会推荐以下网站:

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/localization/localization.aspx

如果您想将信息存储在数据库而不是.resx文件中,这里的资源将向您展示如何执行此操作:

http://msdn.microsoft.com/en-us/library/aa905797.aspx