2017-07-27 6 views
0

国際化のためにI18nポータブルNuGet-Packageを使用するVS 2017のXamarinフォームを使用するクロスプラットフォームアプリケーションで作業しています(http://xleon.net/localization/xamarin/pcl/share-locales/i18n/portable/dotnet/2017/02/09/easy-and-cross-platform-localization-for-xamarin-and-dotnet/参照)。一つのことを除いて、私はこれまでのところすべてのことができました。Xamarinフォーム:I18n-portableキャストエラー

残念ながら、私は最後の部分に固執しています。パッケージのreadmeに従って、私はbaseviewmodelでプロキシオブジェクトを作成する必要があります。私はちょうどここで何をすべきか分かりませんし、Web上のドキュメンテーションはそれを手伝ってくれないようです。

何がbaseviewmodelですか?私のPCLソリューションの例はApp.xaml.csですか?

エラーCS0266:型「のI18NPortable.II18N新しいクラスとしてそれを統合しようとしたとき

public abstract class BaseViewModel 
{ 
    public I18N Strings => I18N.Current; // causes error, see below 
} 

は、上記のコードはエラーが発生します。これは、パッケージの著者が統合することを提案しているコードです。暗黙のうちに "I18NPortable.I18N"に変換することはできません。明示的な変換が既に存在します(変換がありませんか?)。

すべてのヒントありがとうございます。

答えて

0

BaseViewModelの場合、ViewModelsに依存するMVVMフレームワークを使用する必要があります。その後、他のビュー・モデルが継承するカスタム・ベース・クラスを作成して、これを実装します。 Xamarin Formsを使用する場合、MVVMは必須ではないので、そこからいくつかのMVVMフレームワークがあります。

I18N.Currentを呼び出すと、明示的な型に割り当てるインターフェイスであるII18N型のオブジェクトが返されるという基本的なエラーが発生しています。次のように変更してみてください:

public abstract class BaseViewModel 
{ 
    public II18N Strings => I18N.Current; 
} 
+0

あなたの提案されたコード変更は、エラーを排除するが、問題を解決しなかったので、翻訳された文字列はまだxamarinフォームGUIには表示されません。 Xamarinのフォームを使って動作するものを探していきます。別のフレームワークを一番上に置いてはいけません。すでに苦労しています;) –

+0

I18Nプラグインがうまくいくようです。私はそれを自分で試していない。おそらく、あなたが欠けている単純なステップですか? Githubでサンプルをチェックしてみてください。おそらく彼らがあなたを助けることができます。 –

+0

はい、これは他の人にとってはうまくいき使いやすいと思われますが、MVVMなどのソリューションでは、現在処理できない要素が必要です(C#およびXamarin forms newbie)。 –