目次 - API(機能別) - ロケール - SDL_GetPreferredLocales

# SDL_GetPreferredLocales

ユーザのロケールを得る

## 構文

`SDL_Locale* SDL_GetPreferredLocales(void)`

## 戻り値

ロケールの配列を戻す. 終端は`language`フィールドがNULLである. 失敗のときNULLを戻す.

## 詳細

この関数は, 終端の項目がNULLのSDL_Locale構造体の配列を戻す. 呼び出し元はこの配列を使い終えたらSDL_free()で解放する必要がある; 確保されたメモリは全て1つのブロック上にあるので, SDL_free()を1回呼べば十分である.

戻された言語の文字列はxx(小文字)の形式で, "xx"はISO-639言語コード("en"は英語, "de"はドイツ語など)である. 国名はYY(大文字)の形式で, "YY"はISO-3166国名コード("US"はアメリカ合衆国, "CA"はカナダなど)である. 国名は, 特定の国ない場合はNULLとなる. ({ "en", "US" } ならばアメリカ英語だが, { "en", NULL } ならば「英語, 一般」を意味する.) 言語文字列は, 終端以外ではNULLにならない.

これらは2文字とは限らないので注意すること. 3文字以上もありうる.

戻されたロケールの一覧はユーザへの適合順に並んでいる. 例えば, ドイツ市民で, 英語に堪能で, 東京を移動するのに十分な日本語が分かっていれば: { "de", "en_US", "jp", NULL }. イングランド出身ならばイギリス英語を好むだろう("color"ではなく"colour"と書く)が, 次のようになるだろう: { "en_GB", "en", NULL }.

この関数はエラーのときNULLを戻す. これは環境が情報をまったく提供しなかった場合を含む.

この関数はOSに問い合わせるため, 恐らく「遅い」. 1回だけ呼び出して結果を保存したほうがよいだろう. しかし, この一覧は変わることがある. 通常は, あなたのプログラムの外でシステムを変更した場合である; この場合, SDLはSDL_LOCALECHANGEDイベントを発生させる. 可能ならば, このとき関数を再び呼んでロケール一覧を更新しコピーするとよいだろう.

## バージョン

SDL 2.0.14以降

## SDL Wikiへのリンク

SDL_GetPreferredLocales - SDL Wiki