コード例 #1
0
        public void DetectionValid()
        {
            var service  = new FakeTranslateService();
            var client   = new TranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en", Confidence = 0.5f, IsReliable = true
                        }
                    },
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "fr", Confidence = 0.8f, IsReliable = true
                        }
                    },
                }
            };

            service.ExpectRequest(request, response);
            var result = client.DetectLanguages(inputs);

            // Just check the original text and language.
            Assert.Equal("a", result[0].Text);
            Assert.Equal("en", result[0].Language);

            Assert.Equal("b", result[1].Text);
            Assert.Equal("fr", result[1].Language);
        }
コード例 #2
0
        public void DetectionResultHasNonSingleList(int count)
        {
            var service  = new FakeTranslateService();
            var client   = new TranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                // This time we have the right number of top-level results, but the second
                // result doesn't have a single entry
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en"
                        }
                    },
                    Enumerable.Repeat(new DetectionsResourceItems {
                        Language = "en"
                    }, count).ToList()
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.DetectLanguages(inputs));
        }
コード例 #3
0
        private static String GoogleTranslateText(String text)
        {
            TranslationResult gresult;
            TranslateService  service = new TranslateService(new BaseClientService.Initializer {
                ApiKey = googleCloudKey
            });
            TranslationClientImpl gclient = new TranslationClientImpl(service, TranslationModel.ServiceDefault);

            gresult = gclient.TranslateText(text, LanguageCodes.ChineseTraditional);
            return(gresult.TranslatedText);
        }
コード例 #4
0
        public async Task <string> GetTranslatedText(string text, string from, string to)
        {
            var service = new TranslateService(
                new BaseClientService.Initializer
            {
                ApiKey = _translatorsSettings.Items.Find(i => i.Vendor.ToLower() == Vendors.Google)?.SubscriptionKey
            });
            var client   = new TranslationClientImpl(service);
            var response = await client.TranslateTextAsync(text, to, from);

            return(response.TranslatedText);
        }
コード例 #5
0
        public async Task <string> GetLanguage(string text)
        {
            var service = new TranslateService(
                new BaseClientService.Initializer
            {
                ApiKey = _translatorsSettings.Items.Find(i => i.Vendor.ToLower() == Vendors.Google)?.SubscriptionKey
            });

            var client    = new TranslationClientImpl(service);
            var detection = await client.DetectLanguageAsync(text);

            return(detection.Language);
        }
コード例 #6
0
        public void NonMatchingTranslateResultCount()
        {
            var service = new FakeTranslateService();
            var client  = new TranslationClientImpl(service);
            var inputs  = new string[] { "a", "b" };
            var request = service.Translations.List(new Repeatable <string>(inputs), "en");

            request.Format = FormatEnum.Text;
            var response = new TranslationsListResponse
            {
                // Content is irrelevant; we shouldn't get that far
                Translations = new List <TranslationsResource> {
                    new TranslationsResource()
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.TranslateText(inputs, "en"));
        }
コード例 #7
0
        public static void ConfigureGeneralizationServices(this IServiceCollection services, IConfiguration configuration)
        {
            var generalizationApiKey = configuration.GetSection("Twist_Generalization_ApiKey").Value;

            if (string.IsNullOrEmpty(generalizationApiKey))
            {
                throw new ArgumentException("Value cannot be null or empty", nameof(generalizationApiKey));
            }

            services.AddSingleton <TranslationClientImpl>(p =>
            {
                var service = new TranslateService(new BaseClientService.Initializer {
                    ApiKey = generalizationApiKey
                });
                var client = new TranslationClientImpl(service, TranslationModel.ServiceDefault);

                return(client);
            });

            services.AddSingleton <IGeneralizationService, GeneralizationService>();
        }
コード例 #8
0
        public void NonMatchingDetectionResultCount()
        {
            var service  = new FakeTranslateService();
            var client   = new TranslationClientImpl(service);
            var inputs   = new string[] { "a", "b" };
            var request  = service.Detections.List(new Repeatable <string>(inputs));
            var response = new DetectionsListResponse
            {
                // Content is irrelevant; we shouldn't get that far
                Detections = new List <IList <DetectionsResourceItems> >
                {
                    new List <DetectionsResourceItems> {
                        new DetectionsResourceItems {
                            Language = "en"
                        }
                    }
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.DetectLanguages(inputs));
        }
コード例 #9
0
        public void NonMatchingTranslateResultCount()
        {
            var service = new FakeTranslateService();
            var client  = new TranslationClientImpl(service);
            var inputs  = new string[] { "a", "b" };
            var body    = new TranslateTextRequest
            {
                Q      = inputs,
                Format = "text",
                Target = "en"
            };
            var request  = service.Translations.Translate(body);
            var response = new TranslationsListResponse
            {
                // Content is irrelevant; we shouldn't get that far
                Translations = new List <TranslationsResource> {
                    new TranslationsResource()
                }
            };

            service.ExpectRequest(request, response);
            Assert.Throws <InvalidOperationException>(() => client.TranslateText(inputs, "en"));
        }
コード例 #10
0
        private static void Main(string[] args)
        {
            var service = new TranslateService(new BaseClientService.Initializer {
                ApiKey = GoogleApiKey
            });
            var client  = new TranslationClientImpl(service);
            var results = new List <string>();

            string line;
            var    file = new StreamReader(ToolbarPath);

            while ((line = file.ReadLine()) != null)
            {
                Console.WriteLine(line);

                if (line.Contains("locale_1033"))
                {
                    results.Add(line);

                    var onlyText = RemoveTags(line);

                    var translated = client.TranslateText(onlyText, "es", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1034"));

                    translated = client.TranslateText(onlyText, "fr", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1036"));

                    translated = client.TranslateText(onlyText, "it", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1040"));

                    translated = client.TranslateText(onlyText, "pt", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "2070"));

                    translated = client.TranslateText(onlyText, "de", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1031"));

                    translated = client.TranslateText(onlyText, "zh-cn", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "2052"));

                    translated = client.TranslateText(onlyText, "zh-tw", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1028"));

                    translated = client.TranslateText(onlyText, "ja", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1041"));

                    translated = client.TranslateText(onlyText, "cs", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1029"));

                    translated = client.TranslateText(onlyText, "ru", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1049"));

                    translated = client.TranslateText(onlyText, "pl", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1045"));

                    translated = client.TranslateText(onlyText, "ko", "en", null);
                    results.Add(AddTags(translated.TranslatedText, "1042"));
                }
                else
                {
                    results.Add(line);
                }
            }

            file.Close();
            var translatedRui = new StreamWriter(ToolbarPathCopy);

            foreach (var lineTranslated in results)
            {
                translatedRui.WriteLine(lineTranslated);
            }

            translatedRui.Close();
        }
コード例 #11
0
 public GeneralizationService(TranslationClientImpl client)
 {
     _client = client;
 }