回答

1

好吧,我發現如何做到這一點,並用樣本項目中找到here 基本上實行的是以下幾點:

  • 在ClassLibrary創建一個文件夾名爲「琴絃」
  • 絃樂內文件夾中創建一個爲每種語言(例如:英語,法語,PT等)
  • 並在每個你的鑰匙這些文件夾的添加Resources.resw /值

現在,在您ClassLibrary具有以下代碼添加一個新的類(適用於您的項目):

using System; 
using Windows.ApplicationModel.Resources; 

namespace MyClassLibraryName.Tools { 
    public static class LocalizationTool { 
     static ResourceLoader resourceLoader = null; 

     public static string MyStringOne { 
      get { 
       String name; 
       GetLibraryName("MyStringOne", out name); 
       return name; 
      } 
     } 

     private static void GetLibraryName(string resourceName, out string resourceValue) { 
      if(resourceLoader == null) { 
       resourceLoader = ResourceLoader.GetForCurrentView("MyClassLibraryName/Resources"); 
      } 
      resourceValue = resourceLoader.GetString(resourceName); 
     } 
    } 
} 

而在你ClassLibrary或MainApp只是調用如下

string text = LocalizationTool.MyStringOne; 
+0

非常感謝。你拯救了我的一天。我搜索了3個多小時,直到我來到這裏。 :) – hellodear 2017-01-19 11:45:52

7

在爲避免在添加新資源字符串時寫入大量樣板和容易出錯的代碼,例如:

  1. 將它添加到.resw文件
  2. 將它添加到提供給資源訪問您的靜態類
  3. 將它添加到每個特定語言.resw文件(例如:英語,法語,PT等)

您可以使用以下方法:

  1. 創建「字符串」文件夾並添加有隻有一個文件夾的默認語言(例如「EN-US」)在你的類庫
  2. 添加Resources.resw文件「EN-US 「所需鍵/值的文件夾
  3. 安裝Multilingual App Toolkit
  4. 您的類庫啓用VS MAT(VS- - >工具 - >啓用多語言應用工具包)
  5. 添加所需語言,你的類庫(VS->項目 - >添加翻譯語言.. 。)
  6. 安裝ResW File Code Generator VS擴展
  7. 轉到Resources.resw文件屬性,並設置自定義工具「ReswFileCodeGenerator」(你也可以在自定義工具命名空間指定的命名空間)
  8. 要使用支持的語言檢測解決的問題(目前生成的清單包含根據t支持的語言o文件夾結構「Strings/en-US」),您需要爲App庫(「fr-FR」,「bg-BG」等)中的所有必需語言添加文件夾,並將Resources.resw文件僅包含一個假鑰匙。
  9. 建立您的解決方案並享受!

通過這種方法,您的所有資源都可以通過由ReswFileCodeGenerator生成的靜態類來使用,並且它們都可以在XAML中使用x:uid。您不需要關心不同語言之間的鍵同步。 MAT還可以爲你翻譯你的資源。

相關問題