private string FormatMessage(string msg) { if (FormatMessageFunc != null) { return(FormatMessageFunc(msg)); } string val = LanguageConverter.GetLangValue(msg); if (val == null || ReferenceEquals(val, msg)) { if (DefaultFormatMessageDict.TryGetValue(msg, out val)) { return(val); } } else { return(val); } return(msg); }
private static int ClrFuncGetLangValue(IntPtr l, bool isStringType) { var oldtop = l.gettop(); if (l.istable(1)) { l.pushnumber(1); // 1 l.gettable(1); // key if (l.IsString(-1)) { string key = l.GetString(-1); l.pop(1); // X var len = l.getn(1); object[] args = new object[len - 1]; for (int i = 2; i <= len; ++i) { l.pushnumber(i); l.gettable(1); args[i - 2] = l.GetLua(-1); l.pop(1); } string val = LanguageConverter.GetLangValue(key, args); if (isStringType) { l.pushstring(val); } else { l.PushLuaObject(val); } return(1); } else { l.settop(oldtop); return(0); } } else { if (l.IsString(1)) { string key = l.GetString(1); object[] args = new object[oldtop - 1]; for (int i = 2; i <= oldtop; ++i) { args[i - 2] = l.GetLua(i); } string val = LanguageConverter.GetLangValue(key, args); if (isStringType) { l.pushstring(val); } else { l.PushLuaObject(val); } return(1); } else { l.settop(oldtop); return(0); } } }