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

SDL_GetPreferredLocales

ユーザのロケールを得る

バージョン

SDL3/SDL_locale.h

構文

SDL_Locale ** SDL_GetPreferredLocales(int *count);

引数

int *countロケールの数の代入先へのポインタ. NULLも可

戻り値

(SDL_Locale **) NULLが終端のロケールの配列を戻す. 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる. これは1回のメモリ確保を行っているため, 不要になったときSDL_free()で解放する必要がある.

詳細

戻された言語の文字列は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 3.2.0以降

SDL Wikiへのリンク

SDL_GetPreferredLocales - SDL Wiki