Beispiel #1
0
        // Add a new phrase to this localization, or return the current one
        public LeanPhrase AddPhrase(string phraseName)
        {
            var phrase = Phrases.Find(p => p.Name == phraseName);

            if (phrase == null)
            {
                phrase = new LeanPhrase();

                phrase.Name = phraseName;

                Phrases.Add(phrase);
            }

            return(phrase);
        }
Beispiel #2
0
        private void DrawTranslations(LeanLocalization localization, LeanPhrase phrase)
        {
            existingLanguages.Clear();

            for (var i = 0; i < phrase.Translations.Count; i++)
            {
                var labelA      = Reserve();
                var valueA      = Reserve(ref labelA, 20.0f);
                var translation = phrase.Translations[i];

                if (translationIndex == i)
                {
                    BeginModifications();
                    {
                        translation.Language = EditorGUI.TextField(labelA, "", translation.Language);
                    }
                    EndModifications();

                    if (GUI.Button(valueA, "X") == true)
                    {
                        MarkAsModified();

                        phrase.Translations.RemoveAt(i); translationIndex = -1;
                    }
                }

                if (EditorGUI.Foldout(labelA, translationIndex == i, translationIndex == i ? "" : translation.Language) == true)
                {
                    translationIndex = i;

                    EditorGUI.indentLevel += 1;
                    {
                        DrawTranslation(translation);
                    }
                    EditorGUI.indentLevel -= 1;

                    EditorGUILayout.Separator();
                }
                else if (translationIndex == i)
                {
                    translationIndex = -1;
                }

                if (existingLanguages.Contains(translation.Language) == true)
                {
                    EditorGUILayout.HelpBox("This phrase has already been translated to this language!", MessageType.Warning);
                }
                else
                {
                    existingLanguages.Add(translation.Language);
                }

                if (localization.Languages.Contains(translation.Language) == false)
                {
                    EditorGUILayout.HelpBox("This translation uses a language that hasn't been set in the localization!", MessageType.Warning);
                }
            }

            for (var i = 0; i < localization.Languages.Count; i++)
            {
                var language = localization.Languages[i];

                if (phrase.Translations.Exists(t => t.Language == language) == false)
                {
                    var labelA = Reserve();
                    var valueA = Reserve(ref labelA, 120.0f);

                    EditorGUI.LabelField(labelA, language);

                    if (GUI.Button(valueA, "Create Translation") == true)
                    {
                        MarkAsModified();

                        var newTranslation = new LeanTranslation();

                        newTranslation.Language = language;
                        newTranslation.Text     = phrase.Name;

                        translationIndex = phrase.Translations.Count;

                        phrase.Translations.Add(newTranslation);
                    }
                }
            }
        }
