private void ShowLanguage(string searchContext) { var enable_localization = EditorGUILayout.Toggle(LanguageProperties.editorLanguageExperimental, m_EnableEditorLocalization); if (enable_localization != m_EnableEditorLocalization) { m_EnableEditorLocalization = enable_localization; m_SelectedLanguage = LocalizationDatabase.GetDefaultEditorLanguage().ToString(); } EditorGUI.BeginDisabledGroup(!m_EnableEditorLocalization); { SystemLanguage[] editorLanguages = LocalizationDatabase.GetAvailableEditorLanguages(); int idx = 0; for (int i = 0; i < editorLanguages.Length; i++) { if (editorLanguages[i].ToString().Equals(m_SelectedLanguage)) { idx = k_LangListMenuOffset + i; break; } } int sel = EditorGUILayout.Popup(LanguageProperties.editorLanguage, idx, m_EditorLanguageNames); m_SelectedLanguage = (sel == 0) ? LocalizationDatabase.GetDefaultEditorLanguage().ToString() : editorLanguages[sel - k_LangListMenuOffset].ToString(); } EditorGUI.EndDisabledGroup(); if (!m_SelectedLanguage.Equals(LocalizationDatabase.currentEditorLanguage.ToString())) { SystemLanguage lang = (SystemLanguage)Enum.Parse(typeof(SystemLanguage), m_SelectedLanguage); EditorGUIUtility.NotifyLanguageChanged(lang); InternalEditorUtility.RequestScriptReload(); } ApplyChangesToPrefs(); }
private void ReadPreferences() { m_ScriptEditorPath.str = CodeEditor.Editor.EditorInstallation.Path; m_ExternalEditorSupportsUnityProj = EditorPrefs.GetBool("kExternalEditorSupportsUnityProj", false); m_ImageAppPath.str = EditorPrefs.GetString("kImagesDefaultApp"); m_ScriptApps = BuildAppPathList(m_ScriptEditorPath, kRecentScriptAppsKey, "internal"); m_ScriptAppsEditions = new string[m_ScriptApps.Length]; var foundScriptEditorPaths = CodeEditor.Editor.GetFoundScriptEditorPaths(); foreach (var scriptEditorPath in foundScriptEditorPaths.Keys) { ArrayUtility.Add(ref m_ScriptApps, scriptEditorPath); ArrayUtility.Add(ref m_ScriptAppsEditions, null); } m_ImageApps = BuildAppPathList(m_ImageAppPath, kRecentImageAppsKey, ""); m_ScriptAppDisplayNames = BuildFriendlyAppNameList(m_ScriptApps, m_ScriptAppsEditions, foundScriptEditorPaths, "Open by file extension"); m_ImageAppDisplayNames = BuildFriendlyAppNameList(m_ImageApps, null, null, L10n.Tr("Open by file extension")); m_DiffTools = InternalEditorUtility.GetAvailableDiffTools(); // only show warning if has team license if ((m_DiffTools == null || m_DiffTools.Length == 0) && InternalEditorUtility.HasTeamLicense()) { m_noDiffToolsMessage = InternalEditorUtility.GetNoDiffToolsDetectedMessage(); } string diffTool = EditorPrefs.GetString("kDiffsDefaultApp"); m_DiffToolIndex = ArrayUtility.IndexOf(m_DiffTools, diffTool); if (m_DiffToolIndex == -1) { m_DiffToolIndex = 0; } m_AutoRefresh = EditorPrefs.GetBool("kAutoRefresh"); m_ReopenLastUsedProjectOnStartup = EditorPrefs.GetBool("ReopenLastUsedProjectOnStartup"); m_UseOSColorPicker = EditorPrefs.GetBool("UseOSColorPicker"); m_EnableEditorAnalytics = EditorPrefs.GetBool("EnableEditorAnalytics", true); m_ShowAssetStoreSearchHits = EditorPrefs.GetBool("ShowAssetStoreSearchHits", true); m_VerifySavingAssets = EditorPrefs.GetBool("VerifySavingAssets", false); m_ScriptCompilationDuringPlay = (ScriptChangesDuringPlayOptions)EditorPrefs.GetInt("ScriptCompilationDuringPlay", 0); m_DeveloperMode = Unsupported.IsDeveloperMode(); m_GICacheSettings.m_EnableCustomPath = EditorPrefs.GetBool("GICacheEnableCustomPath"); m_GICacheSettings.m_CachePath = EditorPrefs.GetString("GICacheFolder"); m_GICacheSettings.m_MaximumSize = EditorPrefs.GetInt("GICacheMaximumSizeGB", 10); m_GICacheSettings.m_CompressionLevel = EditorPrefs.GetInt("GICacheCompressionLevel"); m_SpriteAtlasCacheSize = EditorPrefs.GetInt("SpritePackerCacheMaximumSizeGB"); m_AllowAttachedDebuggingOfEditor = EditorPrefs.GetBool("AllowAttachedDebuggingOfEditor", true); m_EnableEditorLocalization = EditorPrefs.GetBool("Editor.kEnableEditorLocalization", true); m_SelectedLanguage = EditorPrefs.GetString("Editor.kEditorLocale", LocalizationDatabase.GetDefaultEditorLanguage().ToString()); m_AllowAlphaNumericHierarchy = EditorPrefs.GetBool("AllowAlphaNumericHierarchy", false); m_EnableCodeCoverage = EditorPrefs.GetBool("CodeCoverageEnabled", false); m_CompressAssetsOnImport = Unsupported.GetApplicationSettingCompressAssetsOnImport(); m_GpuDevice = EditorPrefs.GetString("GpuDeviceName"); foreach (IPreferenceWindowExtension extension in prefWinExtensions) { extension.ReadPreferences(); } }
internal static SettingsProvider CreateLanguagesProvider() { var editorLanguages = LocalizationDatabase.GetAvailableEditorLanguages(); if (m_EditorLanguageNames == null || m_EditorLanguageNames.Length != editorLanguages.Length) { m_EditorLanguageNames = new GUIContent[editorLanguages.Length]; for (int i = 0; i < editorLanguages.Length; ++i) { var culture = LocalizationDatabase.GetCulture(editorLanguages[i]); var langName = new System.Globalization.CultureInfo(culture).NativeName; // Due to the issue 1088990, workaround for both Chinese is necessary. // This workaround should be removed just after the fix. if (editorLanguages[i] == SystemLanguage.ChineseSimplified) { byte[] letters = { 0xE7, 0xAE, 0x80, 0xE4, 0xBD, 0x93, 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87 }; langName = System.Text.Encoding.UTF8.GetString(letters); } else if (editorLanguages[i] == SystemLanguage.ChineseTraditional) { byte[] letters = { 0xE7, 0xB9, 0x81, 0xE9, 0xAB, 0x94, 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87 }; langName = System.Text.Encoding.UTF8.GetString(letters); } // not in stable languages list - display it as experimental language if (ArrayUtility.FindIndex(m_stableLanguages, v => v == editorLanguages[i]) < 0) { m_EditorLanguageNames[i] = EditorGUIUtility.TextContent(string.Format("{0} (Experimental)", langName)); } else { m_EditorLanguageNames[i] = EditorGUIUtility.TextContent(langName); } } ArrayUtility.Insert(ref m_EditorLanguageNames, 0, EditorGUIUtility.TextContent("")); GUIContent defaultLanguage = EditorGUIUtility.TextContent(string.Format("Default ( {0} )", LocalizationDatabase.GetDefaultEditorLanguage().ToString())); ArrayUtility.Insert(ref m_EditorLanguageNames, 0, defaultLanguage); } if (editorLanguages.Length > 1) { var settings = new PreferencesProvider("Preferences/Languages"); settings.guiHandler = searchContext => { OnGUI(searchContext, settings.ShowLanguage); }; return(settings); } return(null); }