public void AddTableName(string oldName, string newName, string key, string output, string type, string CSDirPath, string CSClassName) { //理论上的话是没有相同的oldName的 if (_dic.ContainsKey(oldName)) { return; } TranslateData data = new TranslateData(); data.newFileName = newName; data.key = key; //处理一下output output = output.Replace(" ", ""); String[] strs = output.Split(','); for (int i = 0; i < strs.Length; i++) { strs[i] = strs[i].Replace(" ", ""); } data.outputStrs = strs.ToList(); String[] types = type.Split(','); for (int i = 0; i < types.Length; i++) { types[i] = types[i].Replace(" ", ""); } data.CSTypes = types.ToList(); data.CSDirPath = CSDirPath; data.CSClassName = CSClassName; //添加数据 _dic.Add(oldName, data); }
public List <string> Translate(string lang, string text) { var requestString = String.Format("https://translate.yandex.net/api/v1.5/tr.json/translate?key={0}&text={1}&lang={2}&format={3}", _apiKey, text, lang, "plain"); var request = WebRequest.Create(requestString); if ((requestString.Length > 10240) && (request.Method.StartsWith("GET"))) { throw new ArgumentException("Text is too long (>10Kb)"); } var response = request.GetResponse(); TranslateData translateData; var yandexDataContractSerializer = new DataContractJsonSerializer(typeof(TranslateData)); try { translateData = (TranslateData)yandexDataContractSerializer.ReadObject(response.GetResponseStream()); } catch (Exception) { translateData = new TranslateData(); translateData.Text = new List <string>(); } return(translateData.Text); }
public MainPageViewModel() { getLangs(); NewWord = new TranslateData() { Word = "example", FromLanguage = "en", ToLanguage = "cs" }; }
/// <summary> /// 경로에서 xml을 읽어서 dataMap에 저장. /// </summary> /// <param name="xmlPath"></param> /// <param name="langCode"></param> public void ReadXMLDatas(string xmlPath) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(xmlPath); var files = di.GetFiles("*.xml"); foreach (var data in files) { string lang = ""; XmlReader reader = XmlReader.Create(data.FullName); TranslateData targetTranData = null; string fileName = data.Name; string modName = data.Name; while (reader.Read()) { if (reader.IsStartElement()) { if (reader.Name == "tag") { lang = reader["language"]; } if (reader.Name == "string") { var id = reader["id"]; //기존 번역이 불러와진 상태. if (dataMap.ContainsKey(id)) { targetTranData = dataMap[id]; } else //기존 번역이 불러와지지 않은 상태 { //기존 번역에 대한 번역 정보 작성. targetTranData = new TranslateData(); targetTranData.Id = id; targetTranData.Filename = data.Name; if (lang != "한국어") { targetTranData.Module = GetMoudleNameByPath(di.FullName); } dataMap.Add(id, targetTranData); } //언어 파악 if (lang == "한국어") { targetTranData.Translate = reader["text"]; } if (lang == "English") { targetTranData.Original = reader["text"]; } } } } } }
// Translate gombnyomásakor hívódik meg. Szerepe az, hogy miután az APIból megérkeztek az adatok, a wordResult tagváltozóba elmenti az értékeket. public async Task translate(TranslateData data) { var service = new TranslateService(); var wordResults = await service.GetWordResultAsync(data); // Debug.WriteLine(wordResults.Def[0].Tr[0].Text); if (wordResults != null && wordResults.Def != null && wordResults.Def.Count != 0) { TranslatedWord = wordResults.Def[0].Tr[0].Text; } else { TranslatedWord = "Not found."; } }
public static async Task <string> Translate(string text, string language) { //var uri = "https://api.microsofttranslator.com/V2/Http.svc/translate?" + $"to={language}&text={encodedText}"; var uri = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0"; // + $"to={language}&text={encodedText}"; TranslateData tdata = new TranslateData { Text = text }; object[] body = new object[] { tdata }; var requestBody = JsonConvert.SerializeObject(body); var result = ""; using (var request = new HttpRequestMessage()) { request.Method = HttpMethod.Post; // Construct the URI and add headers. request.RequestUri = new Uri(uri + $"&to={language}"); request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json"); // Send the request and get response. HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false); if (response.IsSuccessStatusCode) { result = await response.Content.ReadAsStringAsync(); TranslationResult[] deserializedOutput = JsonConvert.DeserializeObject <TranslationResult[]>(result); // Iterate over the deserialized results. foreach (TranslationResult o in deserializedOutput) { // Print the detected input language and confidence score. Console.WriteLine("Detected input language: {0}\nConfidence score: {1}\n", o.DetectedLanguage.Language, o.DetectedLanguage.Score); // Iterate over the results and print each translation. foreach (Translation t in o.Translations) { Console.WriteLine("Translated to {0}: {1}", t.To, t.Text); result = t.Text; } } } } // var result = await client.GetStreamAsync(uri); return(result); }
public void addTableName(string oldName, string newName, string key, string output) { //理论上的话是没有相同的oldName的 if (_dic.ContainsKey(oldName)) { return; } TranslateData data = new TranslateData(); data.newFileName = newName; data.key = key; //处理一下output output = output.Replace(" ", ""); String[] strs = output.Split(','); data.outputStrs = strs.ToList(); //添加数据 _dic.Add(oldName, data); }
//Synonym keresésénél használatos függvény, a TranslateService szolgáltatásait használja. public async Task getSynonym(TranslateData data) { string tolang = data.ToLanguage; data.ToLanguage = data.FromLanguage; var service = new TranslateService(); var wordResults = await service.GetWordResultAsync(data); if (wordResults != null && wordResults.Def != null && wordResults.Def.Count != 0) { TranslatedWord = wordResults.Def[0].Tr[0].Text; } else { TranslatedWord = "No synonym found."; } data.ToLanguage = tolang; }
public void GetTranslate(long id, string lan, TranslateCallback callback) { if (callback == null || !_chatContent.ContainsKey(id)) { return; } TranslateData translateData = _chatContent[id]; if (!translateData.IsTranslated(lan)) { Console.WriteLine("聊天服务器未记录当前语言的翻译,向翻译服务器发起请求"); _translateServer.GetTranslate(lan, translateData.OriginContent, delegate(string result) { translateData.AddTranslate(lan, result); callback(result); }); } else { Console.WriteLine("聊天服务器存在已翻译内容,直接向客户端回复"); callback(translateData.GetTranslate(lan)); } }
public static async UniTask TranslateTowardsLocal(this Transform From, TranslateData moveInfo) { await WhenAll(From.MoveTowardsLocal(moveInfo.To.position, moveInfo.MoveSpeed), From.RotateTowardsLocal(new RotateData(moveInfo.To.rotation, moveInfo.RotateSpeed))); }
public static async UniTask TranslateTowardsTime(this Transform From, TranslateData moveInfo, Vector3 anchor, byte time = 6) { await WhenAll(From.MoveTowards(moveInfo.To.position + anchor, moveInfo.MoveSpeed), From.RotateLerp(new RotateData(moveInfo.To.rotation, moveInfo.RotateSpeed, time))); }
// Egy adott szó fordítását kéri le az APIból aszinkron módon, így amíg megérkezik az adat nem fagy be az alkalmazás. public async Task <WordResult> GetWordResultAsync(TranslateData data) { return(await GetAsync <WordResult>(new Uri(serverUrl, "api/v1/dicservice.json/" + "lookup?key=" + ApiKey + "&lang=" + data.FromLanguage + "-" + data.ToLanguage + "&text=" + data.Word))); }