次の方法で共有


XPackageGetUserLocale

現在のユーザーのロケールを取得します。

構文

HRESULT XPackageGetUserLocale(
    size_t localeSize,
    char* locale
)  

パラメーター

localeSize _In_
型: size_t

成功した場合、locale 内の文字列のサイズ。

locale _Out_writes_(localeSize)
型: char*

成功した場合、ユーザーのロケールが格納されます。

戻り値

型: HRESULT

HRESULT 成功またはエラー コード。

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

この関数は、パッケージのロケールに最も近いユーザー ロケールを取得します。 パッケージのロケール情報が宣言されていない場合、この関数は成功しても、locale でユーザー ロケールを返しません。 パッケージのロケールがインストール済みのユーザー ロケールと一致する場合、関数は成功し、locale でユーザー ロケールを返します。 パッケージのロケールがインストールされているユーザーのロケールと完全には一致しない場合、この関数は、最も近いインストールされているユーザー ロケールを検索します。 近い一致が見つからない場合は、エラーが発生します。それ以外の場合、関数は成功し、locale で最も近いインストールされたユーザー ロケールを返します。

どの言語をゲームにインストールするかを制御するためにインテリジェント配信を使用している場合は、ユーザーが本体で設定したロケールに、現在インストールされていないチャンクを含めることができます。 これには、ゲームにおいて、必要なチャンクがインストールされていることを常に検証することと、インストールされていない場合は他の言語に戻ることが必要になります。この手順では、最も近い言語に戻る方法とロケールに関する詳細な知識が必要とされます。 この関数は、現在のユーザー ロケール、またはそれに最も近いフォールバックを取得する方法を提供します。独自のロケール分析およびフォールバック手順を実装する必要はありません。

次のコード サンプルは、この関数の使用方法です。

char gameLocale[LOCALE_NAME_MAX_LENGTH];

// Get the best user locale that is installed
HRESULT hr = XPackageGetUserLocale(_countof(gameLocale), gameLocale);
if (SUCCEEDED(hr))
{
    printf("Game using locale: %s\n", gameLocale);
}

要件

ヘッダー: XPackage.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XPackage
ストリーミング インストールとインテリジェント配信