Esempio n. 1
0
    public IEnumerator LoadJsonLanguageData(string languageCode)
    {
        yield return(LoadFileContents(languageCode));

        try
        {
            loadedLanguage = languageCode;

            loadedData          = JsonUtility.FromJson <LocalizationData>(loadedJsonText);
            localizedDictionary = new Dictionary <string, string>(loadedData.strings.Length);

            foreach (LocalizationItem item in loadedData.strings)
            {
                localizedDictionary.Add(item.key, item.value);
            }

            ready  = true;
            loaded = true;
        } catch (Exception e) {
            GameSettings.MyDebug(e.Message);

            PlayerPrefs.DeleteKey("LanguageCode");
            SceneSwitcher.LoadScene2(GameSettings.SCENE_LANGUAGE_SELECT);
        }
    }
        private Binary PublishLocalizationData(IEnumerable <Binary> binaries, Component relatedComponent)
        {
            ComponentTemplatesFilter ctFilter = new ComponentTemplatesFilter(Session)
            {
                AllowedOnPage = false,
                BaseColumns   = ListBaseColumns.IdAndTitle
            };
            const string      dataPresentationTemplateTitle = "Generate Data Presentation";
            ComponentTemplate dataPresentationTemplate      = Publication.GetComponentTemplates(ctFilter).FirstOrDefault(ct => ct.Title == dataPresentationTemplateTitle);
            string            dataPresentationUri           = dataPresentationTemplate?.Id ?? string.Empty;

            string localizationId = Publication.Id.ItemId.ToString();

            List <SiteLocalizationData> siteLocalizations = DetermineSiteLocalizations(Publication);

            LocalizationData localizationData = new LocalizationData
            {
                IsDefaultLocalization       = siteLocalizations.First(p => p.Id == localizationId).IsMaster,
                IsXpmEnabled                = IsXpmEnabled,
                MediaRoot                   = Publication.MultimediaUrl,
                SiteLocalizations           = siteLocalizations.ToArray(),
                ConfigStaticContentUrls     = binaries.Select(b => b.Url).ToArray(),
                DataPresentationTemplateUri = dataPresentationUri
            };

            return(AddJsonBinary(localizationData, relatedComponent, _configStructureGroup, "_all", variantId: "config-bootstrap"));
        }
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string> ();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData> (dataAsJson);

            // 因为 Unity 不支持 无序 字典等结构的 序列化,因此我们需要将其 转化为数组,使其能够序列化。
            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items [i].key, loadedData.items [i].value);
            }

            Debug.Log("Data loaded, dictiory Contains:" + localizedText.Count);
        }
        else
        {
            Debug.LogError("cannot find file!");
        }

        isReady = true;
    }
Esempio n. 4
0
    public List <LocalizationData> localizationDataList;      //국가데이터 테이블 정보

    //테이블 파싱
    public void ParseTable(JsonData jData)
    {
        //초기화
        if (localizationDataList != null)
        {
            localizationDataList.Clear();
            localizationDataList = null;
        }

        //생성
        localizationDataList = new List <LocalizationData>();

        //파싱
        for (int a = 0; a < jData.Count; a++)
        {
            LocalizationData data = new LocalizationData();

            // 언어 이름
            data.id = JsonParser.ToString(jData[a]["id"]);

            // 언어로 표현할 텍스트
            data.localizingText = JsonParser.ToString(jData[a]["localizingText"]);


            // 언어 이름(텍스트)
            data.languageName = JsonParser.ToString(jData[a]["languageName"]);

            //입력
            localizationDataList.Add(data);
        }

        //Debug.Log("ParseTable Ok");
    }
Esempio n. 5
0
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();
//#if UNITY_EDITOR
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

//#elif UNITY_ANDROID
//        string filePath = Path.Combine ("jar:file://" + Application.dataPath + "!assets/", fileName);
//#endif
        //if (File.Exists(filePath))
        //{
#if UNITY_EDITOR
        string dataAsJson = File.ReadAllText(filePath);
#elif UNITY_ANDROID
        WWW reader = new WWW(filePath);
        while (!reader.isDone)
        {
        }
        string dataAsJson = reader.text;
#endif
        LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

        for (int i = 0; i < loadedData.items.Length; i++)
        {
            localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
        }
#if UNITY_EDITOR
        Debug.Log("Data loaded, dictionary contains: " + localizedText.Count + " entries");
#endif
        _currentLanguage = fileName.Replace(".json", "");
        isReady          = true;
    }
