diff --git a/Assets/VRM/UniVRM/Editor/EditorLanguages.cs b/Assets/VRM/UniVRM/Editor/EditorLanguages.cs index 14416d7ce..b2cf23463 100644 --- a/Assets/VRM/UniVRM/Editor/EditorLanguages.cs +++ b/Assets/VRM/UniVRM/Editor/EditorLanguages.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using UnityEditor; namespace VRM.M17N { @@ -143,11 +144,35 @@ namespace VRM.M17N } public static class Getter { - public static M17N.Languages Lang; + const string LANG_KEY = "VRM_LANG"; + + static Languages? m_lang; + + public static Languages Lang + { + get + { + if (!m_lang.HasValue) + { + m_lang = EnumUtil.TryParseOrDefault(EditorPrefs.GetString(LANG_KEY, default(Languages).ToString())); + } + return m_lang.Value; + } + } public static string Msg(T key) where T : Enum { return M17N.MsgCache.Get(Lang, key); } + + public static void OnGuiSelectLang() + { + var lang = (M17N.Languages)EditorGUILayout.EnumPopup("lang", Lang); + if (lang != Lang) + { + m_lang = lang; + EditorPrefs.SetString(LANG_KEY, M17N.Getter.Lang.ToString()); + } + } } } diff --git a/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs b/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs index 87f162cc7..a981a8403 100644 --- a/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs +++ b/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs @@ -296,9 +296,8 @@ namespace VRM m_Inspector = Editor.CreateEditor(m_settings); } - M17N.Getter.Lang = EnumUtil.TryParseOrDefault(EditorPrefs.GetString(LANG_KEY, default(M17N.Languages).ToString())); + M17N.Getter.OnGuiSelectLang(); } - const string LANG_KEY = "VRM_LANG"; void OnDisable() { @@ -360,12 +359,7 @@ namespace VRM EditorGUIUtility.labelWidth = 150; // lang - var lang = (M17N.Languages)EditorGUILayout.EnumPopup("lang", M17N.Getter.Lang); - if (lang != M17N.Getter.Lang) - { - M17N.Getter.Lang = lang; - EditorPrefs.SetString(LANG_KEY, M17N.Getter.Lang.ToString()); - } + M17N.Getter.OnGuiSelectLang(); EditorGUILayout.LabelField("ExportRoot"); { diff --git a/Assets/VRM/UniVRM/Editor/Meta/VRMMetaObjectEditor.cs b/Assets/VRM/UniVRM/Editor/Meta/VRMMetaObjectEditor.cs index 25cd3cf11..bfa24652b 100644 --- a/Assets/VRM/UniVRM/Editor/Meta/VRMMetaObjectEditor.cs +++ b/Assets/VRM/UniVRM/Editor/Meta/VRMMetaObjectEditor.cs @@ -51,6 +51,21 @@ namespace VRM SerializedProperty m_LicenseType; SerializedProperty m_OtherLicenseUrl; + static string RequiredMessage(string name) + { + switch (M17N.Getter.Lang) + { + case M17N.Languages.ja: + return $"必須項目。{name} を入力してください"; + + case M17N.Languages.en: + return $"{name} is required"; + + default: + throw new System.NotImplementedException(); + } + } + private void OnEnable() { m_target = (VRMMetaObject)target; @@ -62,7 +77,7 @@ namespace VRM { if (string.IsNullOrEmpty(prop.stringValue)) { - return ($"必須項目。{prop.name} を入力してください", MessageType.Error); + return (RequiredMessage(prop.name), MessageType.Error); } return ("", MessageType.None); }); @@ -70,7 +85,7 @@ namespace VRM { if (string.IsNullOrEmpty(prop.stringValue)) { - return ($"必須項目。{prop.name} を入力してください", MessageType.Error); + return (RequiredMessage(prop.name), MessageType.Error); } return ("", MessageType.None); }); @@ -78,7 +93,7 @@ namespace VRM { if (string.IsNullOrEmpty(prop.stringValue)) { - return ($"必須項目。{prop.name} を入力してください", MessageType.Error); + return (RequiredMessage(prop.name), MessageType.Error); } return ("", MessageType.None); }); @@ -117,6 +132,8 @@ namespace VRM bool m_foldoutDistribution = true; void VRMMetaObjectGUI(SerializedObject so) { + M17N.Getter.OnGuiSelectLang(); + so.Update(); if (VRMVersion.IsNewer(m_exporterVersion.stringValue))