トップ 一覧 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume I/12-5の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
[[← 4 節に戻る|Palm OS Programmer's Companion Volume I/12-4]] [[↑12 章トップへ|Palm OS Programmer's Companion Volume I/12]] [[6 節に進む →|Palm OS Programmer's Companion Volume I/12-6]]
----
!!!12-5 ロケール情報の取得
 
いくつかのアプリケーションは、現在のロケールに関する情報を必要とします。例えば、多くのアプリケーションは日付や数値を表示するための書式を知る必要があります。これらはロケールとして一部定義されています(詳細はこの章のセクション“日付”と“数値表現”で説明しています)。アプリケーションによっては、国名など他の情報を必要とするかもしれません。

多くのアプリケーションが要求する情報は、システムプリファレンス構造体に格納されており、PrefGetPreference で取得することができます。ロケール依存の設定の多くはユーザーによって変更可能なため、この方法での取得がお勧めです。アプリケーションはどのような場合でもロケールのデフォルト設定よりユーザー設定に忠実であるべきです。

システムプリファレンスに保存されておらず、ユーザーによって変更することができないようなロケール依存の設定も存在します。これらの設定は、(現在システムが使用しているロケールを含め)いくつかのロケールに関する情報を含むプライベートリソースに保存されています。例えば、ユーザーは通貨のシンボルを変更することができません。アプリケーションがこのような情報を必要とする場合、ロケールマネージャ関数 LmGetLocaleSetting を使用して取得する必要があります。ロケールマネージャは Palm OS 4.0 で追加されましたが、互換性のために対応する PalmOSGlue 関数の LmGlueGetLocaleSetting を使用することができます。リスト 12.2 に LmGlueGetLocaleSetting 関数の使い方を示します。

!リスト 12.2 ロケールマネージャを使用したロケール設定の取得
 LmLocaleType locale;
 Char currencySymbol[kMaxCurrencySymbolLen+1];
 UInt16 index;
 
 // Find out what the current locale is.
 OmGlueGetCurrentLocale(&locale);
 
 // Find out which index in the locale resource
 // contains info about that locale.
 LmGlueLocaleToIndex(&locale, &index);
 
 // Get the currency symbol stored in the locale at
 // that index.
 LmGlueGetLocaleSetting(index, lmChoiceCurrencySymbol,
                        currencySymbol, sizeof(currencySymbol));

表 12.2 では、どの種類のロケール情報をシステムプリファレンスから取得すべきか、またどのロケール情報をロケールリソースから取得すべきかを示しています。もちろん、別のロケールの情報を取得したい場合や現在のロケールのデフォルト設定を探している場合には、常にプリファレンスマネージャのかわりにロケールマネージャを使用することができます。

!表 12.2 ロケール情報の取得
,値,取得に使用する関数
,言語コード,PrefGetPreference(prefLanguage)
,ロケールの説明,PrefGetPreference(prefLocale)
,地域コード,PrefGetPreference(prefCountry)
,地域名,LmGlueGetLocaleSetting(...,lmChoiceCountryName,...)
,通貨名,LmGlueGetLocaleSetting(...,lmChoiceCurrencyName,...)
,通貨のシンボル,LmGlueGetLocaleSetting(...,lmChoiceCurrencySymbol,...)
,一意の通貨記号,LmGlueGetLocaleSetting(...,lmChoiceUniqueCurrencySymbol,...)
,測量法(メートル法あるいは英国式),PrefGetPreference(prefMeasurementSystem)
,数値の書式,PrefGetPreference(prefNumberFormat)
,通貨表現における小数点以下の桁数,LmGlueGetLocaleSetting(...,lmChoiceCurrencyDecimalPlaces,...)
,週の開始曜日,PrefGetPreference(prefWeekStartDay)
,日付の書式,PrefGetPreference(prefDateFormat),{{br}}PrefGetPreference(prefLongDateFormat)
,時刻の書式,PrefGetPreference(prefTimeFormat)
,タイムゾーン,PrefGetPreference(prefMinutesWestOfGMT) (Palm OS 4.0 未満),{{br}}PrefGetPreference(prefTimeZone) (Palm OS 4.0 以降)
,夏時間,PrefGetPreference(prefDaylightSavings) (Palm OS 4.0 未満),{{br}}PrefGetPreference(prefDaylightSavingAdjustment)(Palm OS 4.0 以降)
 
----
[[← 4 節に戻る|Palm OS Programmer's Companion Volume I/12-4]] [[↑12 章トップへ|Palm OS Programmer's Companion Volume I/12]] [[6 節に進む →|Palm OS Programmer's Companion Volume I/12-6]]