Esempio n. 6
0
        public static async Task SaveAsync(Stream stream, LocalizationData data)
        {
            string json = System.Text.Json.JsonSerializer.Serialize(data);

            byte[] bytes = json.GetBytes <UTF8Encoding>();
            await stream.WriteAsync(bytes).ConfigureAwait(false);
        }
Esempio n. 7
0
    public void LoadLanguage(string language)
    {
        isReady         = false;
        needUpdate      = true;
        currentLanguage = language;

        string namefile = "localizedText_" + language;

        localizedText = new Dictionary <string, string>();

        TextAsset textasset = Resources.Load <TextAsset>(namefile);

        if (textasset != null)
        {
            string           dataAsJson = textasset.text;
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            Debug.Log("Data loaded, dictionary contains: " + localizedText.Count + " entries.");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }

        isReady = true;
    }
Esempio n. 8
0
    public void AddData(GameObject iObj)
    {
        if (iObj == null)
        {
            return;
        }

        if (m_LocalizationDataDic.ContainsKey(iObj.name))
        {
            GameObject.Destroy(iObj);
            return;
        }

        LocalizationData _LD = iObj.GetComponent <LocalizationData>();

        if (_LD == null)
        {
            GameObject.Destroy(iObj);
            return;
        }

        m_LocalizationDataDic.Add(iObj.name, _LD);

        if (m_LoadedCB != null)
        {
            m_LoadedCB();
            m_LoadedCB = null;
        }
    }
    //public void LoadLocalizedText(string fileName)
    //{
    //    localizedText = new Dictionary<string, string>();
    //    string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

    //    if (!File.Exists(filePath))
    //    {
    //        filePath = Path.Combine(Application.streamingAssetsPath, "localizedText_en.json");
    //    }


    //    string dataAsJson = File.ReadAllText(filePath);
    //    Debug.Log("dataAsJson: " + dataAsJson);

    //    LocalizationData loadedData = JsonUtility.FromJson<LocalizationData>(dataAsJson);
    //    Debug.Log("loadedData.Items.Length: " + loadedData.Items.Length);

    //    for (int i = 0; i < loadedData.items.Length; i++)
    //    {
    //        localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
    //    }

    //    Debug.Log(filePath + " Data loaded, dictionary contains: " + localizedText.Count + " entries");

    //    LocalizationManagerIsReady = true;
    //}

    //public IEnumerator LoadLocalizedText(string fileName)
    //{
    //    localizedText = new Dictionary<string, string>();
    //    var filePath = Path.Combine(Application.streamingAssetsPath + "/", fileName);
    //    string dataAsJson;

    //    if (filePath.Contains("://") || filePath.Contains(":///"))
    //    {
    //        UnityEngine.Networking.UnityWebRequest www = UnityEngine.Networking.UnityWebRequest.Get(filePath);
    //        yield return www.SendWebRequest();
    //        dataAsJson = www.downloadHandler.text;
    //    }
    //    else
    //    {
    //        dataAsJson = File.ReadAllText(filePath);
    //    }

    //    LocalizationData loadedData = JsonUtility.FromJson<LocalizationData>(dataAsJson);

    //    for (int i = 0; i < loadedData.items.Length; i++)
    //    {
    //        localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
    //    }

    //    LocalizationManagerIsReady = true;
    //}

    public IEnumerator LoadLocalizedText(string fileName)
    {
        localizedTextAll = new Dictionary <string, string>();
        foreach (var file in listLocalizedFile)
        {
            var    filePath = Path.Combine(Application.streamingAssetsPath + "/", file);
            string dataAsJson;

            if (filePath.Contains("://") || filePath.Contains(":///"))
            {
                UnityEngine.Networking.UnityWebRequest www = UnityEngine.Networking.UnityWebRequest.Get(filePath);
                yield return(www.SendWebRequest());

                dataAsJson = www.downloadHandler.text;
            }
            else
            {
                dataAsJson = File.ReadAllText(filePath);
            }

            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedTextAll.Add(file + "_" + loadedData.items[i].key, loadedData.items[i].value);
                Debug.Log("localizedTextAll.Add " + file + "_" + loadedData.items[i].key + ", " +
                          loadedData.items[i].value);
            }
        }

        LocalizationManagerIsReady = true;
    }
