コード例 #1
0
        public static async Task <TranslationResult> TranslateAsync(this string forTranslate, string toLang)
        {
            var translator = new GoogleTranslator();
            var from       = Language.Auto;
            var to         = GoogleTranslator.GetLanguageByISO(toLang);

            var result = await translator.TranslateLiteAsync(forTranslate, from, to)
                         .ConfigureAwait(false);

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// TODO: Refactor this urgently, use a HTML parser
        /// </summary>
        /// <param name="text"></param>
        /// <param name="origin"></param>
        /// <param name="destination"></param>
        /// <returns></returns>
        public string TranslateText(string text, string origin, string destination)
        {
            var translator = new GoogleTranslator();

            Language from = GoogleTranslator.GetLanguageByISO(origin);
            Language to   = GoogleTranslator.GetLanguageByISO(destination);

            TranslationResult result = translator.TranslateLiteAsync(text, from, to).GetAwaiter().GetResult();

            var translated = FixTranslation(result.MergedTranslation);

            return(translated);
        }
コード例 #3
0
        private async Task Translate(TextBox txtSource, TextBox txtDest)
        {
            var translator = new GoogleTranslator();

            Language from = Language.Auto;
            Language to   = GoogleTranslator.GetLanguageByISO("ar");

            TranslationResult result = await translator.TranslateLiteAsync(txtSource.Text, from, to);

            //You can get all text using MergedTranslation property
            string resultMerged = result.MergedTranslation;

            txtDest.Text = resultMerged;
        }
コード例 #4
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

            Language english = GoogleTranslator.GetLanguageByName("English"); // define language this way
            Language russian = Language.Russian;                              // or even this way
            Language french  = GoogleTranslator.GetLanguageByISO("fr");       // you could also use ISO639 value

            //TranslationResult result = Translator.TranslateAsync("Hello. How are you?", english, russian).GetAwaiter().GetResult();

            Language          cn     = Language.ChineseSimplified; // or even this way
            TranslationResult result = Translator.TranslateAsync("Hello. How are you?", english, cn).GetAwaiter().GetResult();

            Console.WriteLine($"Result 1: {result.MergedTranslation}");

            TranslationResult result1 = Translator.TranslateAsync("今天是你的生日,我的中国!", cn, english).GetAwaiter().GetResult();

            Console.WriteLine($"Result 1-1: {result1.MergedTranslation}");

            TranslationResult result2 =
                Translator.TranslateAsync(new TranslateItem("The quick brown fox jumps over the lazy dog. Brown fox"))
                .GetAwaiter()
                .GetResult();

            for (var i = 0; i < result2.FragmentedTranslation.Length; i++)
            {
                var part = result2.FragmentedTranslation[i];
                Console.WriteLine($"Result 2.{i} = {part}");
            }

            //TranslationResult result3 =
            //	Translator.TranslateAsync("Run", english, Language.Dutch)
            //		.GetAwaiter()
            //		.GetResult();

            //foreach (var noun in result3.ExtraTranslations.Noun)
            //{
            //	Console.WriteLine($"{noun.Phrase}: {string.Join(", ", noun.PhraseTranslations)}");
            //}
            Console.ReadLine();
        }
コード例 #5
0
        public async Task <TranslationResult> TranslateAsync(string text, string to, string from = "")
        {
            if (text == null)
            {
                throw new ArgumentNullException(nameof(text));
            }

            if (to == null)
            {
                throw new ArgumentNullException(nameof(to));
            }

            var langFrom = from == string.Empty ? Lang.Auto : GoogleTranslator.GetLanguageByISO(from);
            var langTo   = GoogleTranslator.GetLanguageByISO(to);
            var result   = await _translator.TranslateAsync(text, langFrom, langTo);

            return(new TranslationResult
            {
                Translations = result.FragmentedTranslation
            });
        }
コード例 #6
0
        public async static Task <IList <string> > TranslateDescription(IList <string> list, string isoLanguageTo)
        {
            string description = string.Join("|", list);

            var               translate = new GoogleTranslator();
            Language          fromLang  = Language.Auto;
            Language          from      = GoogleTranslator.GetLanguageByISO(fromLang.FullName);
            Language          to        = GoogleTranslator.GetLanguageByName(isoLanguageTo);
            TranslationResult result    = await translate.TranslateLiteAsync(description, fromLang, to);

            //The result is separated by the suggestions and the '\n' symbols
            string[] resultSeparated = result.FragmentedTranslation;

            //You can get all text using MergedTranslation property
            string resultMerged = result.MergedTranslation;

            //There is also original text transcription
            string transcription = result.TranslatedTextTranscription; // Kon'nichiwa! Ogenkidesuka?

            return(resultMerged.Split('|').Select(x => x.TrimStart()).ToList());
        }
コード例 #7
0
            public async Task Reload()
            {
                TargetChannel = Link.Channel;
                var valueSplit          = Link.Value.Split("|");
                var channelIdString     = valueSplit[0];
                var sourceLanguageISO   = valueSplit[1];
                var targetLanguageISO   = valueSplit[2];
                var lastMessageIdString = valueSplit[3];

                TargetLanguage = GoogleTranslator.GetLanguageByISO(targetLanguageISO);
                SourceLanguage = GoogleTranslator.GetLanguageByISO(sourceLanguageISO);

                if (ulong.TryParse(channelIdString, out ulong channelId))
                {
                    SourceChannel = await Link.Guild.GetTextChannelAsync(channelId).ConfigureAwait(false);
                }

                if (ulong.TryParse(lastMessageIdString, out ulong lastMessageId))
                {
                    LastMessageId = lastMessageId;
                }
            }
コード例 #8
0
            // Some other user defined properties...

            public TranslateItem(string text)
            {
                OriginalText = text;
                FromLanguage = new Language("English", "en");
                ToLanguage   = GoogleTranslator.GetLanguageByISO("fr");
            }