2using System.Collections.Generic;
22 public static NaturalStringComparer
comparer =
new NaturalStringComparer();
32 public static string space =
"";
34 public static List<Dictionary<string, object>>
listName;
36 public static List<Dictionary<string, object>>
listAlias;
73 public static void Init(
string lang)
81 space = (setting.useSpace ?
" " :
"");
82 char.TryParse(
"_comma".lang(), out
words.
comma);
84 SourceData.LangSuffix =
suffix;
86 string[] list =
GetList(
"_articlesToRemove");
87 foreach (
string text
in list)
93 public static string Get(
string id)
102 public static bool Has(
string id)
104 return General.map.ContainsKey(
id);
109 if (!
General.map.ContainsKey(
id))
121 public static string ParseRaw(
string text,
string val1,
string val2 =
null,
string val3 =
null,
string val4 =
null,
string val5 =
null)
123 StringBuilder stringBuilder =
new StringBuilder(text);
124 stringBuilder.Replace(
"#1", val1 ??
"");
127 stringBuilder.Replace(
"#(s2)", (val2.Replace(
",",
"").ToInt() <= 1) ?
"" :
"_s".lang());
129 stringBuilder.Replace(
"#(s)", (val1.Replace(
",",
"").ToInt() <= 1) ?
"" :
"_s".lang());
132 stringBuilder.Replace(
"#2", val2);
136 stringBuilder.Replace(
"#3", val3);
140 stringBuilder.Replace(
"#4", val4);
144 stringBuilder.Replace(
"#5", val5);
146 return stringBuilder.ToString();
149 public static string Parse(
string idLang,
string val1,
string val2 =
null,
string val3 =
null,
string val4 =
null,
string val5 =
null)
151 return ParseRaw(
Get(idLang), val1, val2, val3, val4, val5);
164 public static string _currency(
object a,
string IDCurrency)
166 return (
"u_currency_" + IDCurrency).lang(
$"{a:#,0}");
169 public static string _currency(
object a,
bool showUnit =
false,
int unitSize = 14)
171 return $"{a:#,0}" + ((!showUnit) ?
"" : ((unitSize == 0) ?
"u_money".lang(a?.ToString() ??
"") : (
"<size=" + unitSize +
"> " +
"u_money".lang(a?.ToString() ??
"") +
"</size>")));
174 public static string _weight(
int a,
int b,
bool showUnit =
true,
int unitSize = 0)
176 return (0.001f * (
float)a).ToString(
"#0.0") +
"/" + (0.001f * (float)b).ToString(
"#0.0") + ((!showUnit) ?
"" : ((unitSize == 0) ?
"s" : (
"<size=" + unitSize +
"> s</size>")));
184 public static string _weight(
int a,
bool showUnit =
true,
int unitSize = 0)
186 return (0.001f * (
float)a).ToString(
"#0.0") + ((!showUnit) ?
"" : ((unitSize == 0) ?
"s" : (
"<size=" + unitSize +
"> s</size>")));
204 return prev +
" ⇒ " + now;
213 List<ExcelData> list =
new List<ExcelData>();
220 list.Add(
new ExcelData(extraExcelDialog));
228 item.BuildMap(sheetName);
230 if (
item.book.GetSheet(sheetName) ==
null)
235 foreach (var (text2, value) in sheet.
map)
237 if (!text2.IsEmpty())
248 public static string[]
GetDialog(
string idSheet,
string idTopic)
250 Dictionary<string, string> dictionary =
GetDialogSheet(idSheet).map.TryGetValue(idTopic);
251 if (dictionary ==
null)
253 return new string[1] { idTopic };
256 string text = dictionary.GetValueOrDefault(key) ?? dictionary.GetValueOrDefault(
"text");
259 text = dictionary[
"text_EN"];
261 return text.Split(
new string[3] {
"\r\n",
"\r",
"\n" }, StringSplitOptions.None);
static string TextDialogLocal
List< Dictionary< string, string > > list
Dictionary< string, Dictionary< string, string > > map
Dictionary< string, Sheet > sheets
virtual void BuildMap(string sheetName="_default")
static string _weight(int a, int b, bool showUnit=true, int unitSize=0)
static string[] GetDialog(string idSheet, string idTopic)
static LangSetting setting
static NaturalStringComparer comparer
static LangGeneral General
static string _rarity(int a)
static string _currency(object a, bool showUnit=false, int unitSize=14)
static string _Number(int a)
static List< char[]> articlesToRemove
static List< Dictionary< string, object > > listAlias
static bool IsBuiltin(string id)
static string _ChangeNum(int prev, int now)
static string _gender(int id)
static List< Dictionary< string, object > > listName
static string LoadText(string id)
static string Get(string id)
static string _weight(int a, bool showUnit=true, int unitSize=0)
static string[] GetList(string id)
static ExcelData excelDialog
static string ParseRaw(string text, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
static ExcelData.Sheet GetDialogSheet(string idSheet)
static HashSet< string > extraExcelDialogs
static string _currency(object a, string IDCurrency)
static void Init(string lang)
static bool Has(string id)
static string TryGet(string id)
static string Parse(string idLang, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
static Dictionary< string, LangSetting > langs
virtual string[] GetList(string id)