Exemplo n.º 1
0
    /// <summary>
    /// Create EN localization from current
    /// </summary>
    public void CreateFiles()
    {
        m_languages = new LanguagesList();
        m_languages.m_languages.Add("EN_en");
        m_languages.m_languages.Add("RU_ru");
        File.WriteAllText(CLangListPath, JsonUtility.ToJson(m_languages));
        if (m_history == null)
        {
            m_history = new HistoryLocalization();
        }
        if (m_items == null)
        {
            m_items = new ItemsLocalization();
        }
        if (m_ui == null)
        {
            m_ui = new UiLocalization();
        }

        foreach (AbstractObject itm in AbstractObject.m_sEverything)
        {
            m_items.m_itemList.Add(new LocalizationItem(itm.m_name, itm.m_text));
        }

        m_items.m_itemDictionary = new Dictionary <string, string>();
        foreach (LocalizationItem itm in m_items.m_itemList)
        {
            m_items.m_itemDictionary.Add(itm.m_name, itm.m_text);
        }

        CombinePath();
        File.WriteAllText(m_sHistoryFullPath + ".json", JsonUtility.ToJson(m_history));
        File.WriteAllText(m_sItemsFullPath + ".json", JsonUtility.ToJson(m_items));
        File.WriteAllText(m_sUiFullPath + ".json", JsonUtility.ToJson(m_ui));
    }
Exemplo n.º 2
0
    /// <summary>
    /// Load current localization
    /// Part of ISerializationCallbackReceiver
    /// </summary>
    public void Load()
    {
        try
        {
#if UNITY_WEBGL || UNITY_ANDROID
            var    ms         = Camera.main.GetComponent <MainScript>();
            var    networking = ms.m_networking;
            string loc        = SCurrentLocalization.m_languages.m_languages[SCurrentLocalization.m_currentLanguage];
            networking.GetLocalization(loc, 1, delegate(string answerUi)
            {
                m_ui = JsonUtility.FromJson <UiLocalization>(NetworkManager.ByteToJson(answerUi));
            });
            networking.GetLocalization(loc, 2, delegate(string answerItm)
            {
                m_items = new ItemsLocalization();
                m_items = JsonUtility.FromJson <ItemsLocalization>(NetworkManager.ByteToJson(answerItm));

                if (m_items?.m_itemList != null)
                {
                    FillItemDictionary();
                }
            });
            networking.GetLocalization(loc, 3, delegate(string answerHis)
            {
                m_history = JsonUtility.FromJson <HistoryLocalization>(NetworkManager.ByteToJson(answerHis));
                m_onLanguageChanged?.Invoke();
            });
#else
            Console.WriteLine("UnityWebGL does not works");
            var hisAss = Resources.Load <TextAsset>(m_sHistoryFullPath);
            m_history = JsonUtility.FromJson <HistoryLocalization>(hisAss.text);
            var itmAss = Resources.Load <TextAsset>(m_sItemsFullPath);
            m_items = JsonUtility.FromJson <ItemsLocalization>(itmAss.text);
            FillItemDictionary();
            var uiAss = Resources.Load <TextAsset>(m_sUiFullPath);
            m_ui = JsonUtility.FromJson <UiLocalization>(uiAss.text);
#endif
        }
        catch (Exception ex)
        {
            Debug.Log(ex);
        }
    }