代码之家  ›  专栏  ›  技术社区  ›  Cory R. King

什么是本地化WPF应用程序的最佳方法,sans-locbaml?

  •  19
  • Cory R. King  · 技术社区  · 16 年前

    似乎没有好的方法来本地化WPF应用程序。似乎msdn认为把我的xaml丢在 x:Uid ,生成csv文件,然后生成新程序集(使用其示例代码!)就是答案。更糟糕的是,这个过程没有解决如何本地化图像、二进制blob(比如PDF文件)或嵌入在代码中的字符串。

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

    1. 包含多个程序集
    2. 包含需要本地化的图像和其他二进制blob(例如:pdf文档)
    3. 具有不在XAML中的字符串数据(例如: MessageBox.Show("Hello World"); )
    4 回复  |  直到 16 年前
        1
  •  8
  •   Will    16 年前

    这里不是专家,但是用x:uids“乱丢”XAML并不比用Windows窗体代码“乱丢”更糟糕,因为要本地化它们,需要做的所有字符串表操作都是毫无意义的。

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

    当然,如果您创建了一个标记扩展来为您处理这些废话的话会简单得多。 You can find an example of someone doing this here. here's another, similar solution.

        2
  •  10
  •   Thomas Levesque    15 年前

    您应该看看可用的文章和代码 here . 它描述了本地化WPF应用程序、使用Locbaml、自定义标记扩展或附加属性的不同方法。imho最好的解决方案是使用标记扩展和resx资源。代码包含一个本地化框架。

        3
  •  0
  •   jbe    15 年前

    您可以使用支持所有上述场景的旧“resx”文件。下面将解释如何在WPF应用程序中完成这一点:

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

        4
  •  0
  •   gbjbaanb    13 年前

    尝试GNU GetText实用程序和支持的应用程序。它确实 generate C# 基于resourcemanager和resourceset的类,当然,您可以将这些翻译用于应用程序的其他部分,例如网页、本机代码或iPhone等。