2016-06-29 53 views
0

我將應用程序從Windows Phone 8.1移植到UWP,並且從資源獲取字符串時遇到問題。在WP 8.1,我可以通過書面形式得到的字符串:本地化UWP應用程序

Text="{Binding Path=LocalizedResources.lDownloadStatus , Source={StaticResource LocalizedStrings}}" 

是否有UWP任何類似的解決方案或我必須設置X:UID,然後在資源文件中設置,例如:「Button.Content | SampleContent」?

+2

您可以使用'x:Uid'或通過使用* ResourceLoader * - [在此帖子中的小示例](http://stackoverflow.com/a/24258472/2681948)創建類似於* LocalizedStrings *的內容。 – Romasz

回答

0

使用x:uid加載資源字符串,或者使用ResourceManager從後端獲取資源字符串。 以下是MSDN的示例:How to create a localization UWP App

希望它有幫助!

2

您應該在項目中創建文件夾「Strings」,爲法語創建另一個具有國家LCID名稱(fr-fr爲法國)的文件夾。並創建那裏resource.resw文件。

如果要使用TextBlock.Text中的值,請將.resw文件中的字段命名爲「Hello.Text」,併爲其賦值「Bonjour」。

轉到您的TextBlock並設置x:Uid =「Hello」。

使用ApplicationLanguages.PrimaryLanguageOverride =「fr-fr」更改yor語言。

0

我對CustomResources做了很好的體驗。

就在從CustomXamlResourceLoader繼承你的UI項目的任何地方創建一個新的類,並實現以下方法:

protected override object GetResource(string resourceId, string objectType, string propertyName, string propertyType) 
    { 
     var parts = resourceId.Split('|'); 

     if (parts.Length != 2) 
      throw new ArgumentException(); 

     return ResourceLoader.GetForViewIndependentUse(parts[0]).GetString(split[1]); 
    } 

然後創建資源的文件,我用他們的名字像我的頁面,即「MainPage.resw」。

就是這樣,現在你可以開始使用你的資源從XAML:

Text="{CustomResource MainPage|MyResourceKey}" 

當然,分隔符可以做你想做的,它不侷限於任何管道。只要確保你在你的ResourceLoader和你的XAML中使用相同的分隔符。

您不會在Designer中看到預覽,但最大的好處是您可以拆分資源文件,而不必將所有內容合併到一起。

有關更多信息,請參閱https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/customresource-markup-extension