2016-06-29 17 views
0

Windows Phone 8.1からUWPへアプリケーションを移植しています。リソースから文字列を取得する際に問題があります。UWPアプリケーションをローカライズ

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

UWPのいずれかの同様のソリューションがありますか私は、xを設定する必要があります:WP 8.1では、私は書くことによって、文字列を得ることができるUIDをした後、リソースファイル、例えば設定:「Button.Content | SampleContent」?

+2

* ResourceLoader * - [この記事の小さな例](http://stackoverflow.com/a/24258472/2681948)を使って、 'x:Uid'を使うか、* 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で同じセパレータを使用していることを確認してください。

デザイナーではプレビューは表示されませんが、大きな利点はリソースファイルを分割してすべてを1つにまとめる必要がないことです。

詳細については、https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/customresource-markup-extensionを参照してください。

関連する問題