LocBAML本地化WPF应用程序的最佳方法是什么?

时间:2008-09-17 20:19:17

标签: wpf xaml localization globalization

似乎没有好的方法来本地化WPF应用程序。 MSDN似乎认为用x:Uid乱丢我的XAML,生成CSV文件,然后生成新的程序集(使用他们的示例代码!)就是答案。更糟糕的是,此过程不涉及如何本地化图像,二进制blob(例如,PDF文件)或嵌入代码中的字符串。

那么,您如何本地化应用程序:

  1. 包含多个程序集
  2. 包含需要本地化的图像和其他二进制blob(例如:PDF文档)
  3. 具有不在XAML中的字符串数据(例如:MessageBox.Show("Hello World");

4 个答案:

答案 0 :(得分:10)

您应该查看可用的文章和代码here。它描述了使用LocBaml,自定义标记扩展或附加属性本地化WPF应用程序的不同方法。恕我直言,最好的解决方案是使用标记扩展和Resx资源。该代码包含用于执行此操作的本地化框架。

答案 1 :(得分:8)

这里不是专家,但是用x来乱丢你的xaml:Uids并不比“乱丢”你的Windows窗体代码更糟糕,因为你需要做的所有字符串表无意义来进行本地化。

据我所知,WPF应用程序仍然支持“所有Framework CLR资源,包括字符串表,图像等等。”这意味着您可以拥有本地化资源。

当然,如果你创建了一个标记扩展来处理你的大部分废话,那会更简单。 You can find an example of someone doing this here.here's another, similar solution.

答案 2 :(得分:0)

您可以使用支持所有上述方案的旧“ResX”文件。如何在WPF应用程序中实现这一点:

WPF Application Framework (WAF) =>请参阅本地化示例

答案 3 :(得分:0)

尝试使用Gnu GetText实用程序,并支持应用程序。它基于ResourceManager和ResourceSets进行generate C#个类,当然您可以重复使用应用程序其他部分的翻译 - 例如网页,本机代码或iphone等。