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);
    }
Esempio n. 2
0
        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);
                }
            }
        }