93 lines
2.7 KiB
C#
93 lines
2.7 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace I2.Loc
|
|
{
|
|
public static partial class LocalizationManager
|
|
{
|
|
|
|
#region Variables: Misc
|
|
|
|
#endregion
|
|
|
|
public static void InitializeIfNeeded()
|
|
{
|
|
#if UNITY_EDITOR
|
|
#if UNITY_2017_2_OR_NEWER
|
|
EditorApplication.playModeStateChanged -= OnEditorPlayModeStateChanged;
|
|
EditorApplication.playModeStateChanged += OnEditorPlayModeStateChanged;
|
|
#else
|
|
UnityEditor.EditorApplication.playmodeStateChanged -= OldOnEditorPlayModeStateChanged;
|
|
UnityEditor.EditorApplication.playmodeStateChanged += OldOnEditorPlayModeStateChanged;
|
|
#endif
|
|
#endif
|
|
|
|
if (string.IsNullOrEmpty(mCurrentLanguage) || Sources.Count == 0)
|
|
{
|
|
AutoLoadGlobalParamManagers();
|
|
UpdateSources();
|
|
SelectStartupLanguage();
|
|
}
|
|
}
|
|
|
|
public static string GetVersion()
|
|
{
|
|
return "2.8.13 f1";
|
|
}
|
|
|
|
public static int GetRequiredWebServiceVersion()
|
|
{
|
|
return 5;
|
|
}
|
|
|
|
public static string GetWebServiceURL( LanguageSourceData source = null )
|
|
{
|
|
if (source != null && !string.IsNullOrEmpty(source.Google_WebServiceURL))
|
|
return source.Google_WebServiceURL;
|
|
|
|
InitializeIfNeeded();
|
|
for (int i = 0; i < Sources.Count; ++i)
|
|
if (Sources[i] != null && !string.IsNullOrEmpty(Sources[i].Google_WebServiceURL))
|
|
return Sources[i].Google_WebServiceURL;
|
|
return string.Empty;
|
|
}
|
|
|
|
#if UNITY_EDITOR
|
|
#if UNITY_2017_2_OR_NEWER
|
|
static void OnEditorPlayModeStateChanged( PlayModeStateChange stateChange )
|
|
{
|
|
if (stateChange != PlayModeStateChange.ExitingPlayMode)
|
|
return;
|
|
#else
|
|
static void OldOnEditorPlayModeStateChanged()
|
|
{
|
|
if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode)
|
|
return;
|
|
#endif
|
|
|
|
OnLocalizeEvent = null;
|
|
|
|
foreach (var source in Sources)
|
|
{
|
|
source.LoadAllLanguages(true);
|
|
}
|
|
try
|
|
{
|
|
var tempPath = Application.temporaryCachePath;
|
|
|
|
foreach (var file in Directory.GetFiles(tempPath).Where(f => f.Contains("LangSource_") && f.EndsWith(".loc", StringComparison.Ordinal)))
|
|
{
|
|
File.Delete(file);
|
|
}
|
|
}
|
|
catch(Exception)
|
|
{
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|