強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unity の CurrentCulture

Unity のカレントのカルチャ情報がどうなってるか調べてみました。

Macの場合

※実行は Unity エディタ上。プラットフォームは Standalone/iOS/Android のいずれを選択しても結果に変化はなし。

【ビルド&実行環境】

OS macOS Sierra(10.12.2)
OSの言語設定 日本語
Unityのバージョン 5.5.0f3

System.Globalization.CultureInfo.CurrentCulture のプロパティの値

en-US とかになってるのか? と予想しつつ確認すると Name は "" 、 LCID は 127 。

マイクロソフトの LCID の一覧にも該当するもの無し。

ロケール ID (LCID) の一覧
https://msdn.microsoft.com/ja-jp/library/cc392381.aspx

もう少し、調査するとこちらのドキュメントを発見。

CultureInfo クラス
https://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(VS.71).aspx

127(16進では 0x007F )はインバリアントカルチャ( invariant culture )の場合の値みたいです。
インバリアントカルチャとは文化に依存しない設定。関連付けられている国/地域は無く、言語は何も設定しないわけにいかないからだと思いますが英語が設定されています。
他のカルチャは将来設定に変更が発生する可能性がありますがインバリアントカルチャの場合には変更がされない為、ファイルにデータを保存する時などはインバリアントカルチャの方が良いみたいです。

(2017/01/27 追記)
Windows 環境では状況が異なるという話を聞いたので Windows 環境でも確認しました。

Windows(Unityエディタ上)の場合

※実行は Unity エディタ上。プラットフォームは Standalone/iOS/Android のいずれを選択しても結果に変化はなし。

【ビルド&実行環境】

OS Windows 10 Pro(64bit)
OSの言語設定 日本語
Unityのバージョン 5.5.0p4


Windows 環境では Name は "en-US" 、 LCID は 1033(16進では 0x409)。

Windowsの場合(Visual Studio Community)

Visual Sudio環境ではどうなるのかも確認してみました。
【ビルド&実行環境】

OS Windows 10 Pro(64bit)
OSの言語設定 日本語
Visual Studio Visual Studio Community 2015(Verion 14.0.25431.01 Update 3)

Name は "ja-JP" 、 LCID は 1041(16進では 0x411)。

アプリ化した時の動作も追記。

Mac(アプリ化して実行)

【ビルド&実行環境】

OS macOS Sierra(10.12.2)
OSの言語設定 日本語
Unityのバージョン 5.5.0f3

Name は "" 、 LCID は 127。

Windows(アプリ化して実行)

【ビルド&実行環境】

OS Windows 10 Pro(64bit)
OSの言語設定 日本語
Unityのバージョン 5.5.0p4

Name は "en-US" 、 LCID は 1033。

iOS

【ビルド環境】

OS macOS Sierra(10.12.2)
OSの言語設定 日本語
Unityのバージョン 5.5.0f3

【ビルド環境】

OS Windows 10 Pro(64bit)
OSの言語設定 日本語
Unityのバージョン 5.5.0p4

【実行環境】

OS iOS 10.2
OSの言語設定 日本語

Mac/Windows のいずれでビルドした場合も Name は "" 、 LCID は 127。

Android

【ビルド環境】

OS macOS Sierra(10.12.2)
OSの言語設定 日本語
Unityのバージョン 5.5.0f3

【ビルド環境】

OS Windows 10 Pro(64bit)
OSの言語設定 日本語
Unityのバージョン 5.5.0p4

【実行環境】

OS Android 5.0.2
OSの言語設定 日本語

Mac/Windows のいずれでビルドした場合も Name は "" 、 LCID は 127。

まとめ

Windows 上の Unity エディタで実行した時と Windows アプリの場合には Name は "en-US" 、 LCID は 1033 。
それ以外の場合は Name は "" 、 LCID は 127 という事ですね。