选择一种方法来定位大型.NET应用程序 [英] Select an approach to localize large .NET applications

查看:135
本文介绍了选择一种方法来定位大型.NET应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道本地化.NET应用程序中的问题在这里问了很多次。

I know that Question of Localizing .NET applications asked here many times.

但我用的资源和3-D党的资源编辑工具,大量本地化.NET应用程序的方法的怀疑成效。

But I am doubt about effectiveness of the approach to use Resources and 3-d party resource editing tools to localizing large .NET applications.

我想呆在一起的下面的一个方法:

I am thinking about staying with one of the below approaches:

  1. 所有的解决方案的形式设置本地化= TRUE,并使用3-D党的资源编辑器,例如:泽塔资源编辑器,编辑和管理资源。 缺点:

  1. Set Localizable=True for all solution forms, and use 3-d party resource editor, for ex: Zeta Resource Editor, to edit and manage resources. Disadvantages:

  • 我们的解决方案具有〜100的形式,和30额外的语言就会有30 * 100 = 3000新的resx文件!
  • 大量的努力与译者互动:我需要每一个产品更新后后,每种语言的变化与纯文本方式发送到Excel文件并手动更新项目资源
  • 部分(大多数?)的语言文件将永远过时,因为翻译可能产品发布后,做好自己的工作,我们不能有自己的更改,而无需重新编译该项目。

使用自定义词典基于类(如GNU GetText的),这将加载一个老式的INI文件的翻译。 缺点:需要做额外的工作,就像写一个辅助工具,为翻译编辑INI文件。 优点:新的语言版本可能产品发布为一个单独的INI文件后发表

Use custom Dictionary based class (like GNU GetText), that will load an old-fashioned ini file with translations. Disadvantage: need to do an extra job, like writing a helper tool to edit ini files for translators. Advantage: new language versions might be published after product release as a separate ini files.

不幸的是,我不能比较两种方式的表现。

Unfortunately I can't compare performance of the both ways.

哪种方法好?请分享您的经验!

推荐答案

您真的应该用标准的.NET定位系统粘(的ResourceManager )。

You really should stick with the standard .NET localization system (ResourceManager).

要对付你有(管理了大量的各种语言的.resx文件导入到您的解决方案,处理在翻译的交货延迟)的问题的一种方法是,只包含一种语言(英语,一般)在您的解决方案,但保持本地化启用。所以从现在开始,你将建立只用英文资源解决方案,但仍与装载卫星集的能力,如果present。

One way to deal with the problems you are having (managing imports of a lot of .resx files in various languages into your solution, dealing with delays in the delivery of translations) would be to include just one language (English, typically) in your solution but keep localization enabled. So from now on you would build your solution with only English resources, but still with the ability to load satellite assemblies if present.

然后就可以设置一个不同的项目(称之为国产化项目)来管理你的英语资源翻译成各种语言的唯一目的。你必须定期从你的主要解决您的本地化项目同步的英语RESX文件(但它允许你这样做可控制的方式,这将有利于与翻译处理)。您收到翻译将放在这个项目的源代码控制系统。

Then you can set up a different project (call it a localization project) for the sole purpose of managing the translation of your English resources into various languages. You'd have to regularly sync the English resx files from your main solution to your localization project (but then this allows you to do so in a controlled manner, which will help dealing with translators). Translations you receive would be checked into this project's source control system.

然后,你需要编写成才从您的本地化项目建立自己的卫星组件和拖放到你的英语只建,给你所有的本地化版本。是可以做到从RESX文件生成附属程序集 RESGEN .EXE (创建的.resources文件),然后 Al.exe工具(以创建DLL文件)。

Then you'll need to write someting to build your satellite assemblies from your localization project and drop them into your English-only build, giving you a build with all its localizations. Building satellite assemblies from resx files can be done using Resgen.exe (to create .resources files) and then Al.exe (to create the dll files).

这篇关于选择一种方法来定位大型.NET应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