blob: 15023e715d2088e5d758d5414768e0762d4ba9e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
using System.Collections.Generic;
using UnityEngine;
namespace I2.Loc;
[AddComponentMenu("I2/Localization/Source")]
[ExecuteInEditMode]
public class LanguageSource : MonoBehaviour, ISerializationCallbackReceiver, ILanguageSource
{
public delegate void fnOnSourceUpdated(LanguageSourceData source, bool ReceivedNewData, string errorMsg);
public LanguageSourceData mSource = new LanguageSourceData();
public int version;
public bool NeverDestroy;
public bool UserAgreesToHaveItOnTheScene;
public bool UserAgreesToHaveItInsideThePluginsFolder;
public bool GoogleLiveSyncIsUptoDate = true;
public List<Object> Assets = new List<Object>();
public string Google_WebServiceURL;
public string Google_SpreadsheetKey;
public string Google_SpreadsheetName;
public string Google_LastUpdatedVersion;
public LanguageSourceData.eGoogleUpdateFrequency GoogleUpdateFrequency = LanguageSourceData.eGoogleUpdateFrequency.Weekly;
public float GoogleUpdateDelay = 5f;
public List<LanguageData> mLanguages = new List<LanguageData>();
public bool IgnoreDeviceLanguage;
public LanguageSourceData.eAllowUnloadLanguages _AllowUnloadingLanguages;
public List<TermData> mTerms = new List<TermData>();
public bool CaseInsensitiveTerms;
public LanguageSourceData.MissingTranslationAction OnMissingTranslation = LanguageSourceData.MissingTranslationAction.Fallback;
public string mTerm_AppName;
public LanguageSourceData SourceData
{
get
{
return mSource;
}
set
{
mSource = value;
}
}
public event fnOnSourceUpdated Event_OnSourceUpdateFromGoogle;
private void Awake()
{
mSource.owner = this;
mSource.Awake();
}
private void OnDestroy()
{
NeverDestroy = false;
if (!NeverDestroy)
{
mSource.OnDestroy();
}
}
public string GetSourceName()
{
string text = base.gameObject.name;
Transform parent = base.transform.parent;
while ((bool)parent)
{
text = parent.name + "_" + text;
parent = parent.parent;
}
return text;
}
public void OnBeforeSerialize()
{
version = 1;
}
public void OnAfterDeserialize()
{
if (version != 0 && mSource != null)
{
return;
}
mSource = new LanguageSourceData();
mSource.owner = this;
mSource.UserAgreesToHaveItOnTheScene = UserAgreesToHaveItOnTheScene;
mSource.UserAgreesToHaveItInsideThePluginsFolder = UserAgreesToHaveItInsideThePluginsFolder;
mSource.IgnoreDeviceLanguage = IgnoreDeviceLanguage;
mSource._AllowUnloadingLanguages = _AllowUnloadingLanguages;
mSource.CaseInsensitiveTerms = CaseInsensitiveTerms;
mSource.OnMissingTranslation = OnMissingTranslation;
mSource.mTerm_AppName = mTerm_AppName;
mSource.GoogleLiveSyncIsUptoDate = GoogleLiveSyncIsUptoDate;
mSource.Google_WebServiceURL = Google_WebServiceURL;
mSource.Google_SpreadsheetKey = Google_SpreadsheetKey;
mSource.Google_SpreadsheetName = Google_SpreadsheetName;
mSource.Google_LastUpdatedVersion = Google_LastUpdatedVersion;
mSource.GoogleUpdateFrequency = GoogleUpdateFrequency;
mSource.GoogleUpdateDelay = GoogleUpdateDelay;
mSource.Event_OnSourceUpdateFromGoogle += this.Event_OnSourceUpdateFromGoogle;
if (mLanguages != null && mLanguages.Count > 0)
{
mSource.mLanguages.Clear();
mSource.mLanguages.AddRange(mLanguages);
mLanguages.Clear();
}
if (Assets != null && Assets.Count > 0)
{
mSource.Assets.Clear();
mSource.Assets.AddRange(Assets);
Assets.Clear();
}
if (mTerms != null && mTerms.Count > 0)
{
mSource.mTerms.Clear();
for (int i = 0; i < mTerms.Count; i++)
{
mSource.mTerms.Add(mTerms[i]);
}
mTerms.Clear();
}
version = 1;
this.Event_OnSourceUpdateFromGoogle = null;
}
}
|