Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Lang.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5public class Lang
6{
7 public enum LangCode
8 {
9 None = 0,
10 JP = 10,
11 EN = 20,
12 CN = 30
13 }
14
15 public class Words
16 {
17 public char comma;
18
19 public char period;
20 }
21
22 public static NaturalStringComparer comparer = new NaturalStringComparer();
23
24 public static bool runUpdate;
25
26 public static Words words = new Words();
27
28 public static string langCode = "";
29
30 public static string suffix = "";
31
32 public static string space = "";
33
34 public static List<Dictionary<string, object>> listName;
35
36 public static List<Dictionary<string, object>> listAlias;
37
38 public static bool isJP;
39
40 public static bool isEN;
41
42 public static bool isBuiltin;
43
44 public static List<char[]> articlesToRemove;
45
46 public static LangGeneral General;
47
48 public static LangGame Game;
49
50 public static LangNote Note;
51
52 public static SourceData List;
53
54 public static LangSetting setting;
55
56 public static ExcelData alias;
57
58 public static ExcelData names;
59
60 public static ExcelData excelDialog;
61
62 public static bool IsBuiltin(string id)
63 {
64 if (!(id == "JP"))
65 {
66 return id == "EN";
67 }
68 return true;
69 }
70
71 public static void Init(string lang)
72 {
73 setting = MOD.langs.TryGetValue(lang) ?? MOD.langs["EN"];
74 langCode = lang;
75 isJP = lang == "JP";
76 isEN = lang == "EN";
77 isBuiltin = lang == "JP" || lang == "EN";
78 suffix = ((!isBuiltin) ? "_L" : (isJP ? "_JP" : ""));
79 space = (setting.useSpace ? " " : "");
80 char.TryParse("_comma".lang(), out words.comma);
81 char.TryParse("_period".lang(), out words.period);
82 SourceData.LangSuffix = suffix;
83 articlesToRemove = new List<char[]>();
84 string[] list = GetList("_articlesToRemove");
85 foreach (string text in list)
86 {
87 articlesToRemove.Add(text.ToCharArray());
88 }
89 }
90
91 public static string Get(string id)
92 {
93 if (!(General != null))
94 {
95 return id;
96 }
97 return General.Get(id);
98 }
99
100 public static bool Has(string id)
101 {
102 return General.map.ContainsKey(id);
103 }
104
105 public static string TryGet(string id)
106 {
107 if (!General.map.ContainsKey(id))
108 {
109 return null;
110 }
111 return Get(id);
112 }
113
114 public static string[] GetList(string id)
115 {
116 return List.GetList(id);
117 }
118
119 public static string ParseRaw(string text, string val1, string val2 = null, string val3 = null, string val4 = null, string val5 = null)
120 {
121 StringBuilder stringBuilder = new StringBuilder(text);
122 stringBuilder.Replace("#1", val1 ?? "");
123 if (val2 != null)
124 {
125 stringBuilder.Replace("#(s2)", (val2.Replace(",", "").ToInt() <= 1) ? "" : "_s".lang());
126 }
127 stringBuilder.Replace("#(s)", (val1.Replace(",", "").ToInt() <= 1) ? "" : "_s".lang());
128 if (val2 != null)
129 {
130 stringBuilder.Replace("#2", val2);
131 }
132 if (val3 != null)
133 {
134 stringBuilder.Replace("#3", val3);
135 }
136 if (val4 != null)
137 {
138 stringBuilder.Replace("#4", val4);
139 }
140 if (val5 != null)
141 {
142 stringBuilder.Replace("#5", val5);
143 }
144 return stringBuilder.ToString();
145 }
146
147 public static string Parse(string idLang, string val1, string val2 = null, string val3 = null, string val4 = null, string val5 = null)
148 {
149 return ParseRaw(Get(idLang), val1, val2, val3, val4, val5);
150 }
151
152 public static string LoadText(string id)
153 {
154 return null;
155 }
156
157 public static string _Number(int a)
158 {
159 return $"{a:#,0}";
160 }
161
162 public static string _currency(object a, string IDCurrency)
163 {
164 return ("u_currency_" + IDCurrency).lang($"{a:#,0}");
165 }
166
167 public static string _currency(object a, bool showUnit = false, int unitSize = 14)
168 {
169 return $"{a:#,0}" + ((!showUnit) ? "" : ((unitSize == 0) ? "u_money".lang(a?.ToString() ?? "") : ("<size=" + unitSize + "> " + "u_money".lang(a?.ToString() ?? "") + "</size>")));
170 }
171
172 public static string _weight(int a, int b, bool showUnit = true, int unitSize = 0)
173 {
174 return (0.001f * (float)a).ToString("#0.0") + "/" + (0.001f * (float)b).ToString("#0.0") + ((!showUnit) ? "" : ((unitSize == 0) ? "s" : ("<size=" + unitSize + "> s</size>")));
175 }
176
177 public static string _gender(int id)
178 {
179 return GetList("genders")[id];
180 }
181
182 public static string _weight(int a, bool showUnit = true, int unitSize = 0)
183 {
184 return (0.001f * (float)a).ToString("#0.0") + ((!showUnit) ? "" : ((unitSize == 0) ? "s" : ("<size=" + unitSize + "> s</size>")));
185 }
186
187 public static string _rarity(int a)
188 {
189 return a switch
190 {
191 4 => "SSR",
192 3 => "SR",
193 2 => "R",
194 1 => "C",
195 0 => "K",
196 _ => "LE",
197 };
198 }
199
200 public static string _ChangeNum(int prev, int now)
201 {
202 return prev + " ⇒ " + now;
203 }
204
205 public static string[] GetDialog(string idSheet, string idTopic)
206 {
207 if (excelDialog == null)
208 {
209 string path = CorePath.CorePackage.TextDialog + "dialog.xlsx";
210 excelDialog = new ExcelData();
211 excelDialog.path = path;
212 }
213 excelDialog.BuildMap(idSheet);
214 ExcelData.Sheet sheet = excelDialog.sheets[idSheet];
215 string key = "text" + (isBuiltin ? ("_" + langCode) : "");
216 Dictionary<string, string> dictionary = sheet.map.TryGetValue(idTopic);
217 if (dictionary == null || !dictionary.ContainsKey(key))
218 {
219 return new string[1] { idTopic };
220 }
221 string text = dictionary[key];
222 if (text.IsEmpty())
223 {
224 text = dictionary["text_EN"];
225 }
226 return text.Split(new string[3] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
227 }
228}
Dictionary< string, Dictionary< string, string > > map
Definition: ExcelData.cs:14
Dictionary< string, Sheet > sheets
Definition: ExcelData.cs:25
virtual void BuildMap(string sheetName="_default")
Definition: ExcelData.cs:77
char period
Definition: Lang.cs:19
char comma
Definition: Lang.cs:17
Definition: Lang.cs:6
static Words words
Definition: Lang.cs:26
static string _weight(int a, int b, bool showUnit=true, int unitSize=0)
Definition: Lang.cs:172
static string[] GetDialog(string idSheet, string idTopic)
Definition: Lang.cs:205
static LangSetting setting
Definition: Lang.cs:54
static NaturalStringComparer comparer
Definition: Lang.cs:22
static LangGeneral General
Definition: Lang.cs:46
static string _rarity(int a)
Definition: Lang.cs:187
static string suffix
Definition: Lang.cs:30
static LangNote Note
Definition: Lang.cs:50
static string _currency(object a, bool showUnit=false, int unitSize=14)
Definition: Lang.cs:167
static string _Number(int a)
Definition: Lang.cs:157
static List< char[]> articlesToRemove
Definition: Lang.cs:44
static List< Dictionary< string, object > > listAlias
Definition: Lang.cs:36
static bool IsBuiltin(string id)
Definition: Lang.cs:62
static string _ChangeNum(int prev, int now)
Definition: Lang.cs:200
static string _gender(int id)
Definition: Lang.cs:177
static List< Dictionary< string, object > > listName
Definition: Lang.cs:34
static string LoadText(string id)
Definition: Lang.cs:152
static bool runUpdate
Definition: Lang.cs:24
static string Get(string id)
Definition: Lang.cs:91
static bool isEN
Definition: Lang.cs:40
static string _weight(int a, bool showUnit=true, int unitSize=0)
Definition: Lang.cs:182
static string langCode
Definition: Lang.cs:28
static string[] GetList(string id)
Definition: Lang.cs:114
static SourceData List
Definition: Lang.cs:52
static ExcelData excelDialog
Definition: Lang.cs:60
static string space
Definition: Lang.cs:32
static string ParseRaw(string text, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
Definition: Lang.cs:119
static ExcelData alias
Definition: Lang.cs:56
static LangGame Game
Definition: Lang.cs:48
static string _currency(object a, string IDCurrency)
Definition: Lang.cs:162
static void Init(string lang)
Definition: Lang.cs:71
LangCode
Definition: Lang.cs:8
static bool isBuiltin
Definition: Lang.cs:42
static bool Has(string id)
Definition: Lang.cs:100
static ExcelData names
Definition: Lang.cs:58
static bool isJP
Definition: Lang.cs:38
static string TryGet(string id)
Definition: Lang.cs:105
static string Parse(string idLang, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
Definition: Lang.cs:147
Definition: MOD.cs:7
static Dictionary< string, LangSetting > langs
Definition: MOD.cs:8
virtual string[] GetList(string id)
Definition: SourceData.cs:660
string Get(string id)
Definition: SourceLang.cs:12