コード例 #1
0
        public static (List <LocalizedLanguageElement> localizedLanguages, bool withWarnings) ParseTranslationFile()
        {
            string translationsFile = LocalizatorLocalFiles.ReadLocalizationFile();
            List <LocalizedLanguageElement> localizedLanguages = new List <LocalizedLanguageElement>();
            bool withWarnings = false;

            if (translationsFile != null)
            {
                string[] translationsLine = translationsFile.Split('\n');
                if (translationsLine.Length > 0)
                {
                    localizedLanguages.Clear();
                    string[] line = translationsLine[0].Trim().Split('\t');

                    for (int i = 0; i < line.Length; i++)
                    {
                        LocalizedLanguageElement newLanguage = new LocalizedLanguageElement(ParseSystemLanguage(line[i]));
                        localizedLanguages.Add(newLanguage);
                    }

                    for (int j = 1; j < translationsLine.Length; j++)
                    {
                        line = translationsLine[j].Trim().Split('\t');
                        int countTranslationsInLine = line.Length - 1;

                        if (line.Length == 1 && string.Equals(line[0], ""))
                        {
                            continue;
                        }

                        if (countTranslationsInLine != localizedLanguages.Count)
                        {
                            Debug.LogWarning($"<color=yellow>SIMPLE-LOCALIZATOR WARNING</color>: The key '{line[0].Trim()}' is not translated into all languages!");
                            withWarnings = true;
                        }

                        if (line.Length > 1)
                        {
                            for (int k = 0; k < countTranslationsInLine; k++)
                            {
                                localizedLanguages[k].AddTranlsation(new LocalizedTextElement(line[0].Trim(), line[k + 1].Trim().NewlineReplacer()));
                            }
                        }
                    }
                }
                else
                {
                    Debug.LogError("<color=yellow>SIMPLE-LOCALIZATOR ERROR</color>: Translations file is empty!");
                    withWarnings = true;
                }
            }
            else
            {
                Debug.LogError("<color=yellow>SIMPLE-LOCALIZATOR ERROR</color>: Translations file doesn't exist!");
                withWarnings = true;
            }

            return(localizedLanguages, withWarnings);
        }
コード例 #2
0
        private static IEnumerator StartLoadingFile(string link, Action onLoadedEnded)
        {
            UnityWebRequest request = UnityWebRequest.Get(link);

            request.timeout = LocalizatorSettings.DownloadingTimeout;
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                Debug.LogWarning("<color=yellow>SIMPLE-LOCALIZATOR ERROR</color>: Network or http error on downloading localizator file.");
                onLoadedEnded?.Invoke();
            }
            else
            {
                LocalizatorLocalFiles.WriteLocalizationFile(request.downloadHandler.text, onLoadedEnded);
            }

            request.Dispose();
        }