【问题标题】:Seeking a modular WPF/Clickonce localization solution寻求模块化 WPF/Clickonce 本地化解决方案
【发布时间】:2011-06-24 11:24:00
【问题描述】:

我需要本地化通过 Clickonce 运行的 WPF 应用程序。问题是我们打算分发此应用程序的产品具有“语言包”,用户可以在其中上传西班牙语/法语/日语/等。语言包,它翻译网页界面。我们还希望 WPF 应用程序以网站运行的任何语言运行。我计划使用 WPF 本地化扩展进行本地化:http://wpflocalizeextension.codeplex.com/

问题在于,每个语言包都必须是独立于主产品发布周期的发布周期中的独立产品。此外,我们不能包含所有语言,因为这是在具有 8MB ROM 的小型 ARM9 设备上进行的。并且因为每个语言包都是一个单独的循环,所以我们在构建应用程序时不知道存在哪些语言包。 (例如:在发布新版本几周后,我们发布了一个新的语言包,其中添加了以前不支持的语言。)

我想到的一个解决方案是将英文版的 WPF 应用程序包含在默认的英文安装中,然后让每个语言包添加 Resources.dll 并将清单替换为引用新资源的清单。 dll。这在 Clickonce 严格的文件散列和代码签名要求下是否可行,或者如果在安装语言包时应用程序清单被篡改,它是否会吓坏?在 Microsoft 生态系统中有没有办法做到这一点?在生成 Clickonce 部署时,您似乎必须事先知道支持哪些语言。除此之外,对更模块化的本地化+部署系统有什么建议吗?

【问题讨论】:

    标签: c# wpf localization clickonce


    【解决方案1】:

    如果您更改其中一个文件并且不重新签署清单,它会发疯。

    如果这是一个仅限内部的应用,您可以部署它并关闭签名/散列。这确实会增加重大的安全风险(您的应用很容易被劫持并被恶意软件替换),因此如果安装可以访问互联网,您不希望这样做。

    我认为您还可以关闭一个文件的散列 - 查看“应用程序文件”对话框。同样,这是一个安全风险,但不如取消整个部署的散列那么严重。

    您可以为每个语言包创建不同的部署,或者让应用在启动后下载正确的语言包并更改资源的路径。我不知道这是否真的可能,但我想我会把它扔在那里。

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多