Beispiel #3
0
        private void DrawPhrases(LeanLocalization localization)
        {
            var labelA = Reserve();
            var valueA = Reserve(ref labelA, 35.0f);

            EditorGUI.LabelField(labelA, "Phrases", EditorStyles.boldLabel);

            if (GUI.Button(valueA, "Add") == true)
            {
                MarkAsModified();

                var newPhrase = new LeanPhrase();

                newPhrase.Name = "New Phrase";

                phraseIndex = localization.Phrases.Count;

                localization.Phrases.Add(newPhrase);
            }

            existingPhrases.Clear();

            for (var i = 0; i < localization.Phrases.Count; i++)
            {
                var labelB = Reserve();
                var valueB = Reserve(ref labelB, 20.0f);
                var phrase = localization.Phrases[i];

                if (phraseIndex == i)
                {
                    BeginModifications();
                    {
                        phrase.Name = EditorGUI.TextField(labelB, "", phrase.Name);
                    }
                    EndModifications();

                    if (GUI.Button(valueB, "X") == true)
                    {
                        MarkAsModified();

                        localization.Phrases.RemoveAt(i); phraseIndex = -1;
                    }
                }

                if (EditorGUI.Foldout(labelB, phraseIndex == i, phraseIndex == i ? "" : phrase.Name) == true)
                {
                    if (phraseIndex != i)
                    {
                        phraseIndex      = i;
                        translationIndex = -1;
                    }

                    EditorGUI.indentLevel += 1;
                    {
                        DrawTranslations(localization, phrase);
                    }
                    EditorGUI.indentLevel -= 1;

                    EditorGUILayout.Separator();
                }
                else if (phraseIndex == i)
                {
                    phraseIndex      = -1;
                    translationIndex = -1;
                }

                if (existingPhrases.Contains(phrase.Name) == true)
                {
                    EditorGUILayout.HelpBox("This phrase already exists in the list!", MessageType.Warning);
                }
                else
                {
                    existingPhrases.Add(phrase.Name);
                }
            }
        }
        // Add a new phrase to this localization, or return the current one
        public LeanPhrase AddPhrase(string phraseName)
        {
            var phrase = Phrases.Find(p => p.Name == phraseName);

            if (phrase == null)
            {
                phrase = new LeanPhrase();

                phrase.Name = phraseName;

                Phrases.Add(phrase);
            }

            return phrase;
        }
        private void DrawTranslations(LeanLocalization localization, LeanPhrase phrase)
        {
            existingLanguages.Clear();

            for (var i = 0; i < phrase.Translations.Count; i++)
            {
                var labelA      = Reserve();
                var valueA      = Reserve(ref labelA, 20.0f);
                var translation = phrase.Translations[i];

                if (translationIndex == i)
                {
                    BeginModifications();
                    {
                        translation.Language = EditorGUI.TextField(labelA, "", translation.Language);
                    }
                    EndModifications();

                    if (GUI.Button(valueA, "X") == true)
                    {
                        MarkAsModified();

                        phrase.Translations.RemoveAt(i); translationIndex = -1;
                    }
                }

                if (EditorGUI.Foldout(labelA, translationIndex == i, translationIndex == i ? "" : translation.Language) == true)
                {
                    translationIndex = i;

                    EditorGUI.indentLevel += 1;
                    {
                        DrawTranslation(translation);
                    }
                    EditorGUI.indentLevel -= 1;

                    EditorGUILayout.Separator();
                }
                else if (translationIndex == i)
                {
                    translationIndex = -1;
                }

                if (existingLanguages.Contains(translation.Language) == true)
                {
                    EditorGUILayout.HelpBox("This phrase has already been translated to this language!", MessageType.Warning);
                }
                else
                {
                    existingLanguages.Add(translation.Language);
                }

                if (localization.Languages.Contains(translation.Language) == false)
                {
                    EditorGUILayout.HelpBox("This translation uses a language that hasn't been set in the localization!", MessageType.Warning);
                }
            }

            for (var i = 0; i < localization.Languages.Count; i++)
            {
                var language = localization.Languages[i];

                if (phrase.Translations.Exists(t => t.Language == language) == false)
                {
                    var labelA = Reserve();
                    var valueA = Reserve(ref labelA, 120.0f);

                    EditorGUI.LabelField(labelA, language);

                    if (GUI.Button(valueA, "Create Translation") == true)
                    {
                        MarkAsModified();

                        var newTranslation = new LeanTranslation();

                        newTranslation.Language = language;
                        newTranslation.Text     = phrase.Name;

                        translationIndex = phrase.Translations.Count;

                        phrase.Translations.Add(newTranslation);
                    }
                }
            }
        }
        private void DrawPhrases(LeanLocalization localization)
        {
            var labelA = Reserve();
            var valueA = Reserve(ref labelA, 35.0f);

            EditorGUI.LabelField(labelA, "Phrases", EditorStyles.boldLabel);

            if (GUI.Button(valueA, "Add") == true)
            {
                MarkAsModified();

                var newPhrase = new LeanPhrase();

                newPhrase.Name = "New Phrase";

                phraseIndex = localization.Phrases.Count;

                localization.Phrases.Add(newPhrase);
            }

            existingPhrases.Clear();

            for (var i = 0; i < localization.Phrases.Count; i++)
            {
                var labelB = Reserve();
                var valueB = Reserve(ref labelB, 20.0f);
                var phrase = localization.Phrases[i];

                if (phraseIndex == i)
                {
                    BeginModifications();
                    {
                        phrase.Name = EditorGUI.TextField(labelB, "", phrase.Name);
                    }
                    EndModifications();

                    if (GUI.Button(valueB, "X") == true)
                    {
                        MarkAsModified();

                        localization.Phrases.RemoveAt(i); phraseIndex = -1;
                    }
                }

                if (EditorGUI.Foldout(labelB, phraseIndex == i, phraseIndex == i ? "" : phrase.Name) == true)
                {
                    if (phraseIndex != i)
                    {
                        phraseIndex      = i;
                        translationIndex = -1;
                    }

                    EditorGUI.indentLevel += 1;
                    {
                        DrawTranslations(localization, phrase);
                    }
                    EditorGUI.indentLevel -= 1;

                    EditorGUILayout.Separator();
                }
                else if (phraseIndex == i)
                {
                    phraseIndex      = -1;
                    translationIndex = -1;
                }

                if (existingPhrases.Contains(phrase.Name) == true)
                {
                    EditorGUILayout.HelpBox("This phrase already exists in the list!", MessageType.Warning);
                }
                else
                {
                    existingPhrases.Add(phrase.Name);
                }
            }
        }