Пример #1
0
        private IEnumerator Process(LanguageCodes sourceLang, List <LanguageCodes> targetLang, string sourceText)
        {
            string sourcText = sourceLang.ToString();
            bool   isError   = false;

            Debug.Log("Word" + " : " + sourceText);
            foreach (var val in targetLang)
            {
                string targetText = val.ToString();

                // if Language code has hyphen such as Chinene ... Hyphen not allow in Enums..
                if (targetText.Contains("_"))
                {
                    targetText = targetText.Replace('_', '-');
                }
                string url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl="
                             + sourcText + "&tl=" + targetText + "&dt=t&q=" + WWW.EscapeURL(sourceText);

                WWW www = new WWW(url);
                yield return(www);

                if (www.isDone)
                {
                    if (string.IsNullOrEmpty(www.error))
                    {
                        var N = JSONNode.Parse(www.text);// Json Parser
                        translatedText = N[0][0][0];
                        print(targetText + " : " + translatedText);
                        OnTranslatedWord(val, translatedText, sourceText);
                    }
                    else
                    {
                        //isError = true;
                        InternetNotWorking();
                        yield break;
                    }
                }
            }
            if (!isError)
            {
                _controller.ValueChange(db.GetDB().Count, db.GetList().Count);
                db.OnTranslated();
            }
        }
        void DisplayMainArea()
        {
            //Set Source Text
            EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
            languageDatabase.sourceLanguage = (Languages)EditorGUI.EnumPopup(GUILayoutUtility.GetRect(0, 10.0f, GUILayout.Width(500)), "Source Lanaguage", languageDatabase.sourceLanguage);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            EditorGUILayout.Separator();
            EditorGUILayout.Space();
            EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true));
            EditorGUILayout.Space();

            // Get Each Word
            _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition, "box", GUILayout.ExpandHeight(true));
            for (int i = 0; i < count; i++)
            {
                EditorGUI.BeginDisabledGroup(i < (count - 1));
                EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
                GUILayout.Label("Word", GUILayout.Width(40));
                dataList[i].word         = EditorGUILayout.TextField(new GUIContent(""), dataList[i].word, GUILayout.Width(200)).ToLower();
                dataList[i].translatedTo = (long)((Languages)EditorGUI.EnumMaskPopup(GUILayoutUtility.GetRect(0, 10f, GUILayout.ExpandWidth(true)), "Target Languages", (Languages)dataList[i].translatedTo));
                EditorGUI.EndDisabledGroup();
                EditorGUI.BeginDisabledGroup(!(i < (languageDatabase.GetDB().Count)));
                if (GUILayout.Button("Edit", GUILayout.Width(64)))
                {
                    EditWordMeaning(i);
                }
                EditorGUI.EndDisabledGroup();
                if (GUILayout.Button("Remove", GUILayout.Width(64)))
                {
                    if (count == 1)
                    {
                        return;
                    }
                    count--;
                    dataList.RemoveAt(i);
                    languageDatabase.Remove(i);
                }
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndScrollView();
            EditorGUILayout.BeginHorizontal();

            // After type word Press Add Button
            if (GUILayout.Button("Add Word", GUILayout.Width(100)))
            {
                if (!dataList[count - 1].word.Equals("") && dataList[count - 1].translatedTo != 0)
                {
                    languageDatabase.Add(dataList[count - 1]);
                    dataList.Add(new LanguageData());
                    count++;
                }
                else
                {
                    ShowNotification(new GUIContent("Word or Language not Set !"));
                }
            }

            // Save All
            if (GUILayout.Button("Save All", GUILayout.Width(100)))
            {
                isSave = true;
                EditorUtility.SetDirty(languageDatabase);
                ShowNotification(new GUIContent("SAVE !"));
            }

            // Press Translate and Editor will play
            if (GUILayout.Button("Traslate", GUILayout.Width(100)))
            {
                if (isSave)
                {
                    isSave = false;
                    #if UNITY_EDITOR
                    EditorApplication.isPlaying = true;
                    #endif
                }
                else
                {
                    ShowNotification(new GUIContent("Press Save All then Translate !"));
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            EditorGUILayout.EndVertical();
        }