diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/M17N.cs b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/M17N.cs index dc872d04a..bec3eea5b 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/M17N.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/M17N.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using UnityEditor; @@ -72,13 +73,37 @@ namespace UniGLTF.M17N { const string LANG_KEY = "VRM_LANG"; - static Languages? m_lang; + static Dictionary CultureMap = new Dictionary + { + {new CultureInfo("ja-JP",false), Languages.ja}, + }; + + static Languages? s_lang; public static Languages Lang { get { - return m_lang.GetValueOrDefault(); + if (!s_lang.HasValue) + { + var value = EditorPrefs.GetString(LANG_KEY); + if (!string.IsNullOrEmpty(value) && Enum.TryParse(value, true, out Languages parsed)) + { + s_lang = parsed; + } + else + { + if (CultureMap.TryGetValue(CultureInfo.CurrentCulture, out Languages lang)) + { + s_lang = lang; + } + else + { + s_lang = default(Languages); + } + } + } + return s_lang.GetValueOrDefault(); } } @@ -92,7 +117,7 @@ namespace UniGLTF.M17N var lang = (Languages)EditorGUILayout.EnumPopup("lang", Lang); if (lang != Lang) { - m_lang = lang; + s_lang = lang; EditorPrefs.SetString(LANG_KEY, LanguageGetter.Lang.ToString()); } }