【问题标题】:What is the best way to localize a WPF application, sans LocBAML?本地化 WPF 应用程序的最佳方法是什么,没有 LocBAML?
【发布时间】:2010-09-10 08:57:26
【问题描述】:

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

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

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

【问题讨论】:

  • 您接受的答案有几个答案。你能指出你选择了什么吗?
  • 这么久了,我忘了!哇!

标签: wpf xaml localization globalization


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这里不是专家,但是用 x:Uids“乱扔”你的 xaml 并不比用你必须为本地化它们做的所有字符串表废话“乱扔”你的 Windows 窗体代码更糟糕。

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

    当然,如果您创建一个标记扩展来为您处理大部分此类废话,那会简单得多。 You can find an example of someone doing this here. http://blog.taggersoft.com/2008/07/wpf-application-localization-pattern_29.html 还有另一个类似的解决方案,但该链接不再有效。

    【讨论】:

    • 嘿,伙计们,在这篇评论中,这个答案差不多八岁了。请查找有关本地化 WPF 应用程序的更多最新信息。无需支持答案,只需支持此评论/留下有关您发现的详细信息!
    【解决方案3】:

    您可以使用支持您提到的所有场景的旧“ResX”文件。这里解释了如何在 WPF 应用程序中实现这一点:

    WPF Application Framework (WAF) => 查看本地化示例

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 1970-01-01
        • 2010-11-02
        • 2010-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多