Esempio n. 10
0
    public void ChangeLocalizedText(string fileName)
    {
        Debug.Log("1");
        localizedText = new Dictionary <string, string>();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            Debug.Log("1");
            localizedText.Clear();
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);
            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }
            Debug.Log("Data Loaded, dictionary contains: " + localizedText.Count + " entries");
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            Debug.Log("1");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }
    }
Esempio n. 11
0
    public void Initialization()
    {
        //로드한다.
        string fileName = PlayerPrefs.GetString("language");

        list = new Dictionary <string, string>();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        Debug.Log(Application.streamingAssetsPath);
        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                list.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            Debug.Log("Data loaded, dictionary contains: " + list.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }

        isReady = true;
    }
    void retrieveLocalizationText(string dataAsJson, int langIndex, SystemLanguage lang)
    {
        LocalUIText.Clear();
        if (dataAsJson != "" && dataAsJson != null)
        {
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                LocalUIText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }
            LocalTextLoaded       = true;
            CurrentSystemLanguage = lang;
            currentLanguage       = langIndex;
            PlayerPrefs.SetInt("LangIndex", currentLanguage);
        }
        else
        {
            LocalTextLoaded = false;
        }

        if (OnLocalizedTextLoaded != null)
        {
            OnLocalizedTextLoaded();
        }

        if (!LocalTextLoaded && loadStart)
        {
            currentLanguage       = 0;
            CurrentSystemLanguage = DefaultSystemLanguage;
        }
    }
Esempio n. 13
0
    // Update is called once per frame
    void Update()
    {
        if (playerDistanceComponent != null)
        {
            if (FlowManager.GetGameState() == GameState.InGame)
            {
                foreach (PlanetDefiner planet in planets.planets)
                {
                    if (!isReachedArray[idx])
                    {
                        if (playerDistanceComponent.neutrinoPercurredDistance >= planet.planetDistance)
                        {
                            scoreText.text = LocalizationData.GetDescription(extraTextBefore)
                                             + " "
                                             + LocalizationData.GetDescription(planet.planetName)
                                             + LocalizationData.GetDescription(extraTextAfter);

                            isReachedArray[idx] = true;
                            StartCoroutine(awaitFunc());
                        }
                    }
                    idx++;
                }
                idx = 0;
            }
        }
    }
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);   // deserialize

            // assign the data from loadedData into the localizedText dictionary
            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            Debug.Log("Data loaded, dictionary contains " + localizedText.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }

        isReady = true;
    }
    public static void LoadLocalisedText(string filename)
    {
        Ready            = false;
        localisedStrings = new Dictionary <string, string>();
        string path = Path.Combine(Application.streamingAssetsPath, filename);
        bool   set  = false;

        LocalizationData data = IOUtility.LoadFromJSON <LocalizationData>(path, out set);

        if (set)
        {
            foreach (KeyValuePair pair in data.keyValuePairs)
            {
                localisedStrings.Add(pair.key, pair.value);
            }
        }
        else
        {
            Debug.LogError("Could not load file at path : " + path);
        }


        Ready = true;
        EventManager.BroadcastEvent(ChangedEventTag);
    }
Esempio n. 16
0
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();

        fileName += ".json";

        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            foreach (LocalizationItem item in loadedData.items)
            {
                localizedText.Add(item.key, item.value);
            }
            Debug.Log("Data Loaded from: " + fileName + ", dictionary contains:" + localizedText.Count + " entries.");
        }
        else
        {
            Debug.LogError("Cannot find localization text file.");
        }

        isReady = true;
    }
    public static void SaveNewLocalizedText(string fileName, string Key, string value)
    {
        List <LocalizationItem> localizedText = new List <LocalizationItem>();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath, System.Text.Encoding.UTF8);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(new LocalizationItem(loadedData.items[i].key, loadedData.items[i].value));
            }

            localizedText.Add(new LocalizationItem(Key, value));
            loadedData.items = localizedText.ToArray();
            Debug.Log(localizedText.ToArray());
            string jsonString = JsonUtility.ToJson(loadedData);
            File.WriteAllText(filePath, jsonString, System.Text.Encoding.UTF8);
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }
    }
Esempio n. 18
0
    public void LoadLocalizedText(string fileName)
    {
        LocalizedDictionary dictionary = new LocalizedDictionary();
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData> (dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                dictionary.localizedText.Add(loadedData.items [i].unloc, loadedData.items [i].loc);
            }

            if (dictionary.localizedText.ContainsKey("LOC_NAME"))
            {
                dictionary.localizedName = dictionary.localizedText ["LOC_NAME"];
            }

            dictionaries.Add(dictionary);

            Debug.Log("Loaded localization data for " + dictionary.localizedName + ", dictionary contains: " + dictionary.localizedText.Count + " entries");
        }
        else
        {
            Debug.Assert(false, "Cannot find file!");
        }
    }
