コード例 #1
0
            public void SetLanguage(string languageID)
            {
                m_currentLanguageID = null;

                if (ReadLanguageFile(languageID) || DoLanguageExist(languageID))
                {
                    m_currentLanguageID = languageID;
                }
                else
                {
                    int indexOf_ = languageID.IndexOf('_');
                    if (indexOf_ > 0)
                    {
                        string fallbackLangID = languageID.Substring(0, indexOf_);
                        if (ReadLanguageFile(fallbackLangID) || DoLanguageExist(fallbackLangID))
                        {
                            m_currentLanguageID = fallbackLangID;
                        }
                    }
                }
                if (string.IsNullOrEmpty(m_currentLanguageID))
                {
                    m_currentLanguageID = DEFAULT_LANGUAGE_ID;

                    if (!DoLanguageExist(DEFAULT_LANGUAGE_ID))
                    {
                        ReadLanguageFile(DEFAULT_LANGUAGE_ID);
                    }
                }

                if (m_languages.ContainsKey(m_currentLanguageID))
                {
                    m_currentLanguage = m_languages[m_currentLanguageID];
                }
            }
コード例 #2
0
            private bool ReadLanguageFile(string languageId)
            {
                string    fileName         = BASEFILENAME + languageId + FILEEXTENSION;
                string    templateFileName = Path.Combine(FILEFOLDER, Path.GetFileNameWithoutExtension(fileName));
                TextAsset asset            = ((TextAsset)Resources.Load(templateFileName));

                if (asset != null)
                {
                    string            fileJSON    = asset.text;
                    LocalisedLanguage newLanguage = new LocalisedLanguage();

                    try
                    {
                        Hashtable data = JSON.JsonDecode(fileJSON) as Hashtable;
                        newLanguage.ParseJsonData(data);
                    }
                    catch (Exception je)
                    {
                        UnityEngine.Debug.Log("The text file is not in JSON format, " + je.ToString());
                    }

                    if (m_languages.ContainsKey(newLanguage.ID))
                    {
                        if (newLanguage.Version > m_languages[newLanguage.ID].Version)
                        {
                            m_languages.Remove(newLanguage.ID);
                            m_languages.Add(newLanguage.ID, newLanguage);
                            return(true);
                        }
                    }
                    else
                    {
                        m_languages.Add(newLanguage.ID, newLanguage);
                        return(true);
                    }
                }

                return(false);
            }