Exemplo n.º 1
0
        private static async System.Threading.Tasks.Task TestTextTranslation(string baseUrl, ClassiiiUser classiiiUser)
        {
            string[] text = new string[] { "hello" };
            TextTranslationOption option = new TextTranslationOption
            {
                FieldId    = 1,
                TargetLang = "ja",
                SourceLang = "en"
            };
            TextTranslationClient textTranslationClient = new TextTranslationClient(baseUrl);

            //  同期テキスト翻訳
            TextTranslationResult[] ret = await textTranslationClient.TranslateTextBySyncModeAsync(classiiiUser, option, text);

            Debug.Assert(ret.Length == 1);
            Debug.Assert(ret[0].sourceText == "hello");
            Debug.Assert(ret[0].translatedText == "こんにちは");


            //  非同期テキスト翻訳
            TranslateTextByAsyncModeFlow flow = new TranslateTextByAsyncModeFlow(baseUrl);

            ret = await flow.TranslateFlowAsync(classiiiUser, option, text);

            Debug.Assert(ret.Length == 1);
            Debug.Assert(ret[0].sourceText == "hello");
            Debug.Assert(ret[0].translatedText == "こんにちは");
        }
        public async Task <string> TranslateTextByAsyncModeAsync(
            RozettaApiUser rozettaApiUser,
            TextTranslationOption option,
            string[] text)
        {
            string url = baseUrl + "/translate/async";

            string jwtToken = await HttpUtils.GenerateJwtDataAsync(
                rozettaApiUser.AccessKey,
                rozettaApiUser.SecretKey,
                this.defautDuration,
                this.jwtTokenRequestUrl);

            Dictionary <string, object> headers = HttpUtils.BuildJwtHeaders(jwtToken);

            Dictionary <string, object> body = BuildBody(option, rozettaApiUser.ContractId, text);

            var content = await HttpUtils.SendAsync(HttpMethod.Post, url, headers, body);

            var byteArray = await content.ReadAsByteArrayAsync();

            var responseString = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);

            var definition = new { status = "", data = new { queueId = "" } };

            var serverResp = JsonConvert.DeserializeAnonymousType(responseString, definition);

            if (serverResp.status != ResponseStatus.Success)
            {
                throw new Exception("text translation failed");
            }

            return(serverResp.data.queueId);
        }
        private static Dictionary <string, object> BuildBody(TextTranslationOption option, string contractId, string[] text)
        {
            Dictionary <string, object> body = new Dictionary <string, object>();

            body.Add("fieldId", option.FieldId.ToString());
            body.Add("targetLang", option.TargetLang);
            body.Add("sourceLang", option.SourceLang);
            body.Add("text", text);
            if (contractId != null)
            {
                body.Add("contractId", contractId);
            }
            if (option.AutoSplit != null)
            {
                body.Add("autoSplit", option.AutoSplit);
            }
            if (option.Type != null)
            {
                body.Add("type", option.Type);
            }
            if (option.RemoveFakeLineBreak != null)
            {
                body.Add("removeFakeLineBreak", option.RemoveFakeLineBreak);
            }
            return(body);
        }
Exemplo n.º 4
0
        public async Task <TextTranslationResult[]> TranslateTextBySyncModeAsync(
            ClassiiiUser classiiiUser,
            TextTranslationOption option,
            string[] text)
        {
            string url = baseUrl + "/translate";

            Dictionary <string, object> headers = HttpUtils.BuildHeaders(classiiiUser, url);

            Dictionary <string, object> body = BuildBody(option, classiiiUser.ContractId, text);

            var content = await HttpUtils.SendAsync(HttpMethod.Post, url, headers, body);

            var byteArray = await content.ReadAsByteArrayAsync();

            var responseString = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);

            var definition = new { status = "", data = new { taskId = "", translationResult = new TextTranslationResult[] { } } };

            var serverResp = JsonConvert.DeserializeAnonymousType(responseString, definition);

            if (serverResp.status != ResponseStatus.Success)
            {
                throw new Exception("text translation failed");
            }

            return(serverResp.data.translationResult);
        }
Exemplo n.º 5
0
        private static async System.Threading.Tasks.Task TestUserDictionary(string baseUrl, RozettaApiUser rozettaApiUser)
        {
            UserDictionaryClient userDictionaryClient = new UserDictionaryClient(baseUrl);

            UserDictionaryItem item = new UserDictionaryItem {
                fromLang = "en", fromText = "hello", toLang = "ja", toText = "おはよう"
            };

            bool bRet;

            string[] text = new string[] { "hello" };
            TextTranslationOption option = new TextTranslationOption
            {
                FieldId    = 1,
                SourceLang = "en",
                TargetLang = "ja"
            };
            TextTranslationClient textTranslationClient = new TextTranslationClient(baseUrl);

            TextTranslationResult[] textTranslationResults;
            UserDictionaryItem[]    userDictionaryItems;

            // ユーザー辞書を登録
            bRet = await userDictionaryClient.AddUserDictionaryItemAsync(rozettaApiUser, item);

            Debug.Assert(bRet);

            // ユーザー辞書を取得
            userDictionaryItems = await userDictionaryClient.GetUserDictionaryAsync(rozettaApiUser);

            Debug.Assert(userDictionaryItems.Length == 1);
            Debug.Assert(userDictionaryItems[0] == item);

            // ユーザー辞書を確認 -----------------------------------------------------
            textTranslationResults = await textTranslationClient.TranslateTextBySyncModeAsync(rozettaApiUser, option, text);

            Debug.Assert(textTranslationResults.Length == 1);
            Debug.Assert(textTranslationResults[0].sourceText == "hello");
            Debug.Assert(textTranslationResults[0].translatedText == "おはよう");
            // ユーザー辞書を確認 ----------------------------------------------------- end


            // ユーザー辞書を削除
            bRet = await userDictionaryClient.DeleteUserDictionaryItemAsync(rozettaApiUser, userDictionaryItems[0].id);

            Debug.Assert(bRet);

            // ユーザー辞書数を確認
            userDictionaryItems = await userDictionaryClient.GetUserDictionaryAsync(rozettaApiUser);

            Debug.Assert(userDictionaryItems.Length == 0);
        }
        public async Task <TextTranslationResult[]> TranslateFlowAsync(ClassiiiUser classiiiUser, TextTranslationOption option, string[] text)
        {
            this.classiiiUser = classiiiUser;

            this.queueId = await client.TranslateTextByAsyncModeAsync(classiiiUser, option, text);

            if (aTimer != null)
            {
                StopTimer(aTimer);
            }

            aTimer = new System.Timers.Timer();

            aTimer.Interval = Interval;

            aTimer.Elapsed += OnTimedEvent;

            aTimer.AutoReset = true;

            aTimer.Enabled = true;

            while (!done)
            {
                Thread.Sleep(1000);
            }

            return(result);
        }