/// <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);
        }