public TransFormOver() { InitializeComponent(); Init(); tc = InitializeTranslatorContainer(); }
public IList <SubtitleTools.Common.ISO639.Language> GetSupportedLanguages() { var translatorContainer = new TranslatorContainer(ServiceUri) { Credentials = new NetworkCredential(AccountKey, AccountKey) }; var languagesForTranslationList = translatorContainer.GetLanguagesForTranslation().Execute().ToList(); var iso639LanguagesCodes = new LanguagesCodes(); var supportedLanguages = new List <SubtitleTools.Common.ISO639.Language>(); foreach (var item in languagesForTranslationList) { var lang = iso639LanguagesCodes.FirstOrDefault(x => x.ISO639.Equals(item.Code, StringComparison.InvariantCultureIgnoreCase)); var languageName = lang == null ? item.Code : lang.LanguageName; supportedLanguages.Add(new SubtitleTools.Common.ISO639.Language { ISO639 = item.Code, LanguageName = languageName, IdSubLanguage = lang == null ? string.Empty : lang.IdSubLanguage, ISO6393166_1 = lang == null ? string.Empty : lang.ISO6393166_1 }); } return(supportedLanguages); }
private static TranslatorContainer CreateTranslatorContainer() { var serviceUri = new Uri(ConfigurationManager.ConnectionStrings["TranslationServices"].ConnectionString); var serviceCredentials = new NetworkCredential(ConfigurationManager.AppSettings["TranslationServicesKey"], ConfigurationManager.AppSettings["TranslationServicesKey"]); var result = new TranslatorContainer(serviceUri) { Credentials = serviceCredentials }; return(result); }
private static TranslatorContainer InitializeTranslatorContainer() { // this is the service root uri for the Microsoft Translator service System.Uri serviceRootUri = new Uri("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/"); // this is the Account Key I generated for this app string accountKey = bingAccountKey; // throw new Exception("Invalid Account Key"); TranslatorContainer newTc = new TranslatorContainer(serviceRootUri); newTc.Credentials = new NetworkCredential(accountKey, accountKey); return(newTc); }
//bing 번역기로부터 번역문 얻기 private static Translation TranslateString(TranslatorContainer tc, string inputString, string transCode, string resultCode) { System.Data.Services.Client.DataServiceQuery <MORT.TransFormOver.Translation> translationQuery = tc.Translate(inputString, resultCode, transCode); // Call the query and get the results as a List System.Collections.Generic.List <MORT.TransFormOver.Translation> translationResults = translationQuery.Execute().ToList(); // Verify there was a result if (translationResults.Count() <= 0) { return(null); } // In case there were multiple results, pick the first one Translation translationResult = translationResults.First(); return(translationResult); }
/// <summary> /// Uses the TranslatorContainer to translate inputString from sourceLanguage /// to targetLanguage. /// </summary> /// <param name="tc">The TranslatorContainer to use</param> /// <param name="inputString">The string to translate</param> /// <param name="sourceLanguage">The Language Code to use in interpreting the input string.</param> /// <param name="targetLanguage">The Language Code to translate the input string to.</param> /// <returns>The translated string, or null if no translation results were found.</returns> private static Translation TranslateString(TranslatorContainer tc, string inputString, DetectedLanguage sourceLanguage, Language targetLanguage) { // Generate the query var translationQuery = tc.Translate(inputString, targetLanguage.Code, sourceLanguage.Code); // Call the query and get the results as a List var translationResults = translationQuery.Execute().ToList(); // Verify there was a result if (translationResults.Count() <= 0) { return(null); } // In case there were multiple results, pick the first one var translationResult = translationResults.First(); return(translationResult); }
private string TranslateWithBing(string text, LanguageInfo from, LanguageInfo to, TranslateApi api) { if (!_bingTranslatorEnabled) { return(null); } if (api != TranslateApi.Bing && api != TranslateApi.All) { return(null); } string result; try { if (_bingTranslator == null) { _bingTranslator = new TranslatorContainer(new Uri(ConfigurationManager.AppSettings["TranslatorAddress"])) { Credentials = new NetworkCredential( ConfigurationManager.AppSettings["TranslatorAccount"], ConfigurationManager.AppSettings["TranslatorAccountKey"]) }; _bingTranslator.Timeout = (int)_bingTimeout; } var translationResult = _bingTranslator.Translate(text, to.BingTranslatorCode, @from.BingTranslatorCode).ToList(); result = translationResult.Select(t => t.Text).Aggregate((current, next) => current + ", " + next); } catch (Exception ex) { Log.LogException(ex); result = Resources.Res.TranslationError; } return(Resources.Res.Bing + result); }
/// <summary> /// Concatenates the input arguments into a single string /// </summary> /// <param name="args">The args array passed into Main</param> /// <returns>the concatonated result string</returns> private static TranslatorContainer InitializeTranslatorContainer() { // this is the service root uri for the Microsoft Translator service var serviceRootUri = new Uri("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/"); // this is the Account Key I generated for this app var accountKey = "XM5qyTSXAh7JxjRC0rxr5fAT9pkMoSRJUQXI589aj/g"; // Replace the account key above with your own and then delete // the following line of code. You can get your own account key // for from here: https://datamarket.azure.com/account/keys //throw new Exception("Invalid Account Key"); // the TranslatorContainer gives us access to the Microsoft Translator services var tc = new TranslatorContainer(serviceRootUri); // Give the TranslatorContainer access to your subscription tc.Credentials = new NetworkCredential(accountKey, accountKey); return(tc); }
/// <summary> /// Asks the service represented by the TranslatorContainer for a list /// of all supported languages and then picks one at random. /// </summary> /// <param name="tc">The TranslatorContainer to use.</param> /// <returns>A randomly selected Language.</returns> private static Language PickRandomLanguage(TranslatorContainer tc) { // Used to generate a random index var random = new Random(); // Generate the query var languagesForTranslationQuery = tc.GetLanguagesForTranslation(); // Call the query to get the results as an Array var availableLanguages = languagesForTranslationQuery.Execute().ToArray(); // Generate a random index between 0 and the total number of items in the array var randomIndex = random.Next(availableLanguages.Count()); // Select the randomIndex'th value from the array var selectedLanguage = availableLanguages[10]; // selectedLanguage = "en"; return(selectedLanguage); }
public string Translate(string translateMe, CultureInfo fromCultureInfo, CultureInfo toCultureInfo) { if (fromCultureInfo == null) { throw new ArgumentNullException("fromCultureInfo is null"); } if (toCultureInfo == null) { throw new ArgumentNullException("toCultureInfo is null"); } if (string.IsNullOrEmpty(translateMe)) { return(translateMe); } string sourceLanguage = fromCultureInfo.TwoLetterISOLanguageName; string targetLanguage = toCultureInfo.TwoLetterISOLanguageName; TranslatorContainer tc = new TranslatorContainer(new System.Uri(SERVICE_URL)); tc.Credentials = new System.Net.NetworkCredential(_username, _password); var translationQuery = tc.Translate(translateMe, targetLanguage, sourceLanguage); List <Microsoft.Translation> translationResults = translationQuery.Execute().ToList(); // Verify there was a result if (translationResults.Count() <= 0) { return(null); } // In case there were multiple results, pick the first one Microsoft.Translation translationResult = translationResults.First(); return(translationResult.Text); }
private static DetectedLanguage DetectSourceLanguage(TranslatorContainer tc, string inputString) { // calling Detect gives us a DataServiceQuery which we can use to call the service var translateQuery = tc.Detect(inputString); // since this is a console application, we do not want to do an asynchronous // call to the service. Otherwise, the program thread would likely terminate // before the result came back, causing our app to appear broken. var detectedLanguages = translateQuery.Execute().ToList(); // since the result of the query is a list, there might be multiple // detected languages. In practice, however, I have only seen one. // Some input strings, 'hi' for example, are obviously valid in // English but produce other results, suggesting that the service // only returns the first result. if (detectedLanguages.Count() > 1) { Console.WriteLine("Possible source languages:"); foreach (var language in detectedLanguages) { Console.WriteLine("\t" + language.Code); } Console.WriteLine(); } // only continue if the Microsoft Translator identified the source language // if there are multiple, let's go with the first. if (detectedLanguages.Count() > 0) { return(detectedLanguages.First()); } else { return(null); } }
public string AutoTranslateSync(string untranslatedPhraseText, string untranslatedPhraseLanguage, string targetLanguageText) { //PREPARE THE TRANSLATOR CONTAINER (TRANSLATION SERVICE CLIENT) var serviceRootUri = new Uri(CommonResources.AzureServiceRootUriAddress); //#if DEBUG var accountKey = CommonResources.LearnLanguagesAccountKey; //#else // string accountKey = (string)System.Windows.Application.Current.Resources[CommonResources.AzureLearnLanguagesAccountKey]; //#endif TranslatorContainer translatorContainer = new TranslatorContainer(serviceRootUri); translatorContainer.Credentials = new NetworkCredential(accountKey, accountKey); //TURN THE LANGUAGE TEXTS INTO LANGUAGE CODES THAT SERVICE UNDERSTANDS var fromLanguageCode = TranslationHelper.GetLanguageCode(untranslatedPhraseLanguage); var toLanguageCode = TranslationHelper.GetLanguageCode(targetLanguageText); //BUILDS THE TRANSLATION QUERY var translationQuery = translatorContainer.Translate(untranslatedPhraseText, toLanguageCode, fromLanguageCode); //ACTUALLY EXECUTE THE TRANSLATION QUERY var translations = translationQuery.Execute().ToList(); //INTERPRET THE TRANSLATION RESULTS if (translations.Count > 0) { var translationText = translations.First().Text; //RETURN TRANSLATION (FIRST TRANSLATION, IF MULTIPLE EXIST) return(translationText); } else { //RETURN EMPTY STRING return(string.Empty); } }
private void translateItem(int itemId) { try { if (string.IsNullOrWhiteSpace(_data[itemId].Dialog)) { return; } LogWindow.AddMessage(LogType.Info, "Translating: " + _data[itemId].Dialog); var translatorContainer = new TranslatorContainer(ServiceUri) { Credentials = new NetworkCredential(AccountKey, AccountKey) }; var result = translatorContainer.Translate(_data[itemId].Dialog.Trim(), _targetLanguage, _sourceLanguage).Execute().ToList().FirstOrDefault(); if (result == null) { return; } _data[itemId].Dialog = result.Text; LogWindow.AddMessage(LogType.Info, "Result: " + _data[itemId].Dialog); } catch (Exception ex) { LogWindow.AddMessage(LogType.Error, ex.Message); if (ex.InnerException != null && ex.InnerException.Message.Contains("has an invalid pattern of characters")) { LogWindow.AddMessage(LogType.Error, ex.InnerException.Message + " -> This language is not supported."); } StopTranslation = true; } }
public void setBingAccountKey(string newKey) { bingAccountKey = newKey; tc = InitializeTranslatorContainer(); }
// TextBox translatedTextBox; private void Initalize() { serviceUri = new Uri(SERVICE_ROOT_URL); context = new TranslatorContainer(serviceUri); context.Credentials = new NetworkCredential(CUSTOMER_ID, PRIMARY_ACCOUNT_KEY); }