Esempio n. 19
0
        public IAudioSource PlayDialogue(LocalizationData data, System.Action callback, bool clearPreviousCallback = false)
        {
            if (clearPreviousCallback)
            {
                dialogueEndedCallbacks.Clear();
            }

            if (!string.IsNullOrEmpty(LocalizationManager.GetLocalizedAudioFileName(data.Id)))
            {
                AudioClip clip    = GetAudioClip(data);
                var       wrapper = new AudioSourceWrapper(dialogueGroup.Play(clip), dialogueGroup, this);
                if (callback != null)
                {
                    dialogueEndedCallbacks[wrapper] = callback;
                }
                return(wrapper);
            }
            else
            {
                if (callback != null)
                {
                    callback();
                }
            }
            return(null);
        }
Esempio n. 20
0
        public void LoadLocalizedText(SystemLanguage language)
        {
            localizedText = new Dictionary <string, string>();

            string fileName = language.ToString() + ".json";
            string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

            string dataAsJson;

            if (Application.platform == RuntimePlatform.Android)
            {
                UnityWebRequest reader = new UnityWebRequest(filePath);

                dataAsJson = reader.downloadHandler.text;
            }
            else
            {
                dataAsJson = File.ReadAllText(filePath);
            }

            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            isReady = true;
        }
Esempio n. 21
0
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();
        string filePath = Path.Combine(Application.streamingAssetsPath, "Localization/" + fileName);

        if (File.Exists(filePath))
        {
            string           dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.data.Length; i++)
            {
                localizedText.Add(loadedData.data[i].key, loadedData.data[i].value);
            }

            Debug.Log("Localization Manager - Data loaded from File: " + filePath);
            Debug.Log("Localization Manager - Dictionary contains: " + localizedText.Count + "entries");
        }
        else
        {
            Debug.LogError("Localization Manager - Cannot find file: " + filePath);
        }

        IsReady = true;
    }
Esempio n. 22
0
    public Dictionary <string, string> GetDictionaries(string fileName)
    {
        Dictionary <string, string> dictionary = new Dictionary <string, string>();

        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        if (File.Exists(filePath))
        {
            string dataAsJson = File.ReadAllText(filePath);

            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                dictionary.Add(loadedData.items[i].key, loadedData.items[i].value);
            }
            Debug.Log("Data loaded, dictionary contains: " + dictionary.Count + " entries");
            return(dictionary);
        }
        else
        {
            Debug.LogError("Cannot find file");
            return(null);
        }
    }
Esempio n. 23
0
    public static void ChangeLanguage(string lng)
    {
        const string DEFAULT_LANGUAGE = "ru";

        UI.Instance.debugLng.text = lng;

        if (Resources.Load <Object>(lng) == null)
        {
            UI.Instance.debugLng.text = $"{lng}/";
            lng = DEFAULT_LANGUAGE;
            UI.Instance.debugLng.text += lng;
        }

        GameDataManager.data.language = lng;

        localizedText = new Dictionary <string, string>();

        string json = Resources.Load <TextAsset>(lng).text;

        LocalizationData localizationData = JsonUtility.FromJson <LocalizationData>(json);

        foreach (var item in localizationData.items)
        {
            localizedText.Add(item.key, item.value);
        }
    }
Esempio n. 24
0
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();

        if (Application.platform == RuntimePlatform.Android)
        {
            StartCoroutine(LoadLocalizedTextOnAndroid(fileName));
            return;
        }


        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);
        string dataAsJson;


        if (File.Exists(filePath))
        {
            dataAsJson = File.ReadAllText(filePath);

            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            Debug.Log("Data loaded, dictionnary contains: " + localizedText.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find localized text file");
        }

        isReady = true;
    }
