/// <summary> /// Load language. /// </summary> public void LoadLanguage(ELanguage language, bool isForce = false) { Language = language; if (isForce) { mLanguageKeys = null; } if (mLanguageKeys == null) { _LoadLocalization(); } #if USE_MY_LOCALIZATION_KHMER MyFontKhmerConverter.Initialize(); #endif for (int i = 0; i < mLanguageKeys.Length; i++) { if (mLanguageKeys[i].Equals(Language.ToString())) { mLanguageIndex = i; break; } } }
/// <summary> /// Load text by key. /// </summary> public string LoadKey(string key) { if (mLanguageType == ELanguage.None) { LoadLanguage(Language); } if (mDictionary.ContainsKey(key)) { #if USE_MY_LOCALIZATION_ARABIC // please import "Arabic Support" package if (mLanguageType == ELanguage.Arabic) { string value = mDictionary[key][mLanguageIndex]; string arabic = ArabicSupport.ArabicFixer.Fix(value, false, false); for (int i = 0; i < 10; ++i) { string format = "{" + i + "}"; if (value.Contains(format)) { arabic = arabic.Replace("}{" + i, format); for (int j = 0; j < ARABIC_SYMBOLS.Length; ++j) { arabic = arabic.Replace(format + ARABIC_SYMBOLS[j], ARABIC_SYMBOLS[j] + format); } } else { break; } } return(arabic); } #endif #if USE_MY_LOCALIZATION_KHMER if (mLanguageType == ELanguage.Unknown) { return(MyFontKhmerConverter.Convert(mDictionary[key][mLanguageIndex])); } #endif return(mDictionary[key][mLanguageIndex]); } Debug.LogWarning("[" + typeof(MyLocalizationManager).Name + "] LoadKey(): Key \"" + key + "\" missing or null"); return(key); }