言語の自動判定と保存を実装

This commit is contained in:
ousttrue
2021-04-19 21:09:40 +09:00
parent 6a4a47d2e9
commit c80435d640

View File

@@ -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<CultureInfo, Languages> CultureMap = new Dictionary<CultureInfo, Languages>
{
{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<Languages>(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());
}
}