Esempio n. 25
0
    //加载本地化文件
    public void LoadLocalizedText(string fileName)
    {
        //创建对应的键值对
        localizedText = new Dictionary <string, string>();

        //获取文件路径
        string filePath = Path.Combine(Application.streamingAssetsPath, fileName);

        //如果文件系统中存在指定路径
        if (File.Exists(filePath))
        {
            //读取文件所有行并且返回一个字符串
            string dataAsJson = File.ReadAllText(filePath);

            /*JSON采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。*/
            /*JsonUtility.FromJson<T>(string json)这种方法使用Unity序列化器; 因此您创建的类型T必须由序列化程序支持。它必须是一个用Serializable属性标记的普通类/结构体。且非继承*/

            //将JSON格式的输入转换成LocalizationData下的属性
            LocalizationData loadData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            //使用生成匹配的键值对
            for (int i = 0; i < loadData.items.Length; i++)
            {
                localizedText.Add(loadData.items[i].key, loadData.items[i].value);
            }

            Debug.Log("Data loaded, dictionary contains: " + localizedText.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }

        isReady = true;
    }
Esempio n. 26
0
    private IEnumerator LoadLocalizedTextOnAndroid(string fileName)
    {
        string filePath;

        filePath = Path.Combine(Application.streamingAssetsPath + Path.DirectorySeparatorChar, fileName);

        string dataAsJson;

        if (filePath.Contains("://") || filePath.Contains(":///"))
        {
            UnityWebRequest www = UnityWebRequest.Get(filePath);
            yield return(www.SendWebRequest());

            dataAsJson = www.downloadHandler.text;
        }
        else
        {
            dataAsJson = File.ReadAllText(filePath);
        }

        LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

        for (int i = 0; i < loadedData.items.Length; i++)
        {
            localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
        }
        isReady = true;
    }
Esempio n. 27
0
    public void LoadLocalizedText(string fileName)
    {
        localizedText = new Dictionary <string, string>();
        //     string filePath;
        string dataAsJson = "";

        //  filePath = Path.Combine(Application.streamingAssetsPath, fileName);
        dataAsJson = Resources.Load <TextAsset>(fileName).ToString();
        bool fileFound = dataAsJson != "";

        if (fileFound)
        {
            PlayerPrefs.SetString("LanguageSet", fileName);
            LocalizationData loadedData = JsonUtility.FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            smallSize  = loadedData.smallSize;
            normalSize = loadedData.normalSize;
            BigSize    = loadedData.bigSize;
            font       = Resources.Load <Font>(loadedData.font);

            Debug.Log("Data loaded, dictionary contains: " + localizedText.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }

        isReady = true;
    }
    //-------------------------------------------------------------------------

    /// <summary>
    /// Load the selected language.
    /// </summary>
    /// <param name="languageFile">File saving the data for the selected
    /// language</param>
    public void LoadLocalizedData(TextAsset languageFile)
    {
        _localizedText = new Dictionary <string, string> ();

        if (languageFile.text != "")
        {
            string           dataAsJson = languageFile.text;
            LocalizationData loadedData = JsonUtility.
                                          FromJson <LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                _localizedText.Add(loadedData.items[i].key,
                                   loadedData.items[i].value);
            }

            for (int i = 0; i < _texts.Count; i++)
            {
                _texts[i].text.text = GetLocalizedValue(_texts[i].key);
            }

            Debug.Log("Data loaded, dictionary contains: " +
                      _localizedText.Count + " entries");
        }
        else
        {
            Debug.LogError("Cannot find file!");
        }
    }
        private void Start()
        {
            string json = File.ReadAllText(Application.dataPath + "/_project/Localization/LocalizationFile.json");

            _currentLocalizationData = JsonUtility.FromJson <LocalizationData>(json);
            ChooseLocalization(_currentLanguageID);
        }
Esempio n. 30
0
    /** Funcion llamada al seleccionar el idioma
     * string fichero: nombre del fichero con el idioma
     * */
    public void CargarTextoLocalizado(string fichero)
    {
        textoLocalizado = new Dictionary <string, string> ();

        //obtendremos la ruta en la que aparecera el fichero
        string rutaFichero = Path.Combine(Application.streamingAssetsPath, fichero);

        //si el fichero existe
        if (File.Exists(rutaFichero))
        {
            //leemos el fichero entero
            string datosJson = File.ReadAllText(rutaFichero);

            //modelamos el objeto LocalizationData a partir de los datos JSON mediante la libreria JsonUtility
            LocalizationData datosCargados = JsonUtility.FromJson <LocalizationData> (datosJson);


            for (int i = 0; i < datosCargados.items.Length; i++)
            {
                textoLocalizado.Add(datosCargados.items [i].key, datosCargados.items [i].value);
            }

            Debug.Log("Datos de idioma cargados, el diccionario contiene " + textoLocalizado.Count + " datos");
        }
        else
        {
            Debug.LogError("Fichero no encontrado");
        }

        isReady = true;
    }