using System.Collections.Generic; using Neatly.Module; public class I18nModule : ModuleSingleton { private string m_DefaultLanguage; private Dictionary> m_AllLanguageMap; public override void Init() { m_AllLanguageMap = new Dictionary>(); } public void SetDefaultLanguage(string language) { m_DefaultLanguage = language; } public string GetValue(string key, string language = null) { if (string.IsNullOrEmpty(language)) { language = m_DefaultLanguage; } m_AllLanguageMap.TryGetValue(language, out var map); if (map == null) { map = CreateLanguageMap(language); m_AllLanguageMap.Add(language, map); } return map[key]; } private Dictionary CreateLanguageMap(string language) { byte[] byteArray = FileModule.Instance.ReadFileBytes("i18n", language); var languageMap = new Dictionary(); string str = System.Text.Encoding.UTF8.GetString(byteArray); foreach (var lineInfo in str.Split('\n')) { var infoArray = lineInfo.Split(','); languageMap.Add(infoArray[0], infoArray[1]); } return languageMap; } }