[[← 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]]