2008-09-17 47 views
17

似乎沒有好方法來本地化WPF應用程序。 MSDN似乎認爲用x:Uid亂丟我的XAML,生成CSV文件,然後生成新的程序集(使用它們的示例代碼!)就是答案。更糟的是,這個過程並沒有解決如何本地化圖像,二進制blob(比如說PDF文件)或嵌入代碼中的字符串。什麼是本地化WPF應用程序的最佳方式,無LocBAML?

那麼,如何可能你本地化一個應用程序:

  1. 包含幾個組件
  2. 包含圖像和其他二進制斑點:需要進行局部的(例如PDF文檔)
  3. 具有字符串數據是不是在XAML(如:MessageBox.Show("Hello World");
+0

您接受的答案有幾個答案incide。你能指出你選擇了什麼嗎? – Dmitriy 2012-03-05 12:36:49

+0

它已經這麼久了,我忘了!衛生署! – 2012-03-05 17:27:20

回答

8

這裏不是專家,但「亂扔垃圾」你有X XAML:UID的不差於「亂扔垃圾」 Windows窗體代碼的所有〜應變g表廢話你必須做的本地化他們。

據我所知,WPF應用程序仍然支持「所有的框架CLR資源,包括字符串表,圖像等等。」這意味着您可以擁有本地化的資源。

當然,如果你創建了一個標記擴展,可以爲你處理大部分這些廢話,這將會簡單得多。 You can find an example of someone doing this here.here's another, similar solution.

0

您可以使用支持所有提到的方案的舊「ResX」文件。如何能在WPF應用程序來實現在此說明:

WPF Application Framework (WAF) =>查看本地化樣品

10

你應該看看的文章,並提供here代碼。它描述了使用LocBaml,自定義標記擴展或附加屬性本地化WPF應用程序的不同方式。恕我直言,最好的解決方案是使用標記擴展和Resx資源。該代碼包含一個本地化框架。

0

嘗試Gnu GetText實用程序,並支持應用程序。它確實基於ResourceManager和ResourceSets的generate C#類,當然,您可以重複使用翻譯爲您的應用程序的其他部分 - 例如網頁,本地代碼或iphone等。

相關問題