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(); }