Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public MainPageViewModel()
 {
     getLangs();
     NewWord = new TranslateData()
     {
         Word = "example", FromLanguage = "en", ToLanguage = "cs"
     };
 }
Esempio n. 4
0
    /// <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"];
                        }
                    }
                }
            }
        }
    }
Esempio n. 5
0
        // 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.";
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        //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;
        }
Esempio n. 9
0
        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));
            }
        }
Esempio n. 10
0
 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)));
 }
Esempio n. 11
0
 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)));
 }
Esempio n. 12
0
 // 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)));
 }