5

実行時に現在の言語を別の言語に変更する方法はありますか?

例: ボタンがクリックされたとき、またはアプリの起動時に切り替えることができ、ユーザーの言語を取得して切り替えることができます。

起動時にユーザー言語をチェックするようにプラグインに指示する方法は?

よろしくお願いします。

4

1 に答える 1

2

実行時に現在の言語を別の言語に変更する方法はありますか?

はい、MvxTextProviderBuilder.csbuilder.LoadResources(whichLanguage)を呼び出します

例:ボタンがクリックされたときに切り替えることができます

UI フレームワークは、実際に切り替えをライブで実行するように設定されていません。言語を切り替えると、新しい JSON リソース ファイルはすべて正常に読み込まれますが、既存の表示テキストは更新されません。これは、ほとんどのモバイル オペレーティング システムと少し似ています。言語を切り替えたい場合は、多くの場合、再起動が必要です。

動的な切り替えを追加したい場合は、UI にすべてのテキストを完全に更新するように指示する方法を見つける必要があります。これは難しくないと思いますが、すべてのページ/ビューで手動のコーディングが必要になる場合があります。すでに作成され、表示されています:/

または、アプリの起動時に、ユーザーの言語を取得して切り替えます。

これは i18n を行うためのより簡単な方法です。MvvmCross は主に電話を対象としているため、通常は問題ありません。電話は通常、言語を頻繁に切り替えることのないシングル ユーザー デバイスです。

  • たとえば、いくつかの変数 (例: System.Globalization.CultureInfo.CurrentUICulture) を使用して、表示するのに最適な言語を見つけることができます。

  • または、ロード時にユーザーがまだ言語を選択しているかどうかを検出します - 選択している場合は表示HomeViewModelします - 表示していない場合は表示しますLanguagePickerViewModel- これは StarWarsKinect で行ったことです - これはStartNavigationObject、この種のロジックに最適な場所です!

SWK 言語選択

起動時にユーザー言語をチェックするようにプラグインに指示する方法は?

現在、このロジックはアプリの起動時にコーディングする必要があります。

私は間違いなく、これに関する改善されたプラグインを提供することにオープンです-おそらくデモで!


i18n を検討している場合、考慮すべき代替実装の 1 つは Vernacular です。Rdio のチームは、Mono および MS プラットフォーム向けに非常に優れた製品を提供しています - https://github.com/rdio/vernacular

于 2012-11-19T15:41:37.253 に答える