Ejemplo n.º 1
0
    private void DisplaySelectedTranslationConfiguration(TranslationConfigurationSO so)
    {
        List <string> knownLanguageDisplayNames = showAllLanguages ?
                                                  _languages.getListOfIdentifiersFromLanguageList() :
                                                  _languages.getSimplifiedListOfIdentifiersFromLanguageList();

        int sourceLanguageIndex = knownLanguageDisplayNames.IndexOf(so.sourceLanguage.name);

        if (sourceLanguageIndex < 0)
        {
            sourceLanguageIndex = 0;
        }
        EditorGUILayout.LabelField(string.Format("group identifier:{0}", so.translation_set_group));
        EditorGUILayout.LabelField(string.Format("source language:{0}", so.sourceLanguage.name));

        sourceLanguageIndex = EditorGUILayout.Popup(sourceLanguageIndex, knownLanguageDisplayNames.ToArray());
        if (GUILayout.Button("SET Source to this language" + knownLanguageDisplayNames[sourceLanguageIndex]))
        {
            so.sourceLanguage = _languages.getLangaugeByName(knownLanguageDisplayNames[sourceLanguageIndex]);
        }

        EditorGUILayout.LabelField("destination language(s):");
        TransfluentLanguage removeThisLang = null;

        foreach (TransfluentLanguage lang in so.destinationLanguages)
        {
            GUILayout.Space(10);
            EditorGUILayout.LabelField("destination language:" + lang.name);
            if (GUILayout.Button("Remove", GUILayout.Width(100)))
            {
                removeThisLang = lang;
            }
        }
        if (removeThisLang != null)
        {
            so.destinationLanguages.Remove(removeThisLang);
            saveCurrentConfig();
        }

        GUILayout.Space(30);

        newDestinationLanguageIndex = EditorGUILayout.Popup(newDestinationLanguageIndex, knownLanguageDisplayNames.ToArray());

        if (GUILayout.Button("Create a new Destination Language"))
        {
            TransfluentLanguage lang = _languages.getLangaugeByName(knownLanguageDisplayNames[newDestinationLanguageIndex]);
            if (so.sourceLanguage.id == lang.id)
            {
                EditorUtility.DisplayDialog("Error", "Cannot have the source language be the destination language", "OK", "");
                return;
            }
            foreach (TransfluentLanguage exists in so.destinationLanguages)
            {
                if (exists.id != lang.id)
                {
                    continue;
                }
                EditorUtility.DisplayDialog("Error", "You already have added this language: " + lang.name, "OK", "");
                return;
            }

            so.destinationLanguages.Add(lang);

            GUILayout.Space(10);

            saveCurrentConfig();
        }
        GUILayout.Space(10);
        var translationQualityStrings = new List <string>()
        {
            OrderTranslation.TranslationQuality.NATIVE_SPEAKER.ToString(),
            OrderTranslation.TranslationQuality.PROFESSIONAL_TRANSLATOR.ToString(),
            OrderTranslation.TranslationQuality.PAIR_OF_TRANSLATORS.ToString(),
        };
        int currentIndex = translationQualityStrings.IndexOf(so.QualityToRequest.ToString());
        int newIndex     = EditorGUILayout.Popup("Desired Translation Quality:", currentIndex, translationQualityStrings.ToArray());

        if (newIndex != currentIndex)
        {
            so.QualityToRequest = (OrderTranslation.TranslationQuality)newIndex + 1;
        }
    }