示例#1
0
        public static void Init()
        {
            Culture = CultureInfo.InvariantCulture;

            Messages = new Dictionary <string, Dictionary <string, string> >();

            foreach (CultureInfo currentCulture in CultureInfo.GetCultures(CultureTypes.AllCultures))
            {
                string code = GetCodeFromCulture(currentCulture);

                // Load
                Dictionary <string, string> items = new Dictionary <string, string>();

                string jsonPath = Engine.Instance.LocateResource("lang/" + code + ".json");
                if (jsonPath != "")
                {
                    Json jData = null;
                    if (Json.TryParse(Platform.Instance.FileContentsReadText(jsonPath), out jData))
                    {
                        foreach (KeyValuePair <string, object> kp in jData.GetDictionary())
                        {
                            string itemId   = kp.Key;
                            string itemText = kp.Value as string;

                            items[itemId] = itemText;
                        }
                    }
                }

                Messages[code] = items;
            }
        }
示例#2
0
 // Only dictionary, only string supported right now.
 public static void JsonToXml(Json source, XmlElement destination)
 {
     if (source.IsDictionary())
     {
         foreach (KeyValuePair <string, object> kp in source.GetDictionary())
         {
             if (kp.Value is string)
             {
                 destination.SetAttribute(kp.Key as string, kp.Value as string);
             }
         }
     }
 }
示例#3
0
        public static string GetText(string id)
        {
            CultureInfo currentCulture = Culture;

            for (;;)
            {
                string code = currentCulture.Name;
                if (code == "")
                {
                    code = "inv";
                }
                if (Messages.ContainsKey(code) == false)
                {
                    // Load
                    Dictionary <string, string> items = new Dictionary <string, string>();

                    string jsonPath = Engine.Instance.LocateResource("lang/" + code + ".json");
                    if (jsonPath != "")
                    {
                        Json jData = null;
                        if (Json.TryParse(Platform.Instance.FileContentsReadText(jsonPath), out jData))
                        {
                            foreach (KeyValuePair <string, object> kp in jData.GetDictionary())
                            {
                                string itemId   = kp.Key;
                                string itemText = kp.Value as string;

                                items[itemId] = itemText;
                            }
                        }
                    }

                    Messages[code] = items;
                }

                if (Messages[code].ContainsKey(id))
                {
                    return(Messages[code][id]);
                }

                if (code == "inv")
                {
                    return("");                    // Not Found
                }
                currentCulture = currentCulture.Parent;
            }
        }