void initialize() { List<LanguageFile> currentLanguages = Locale.instance.languages; languages = new SystemLanguage[currentLanguages.Count]; langFileCache = new Dictionary<SystemLanguage, LanguageFile>(); for (int i = 0; i < currentLanguages.Count; i++) { languages[i] = currentLanguages[i].language; langFileCache.Add(languages[i], currentLanguages[i]); } entries = new Dictionary<string, GUILocaleRow>(); string key,value; foreach(KeyValuePair<SystemLanguage, LanguageFile> langLangFileKVP in langFileCache){ foreach(LanguageFileEntry langFileEntry in langLangFileKVP.Value.entries){ key = langFileEntry.key; value = langFileEntry.value; if (entries.ContainsKey(key)){ if (entries[key].values.ContainsKey(langLangFileKVP.Key)) Debug.LogError("something wrong, probably you have duplicates for " + langLangFileKVP.Key +" language"); else entries[key].values.Add(langLangFileKVP.Key, value); } else { GUILocaleRow localeRow = new GUILocaleRow(); localeRow.key = key; localeRow.values = new Dictionary<SystemLanguage, string>(); localeRow.values.Add(langLangFileKVP.Key, value); entries.Add(key,localeRow); } } } }