Example #1
0
 private void Awake()
 {
     if (this.Language)
     {
         this.Language.Clear();
         string[]  availableTranslations      = UiTranslationDatabase.GetAvailableTranslations();
         Texture[] availableTranslationsIcons = UiTranslationDatabase.GetAvailableTranslationsIcons();
         for (int i = 0; i < availableTranslations.Length; i++)
         {
             this.Language.AddItem(availableTranslations[i], availableTranslationsIcons[i], null);
         }
         EventDelegate.Add(this.Language.onChange, new EventDelegate.Callback(this.OnLanguageChange));
     }
     this.BeginIgnoreEvents();
 }
Example #2
0
 public static Texture[] GetAvailableTranslationsIcons()
 {
     UiTranslationDatabase.GetAvailableTranslations();
     return(UiTranslationDatabase.Instance._availableTranslationsIcons);
 }
Example #3
0
 public static void SetLanguage(string lang)
 {
     UiTranslationDatabase.GetAvailableTranslations();
     if (string.Equals(lang, "TRANSLATIONDEBUG", StringComparison.InvariantCultureIgnoreCase))
     {
         UiTranslationDatabase.Instance.Data = (from d in UiTranslationDatabase.Instance.DataEnglish
                                                where !string.IsNullOrEmpty(d.Value)
                                                select d).ToDictionary((KeyValuePair <string, string> i) => i.Key, (KeyValuePair <string, string> i) => "{" + i.Key + "}");
         UiTranslationDatabase.Instance.DataCaps = (from d in UiTranslationDatabase.Instance.DataEnglish
                                                    where !string.IsNullOrEmpty(d.Value)
                                                    select d).ToDictionary((KeyValuePair <string, string> i) => i.Key, (KeyValuePair <string, string> i) => "{{" + i.Key + "}}");
         EventRegistry.Game.Publish(TfEvent.LanguageSet, null);
         return;
     }
     if (!UiTranslationDatabase.Instance._availableTranslations.Contains(lang))
     {
         Debug.LogError("Unknown lang: " + lang + " fallback to English");
         lang = "English";
     }
     if (lang != UiTranslationDatabase.Instance._language || UiTranslationDatabase.Instance.Data == null)
     {
         string language = UiTranslationDatabase.Instance._language;
         UiTranslationDatabase.Instance._language = lang;
         try
         {
             string filename = UiTranslationDatabase.Instance.Filename;
             Dictionary <string, string> source;
             if (Path.IsPathRooted(filename))
             {
                 if (!File.Exists(filename))
                 {
                     Debug.LogError("Missing lang file: " + filename);
                     return;
                 }
                 source = JsonMapper.ToObject <Dictionary <string, string> >(File.ReadAllText(filename));
             }
             else
             {
                 string path = Application.dataPath + "/../" + UiTranslationDatabase.TranslationsPath;
                 if (!Directory.Exists(path))
                 {
                     Debug.LogError("Missing lang file: " + filename);
                     return;
                 }
                 source = JsonMapper.ToObject <Dictionary <string, string> >(File.ReadAllText(Application.dataPath + "/../" + filename));
             }
             UiTranslationDatabase.Instance.Data = (from d in source
                                                    where !string.IsNullOrEmpty(d.Value)
                                                    select d).ToDictionary((KeyValuePair <string, string> i) => i.Key, (KeyValuePair <string, string> i) => i.Value);
             UiTranslationDatabase.Instance.DataCaps = new Dictionary <string, string>();
             foreach (KeyValuePair <string, string> keyValuePair in UiTranslationDatabase.Instance.DataEnglish)
             {
                 if (!UiTranslationDatabase.Instance.Data.ContainsKey(keyValuePair.Key))
                 {
                     UiTranslationDatabase.Instance.Data.Add(keyValuePair.Key, keyValuePair.Value);
                 }
                 if (!UiTranslationDatabase.Instance.DataCaps.ContainsKey(keyValuePair.Key))
                 {
                     UiTranslationDatabase.Instance.DataCaps.Add(keyValuePair.Key, UiTranslationDatabase.Instance.Data[keyValuePair.Key].ToUpper());
                 }
             }
             PlayerPreferences.Language = lang;
             PlayerPreferences.Save();
         }
         catch (Exception exception)
         {
             Debug.LogException(exception);
             UiTranslationDatabase.Instance._language = language;
             return;
         }
         UiTranslationDatabase.OriginalVersion = (UiTranslationDatabase.Instance._language == "English");
         EventRegistry.Game.Publish(TfEvent.LanguageSet, null);
     }
 }