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