クイック スタート: グローバル対応の形式の使用 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
日付、時刻、数字、通貨を適切に書式設定することで、アプリをグローバル対応するように設計します。これを行うと、後に世界市場の他のカルチャ、地域、言語に適応させることができます。
はじめに
Windows は世界中で利用されており、さまざまな市場に、カルチャ (文化)、地域、言語の異なるユーザーがいます。多くのアプリ開発者は、自然に自分たちの言語とカルチャだけを考慮してアプリを作ります。しかし、そうしたアプリを新しい言語や地域に適応させて他の市場に参入しようとすると、予想しないことで困難に遭遇することがあります。 たとえば、日付、時刻、数値、カレンダー、通貨、電話番号、計測単位、紙のサイズは、すべてカルチャや言語によって表示が異なる場合があります。
最初にアプリを設計する段階で、いくつかのことを考慮しておけば、新しい市場に参入するプロセスを簡単にできます。 アプリをグローバル対応するように設計するときは、次のガイドラインに従ってください。
前提条件
タスク
日付と時刻を適切に書式設定します。
日付と時刻は、さまざまな方法で表示することができます。さまざまな地域やカルチャで、日付の月と日の順、時刻の時と分との分離、セパレーターとして使われる句読点について、さまざまな規則が使われています。 また、日付はカルチャによってさまざまな長形式 ("Wednesday, March 28, 2012") や短形式 ("3/28/12") で表示されることがあります。 当然、曜日や月の名称と省略形は言語によって異なります。
ユーザーが日付や時刻を選択できるようにする必要がある場合には、標準のDatePicker と TimePicker コントロールを使います。これらは、ユーザーの言語と地域の日付と時刻の形式を自動的に使います。
自分で日付や時刻を表示する必要がある場合は、Date/Time と Number フォーマッタを使って、ユーザーが優先する形式の日付、時刻、数字を自動的に表示します。次のコードは、現在設定されている言語と地域を使って特定の DateTime を書式設定します。たとえば、現在の日付が 2012 年 6 月 3 日の場合、フォーマッタはユーザーが英語 (米国) を選んだ場合 "6/3/2012" を生成しますが、ドイツ語 (ドイツ) を選んだ場合 "03.06.2012" を生成します。
// Use the Windows.Globalization.DateTimeFormatting.DateTimeFormatter class // to display dates and times using basic formatters. // Formatters for dates and times, using shortdate format. var sdatefmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate"); var stimefmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shorttime"); // Obtain the date that will be formatted. var dateToFormat = new Date(); // Perform the actual formatting. var sdate = sdatefmt.format(dateToFormat); var stime = stimefmt.format(dateToFormat); // Results for display. var results = "Short Date: " + sdate + "\n" + "Short Time: " + stime;
数字と通貨を適切に書式設定します。
数字の書式設定はカルチャによって異なります。数字の書式設定が異なるものには、表示する小数の桁数、小数点記号に使う文字、通貨記号などがあります。NumberFormatting を使って、小数、パーセントまたはパーミル、通貨を表示します。 多くの場合、単にユーザーの通貨設定に従って数字や通貨を表示します。 ただし、フォーマッタを使って特定の地域または形式の通貨を表示することもできます。
以下のコードは、ユーザーの言語と地域の通貨、または特定の通貨制度の通貨を表示する例を示しています。
// This scenario uses the Windows.Globalization.NumberFormatting.CurrencyFormatter class // to format a number as a currency. // Determine the current user's default currency. var userCurrency = Windows.System.UserProfile.GlobalizationPreferences.currencies; // Number to be formatted. var fractionalNumber = 12345.67; // Currency formatter using the current user's preference settings for number formatting. var userCurrencyFormat = new Windows.Globalization.NumberFormatting.CurrencyFormatter(userCurrency); var currencyDefault = userCurrencyFormat.format(fractionalNumber); // Create a formatter initialized to a specific currency, // in this case US Dollar (specified as an ISO 4217 code) // but with the default number formatting for the current user. var currencyFormatUSD = new Windows.Globalization.NumberFormatting.CurrencyFormatter("USD"); var currencyUSD = currencyFormatUSD.format(fractionalNumber); // Create a formatter initialized to a specific currency. // In this case it's the Euro with the default number formatting for France. var currencyFormatEuroFR = new Windows.Globalization.NumberFormatting.CurrencyFormatter("EUR", ["fr-FR"], "FR"); var currencyEuroFR = currencyFormatEuroFR.format(fractionalNumber); // Results for display. var results = "Fixed number (" + fractionalNumber + ")\n" + "With user's default currency: " + currencyDefault + "\n" + "Formatted US Dollar: " + currencyUSD + "\n" + "Formatted Euro (fr-FR defaults): " + currencyEuroFR;
カルチャに適したカレンダーを使用します。
カレンダーは地域や言語によって異なります。グレゴリオ暦がすべての地域で既定となっているわけではありません。ある地域のユーザーは、日本の年号、アラビアの太陰暦など別のカレンダーを選ぶ場合があります。カレンダーの日付や時刻も、さまざまなタイム ゾーンや夏時間に影響されます。
必要なカレンダー形式を使うことができるよう、ユーザーが日付を選べるようにするには、標準のDatePicker と TimePicker コントロールを使います。 カレンダーの日付を直接操作することが必要な、さらに複雑なシナリオの場合、特定のカルチャ、地域、カレンダーの種類を表す適切なカレンダーを提供する Calendar クラスが Windows.Globalization によって提供されています。
ユーザーの言語とカルチャを考慮します。
ユーザーの言語、地域、カルチャの設定に基づいてさまざまな機能を提供するシナリオでは、Windows により Windows.System.UserProfile.GlobalizationPreferences によってそれらの設定にアクセスする手段が提供されます。 必要に応じて、GlobalizationPreferences クラスを使って、ユーザーの現在の地理的な地域、優先する言語や通貨などの値を取得します。
関連トピック
リファレンス
Windows.Globalization.Calendar
Windows.Globalization.DateTimeFormatting
Windows.Globalization.NumberFormatting
Windows.System.UserProfile.GlobalizationPreferences
サンプル