1

我在这里阅读了很多关于此的文章和问题,但是我仍然不舒服。我打算开发一个基于 MEF 技术的基于插件的 GUI 桌面应用程序。

我想为应用程序提供本地化支持。问题是即使我本地化了宿主应用程序,基本上是DLL文件并且可以随时安装的第三方插件也需要本地化。

我认为在 dll 中包含所有可本地化的控件对我来说不是一个选择。我可以将国际文本存储在数据库中,有一个调用函数,它从主机应用程序中的数据库中检索文本,并要求插件调用这个调用函数。或者我可以要求开发人员在他们的应用程序中有不同的资源文件,但是这样他们就不会从已经翻译的文本中受益。

为这种情况提供多语言界面的最佳做法是什么?

4

1 回答 1

1

我不确定是否存在适用的最佳实践,但我可以通过我看到的选项与您交谈。如果您为所有内容开发一个包含不同翻译的中央数据库,那么您的所有工具都可以从翻译中受益。但是,缺点是现在您的所有插件也需要了解数据库(以某种方式)。这增加了我在使用第三方插件时更愿意避免的更直接的耦合。

如果您使用资源文件,您将获得更大的灵活性,但失去重用相同文本的能力(感觉就像您违反了 DRY)。

就个人而言,我会沿着资源文件路线进行本地化。它为您提供了让每个人在没有主要依赖关系的情况下工作的最简单方法。但是,如果您能找到一种方法让插件调用中央应用程序以获取其本地化文本,那么中央数据库将是一个更好的选择(同样,在我看来)。

这里有几个链接也可能对您有所帮助:

是否有应用程序国际化的最佳实践方法?

http://www.businessandprocess.com/2010/11/why-application-localization-should-start-in-the-design-stage/

http://expatsoftware.com/articles/2010/03/why-internationalization-is-hopeless.html

于 2012-05-04T11:55:29.893 回答