2016-06-19 16 views
1

UWPでのローカライゼーションを使用する現代的なアプローチは何ですか?UWPでのMvvmcrossのローカライゼーション

JsonLocalizationプラグインfor UWPは、JsonプラグインとResourseLoaderプラグインのどちらもプルしませんでした。さらに、ブートストラップファイルをインストールしませんでした(まだUWPに必要かどうか不明)。

ブートストラップなしで正しく動作し、プラグインに必要なものがすべて含まれているという前提に基づいて、ビデオで指示されたようにサンプルを実装し、ローカライズされたものではなく "|| ViewHeader"文字列を取得しました。そして、JSONの内容は明らかに

{ 
    "ViewHeader":"Test view header" 
} 

のようなものです私はNativeLanguageConverter.Convertにブレークポイントを追加し、value.TextProvider.ResourceLoaderがnullであることを考え出しました。私はこれらのプラグインをすべて手作業で追加しましたが、エラーは同じです - 彼らは登録されていないようですので、私はそれらをブートストラップする必要があります。

この場合、どうすればよいですか?

UPDATE:確かに、問題が不足しているブートストラップについてです:https://github.com/MvvmCross/MvvmCross-Plugins/issues/113

はしかし、それらを追加した後、私はまだ形式の文字列を取得しています "|%のAssemblyName%|%ViewmodelName%|%キー名%" の代わりに「%ValueName%」のデバッガでは、私は辞書が適切なキーと値のペアを含むことがわかりますが、何とか値ではなく、フォーマットされたキーを返します。

+1

ブートストラップファイルが必要です。しかし、手動で作成する必要があります。少なくともそれはバージョン4で私に起こった。 – xleon

答えて

0

数時間を過ごした後、私は実際の組み合わせを考え出しました。

問題を解決するには、別のViewModels用に別のLanguageBindersを作成する必要があります。ビュー上

public IMvxLanguageBinder FirstViewModelTextSource 
    { 
     get 
     { 
      return new MvxLanguageBinder(GeneralConstants.LocalizationGeneralNamespace, "FirstViewModel"); 
     } 
    } 

そして:

<TextBlock Text="{Binding FirstViewModelTextSource,Converter={StaticResource Language},ConverterParameter=ViewHeader,FallbackValue=ViewHeader,Mode=OneTime}" 
        Margin="10,0,10,50" TextWrapping="Wrap"/> 
関連する問題