[英]C# creating multilingual application with plugin support (MEF)
我在这里已经阅读了许多关于此的文章和问题,但是我仍然不满意。 我计划开发基于MEF技术的基于插件的GUI桌面应用程序。
我想为该应用程序提供本地化支持。 问题是,即使我本地化了主机应用程序,也必须对本地化的第三方插件(基本上是DLL文件)进行安装。
我认为在dll中拥有所有可本地化的控件对我来说不是一个选择。 我可以将国际文本存储在数据库中,具有一个调用程序函数,该函数从主机应用程序中的DB中检索文本,并要求插件调用此调用程序函数。 或者,我可以要求开发人员在其应用程序中使用不同的资源文件,但是这样一来,他们将无法从已翻译的文本中受益。
在这种情况下提供多语言界面的最佳实践是什么?
我不确定是否有一种最佳实践可以应用,但是在看到这些选项时,我可以与您讨论这些选项。 如果使用所有内容的不同翻译来开发中央数据库,则所有工具都可以从翻译中受益。 但是,不利的一面是,现在您的所有插件都还需要(以某种方式)了解数据库。 这增加了更直接的耦合,在使用第三方插件时,我更希望避免这种耦合。
如果使用资源文件,则会获得更大的灵活性,但会失去重用同一文本的能力(这就像您违反了DRY)。
就个人而言,我会沿用资源文件路径进行本地化。 它为您提供了最简单的方法,使每个人都无需主要依赖即可工作。 但是,如果您能找到让插件为它们的本地化文本调用中央应用程序的方法,那么中央数据库将是一个更好的选择(再次,在我看来)。
以下几个链接也可能对您有所帮助:
http://expatsoftware.com/articles/2010/03/why-internationalization-is-hopelessly.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.