2016-04-18 8 views
0

Windows Phone 8.1のアプリケーションにデフォルトのdatepickerコントロールがあります。デバイス言語が変更されても、datepickerフィールドは翻訳されたテキストではなく英語のテキストを保持します。翻訳に必要なロジックを持つテンプレートで月の名前と日を明示的に定義するなど、これらのテキストを翻訳するためのロジックを追加する必要がありますか?DatePickerで月と日を翻訳する方法C#WinRT

enter image description here

を翻訳するための強調表示テキストと

画像すべてのヘルプや提案は大いに役立つだろう。

ありがとうございます。

+0

言語コントロールを指定する言語プロパティがあります – Archana

+0

言語を変更して再起動しようとしましたか? –

+0

@ Archana.言語属性を明示的に "fr-FR"(フランス語)に設定して、DatepickerコントロールにLanguage属性を追加しました。しかし、変更はありません。 – Sriram

答えて

0

日付ピッカーは、デフォルトではGlobalization and localizationサポートしています。多言語をサポートするには、DatePickerに何も設定する必要はありません。

私たちの行う必要があるのは、Specify the supported languages in the app's manifestです。

アプリ開発者がアプリのマニフェストファイル(通常はPackage.appxmanifest)、またはVisual Studioのリソース要素でサポートされている言語のリストを指定するには、自動的に見つかった言語に基づいて、マニフェストファイルの言語のリストを生成し、プロジェクト。マニフェストは、サポートされている言語を適切な粒度レベルで正確に記述する必要があります。マニフェストに記載されている言語は、Windowsストアのユーザーに表示される言語です。

アプリは「FR-FR」をサポートして確認するために、私たちは「コードの表示」と使用を選択し、「ソリューションエクスプローラ」と右クリックで「Package.appxmanifest」を選択することができます

<Resources> 
    <Resource Language="EN-US" /> 
    <Resource Language="FR-FR" /> 
</Resources> 

の代わりに、あなたのデバイスのリットルを変更するには、この後

<Resources> 
    <Resource Language="x-generate" /> 
</Resources> 

「フランス」に悩まされると、DatePickerは自動的にフランスに表示されます。ただし、すぐには有効にならないため、再起動する必要があります。
enter image description here

更新:

PrimaryLanguageOverrideは、デフォルト言語の選択を上書きするためにいくつかの強力な理由を持っているユーザーは、独自の独立した言語の選択肢を与えるアプリ、アプリを設定する簡単なオーバーライドです。

PrimaryLanguageOverrideを使用して、必要なものを実装することができます。

PrimaryLanguageOverrideの設定は、セッション間で維持されます。アプリが読み込まれるたびに設定されるべきではありません。設定UIに表示されるユーザー入力に基づいてのみ設定する必要があります。プロパティはいつでも読むことができます。プロパティが一度も設定されていない場合は、空の文字列を返します。

ドロップダウンコントロールに[自動]オプションを追加できます。その後、あなたのアプリがあなたのサポートされている言語に応じてデバイスの言語設定を使用します

ApplicationLanguages.PrimaryLanguageOverride = string.Empty; 

:ユーザーは、このオプションを選択したときと、あなたは次のように空の文字列にPrimaryLanguageOverrideを設定することができます。アプリに表示する言語の詳細については、Create the application language listLanguage matchingをご覧ください。

他の言語をドロップダウンコントロールで選択すると、選択した言語にPrimaryLanguageOverrideを設定すると、アプリケーションをこの言語で表示させることができます。 PrimaryLanguageOverrideの使用の詳細については、備考ApplicationLanguages.PrimaryLanguageOverride | primaryLanguageOverride propertyにチェックしてください。

+0

提案してくれてありがとうJay。現在、私のアプリケーションは2つのモードでローカリゼーションをサポートしています。 1つはデバイス言語の設定で、もう1つはアプリケーションで提供されているドロップダウンコントロールで、サポートしている言語のリストをユーザーに提供します。この方法は両方のモードをサポートしますか?アプリの言語設定は、実際にはデバイス言語よりも優先されます。 – Sriram

+0

@Sriram:ええ、「PrimaryLanguageOverride」の方が優先度が高く、両方のモードをサポートできると思います。更新された回答を確認してください。 –

+0

更新していただきありがとうございます。あなたの提案論理は私の実装と一致します。ユーザーが明示的に特定の言語を選択したとき、私はPrimaryLanguageをオーバーライドしています。それ以外の場合は、デフォルトのデバイス言語になります。 – Sriram

0

言語を指定するLanguageプロパティがあります。

<DatePicker Name="date" /> 
    CultureInfo ci = new CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.Languages[0]); 
       date.Language = ci.ToString(); 

更新

あなたはPackage.appmanifestファイル内のその特定の言語のサポートを追加する必要があり、それを行った作業取得します。マニフェストファイルにはデフォルトの言語フィールドがあります。 あなたがこれを行うことができ、プログラム

CultureInfo ci = new CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.Languages[0]); 
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = ci.Name; 
      CultureInfo.DefaultThreadCurrentCulture = ci; 
      CultureInfo.DefaultThreadCurrentUICulture = ci; 
+0

LovetoCodeの提案に感謝します。これは機能しています。 – Sriram

関連する問題