private void ClearOutputData() { AlternativeTranslationCollection?.Clear(); this.lookupLanguageTextBlock.Text = string.Empty; this.outputText.Text = string.Empty; this.previousTranslatedText = string.Empty; }
private async Task UpdateAlternativeTranslationsAsync(string inputText, string inputLanguageCode, string outputLanguageCode) { if (inputText?.Length > maxCharactersForAlternativeTranslation || string.IsNullOrEmpty(inputLanguageCode) || string.IsNullOrEmpty(outputLanguageCode)) { return; } try { AlternativeTranslationCollection.Clear(); this.lookupLanguageTextBlock.Text = string.Empty; if (alternativeTranslationDict.ContainsKey(inputLanguageCode) && alternativeTranslationDict[inputLanguageCode].Any(t => t.Code.Equals(outputLanguageCode, StringComparison.OrdinalIgnoreCase))) { LookupLanguage lookupLanguage = await this.translatorTextService.GetDictionaryLookup(inputText, inputLanguageCode, outputLanguageCode); if (lookupLanguage?.Translations != null && lookupLanguage.Translations.Any()) { var alternativeTranslations = new List <AlternativeTranslations>(); Dictionary <string, List <LookupTranslations> > groupedTranslations = lookupLanguage.Translations.GroupBy(t => t.PosTag).ToDictionary(k => k.Key, v => v.ToList()); foreach (var groupedTranslation in groupedTranslations) { alternativeTranslations.Add(new AlternativeTranslations() { Tag = groupedTranslation.Key, Translations = groupedTranslation.Value.Select(v => new CustomLookupTranslations { DisplayTarget = v.DisplayTarget, BackTranslations = string.Join(", ", v.BackTranslations?.Select(t => t.DisplayText).ToList()) }).ToList() }); } // Update alternative translations this.lookupLanguageTextBlock.Text = $"Translations of '{this.inputText.Text}'"; AlternativeTranslationCollection.AddRange(alternativeTranslations); } } } catch (Exception ex) { if (SettingsHelper.Instance.ShowDebugInfo) { await Util.GenericApiCallExceptionHandler(ex, "Failure loading alternative translations"); } } }
private async Task UpdateAlternativeTranslationsAsync(string inputText, string inputLanguageCode, string outputLanguageCode) { if (inputText == null || inputText.Length > maxCharactersForAlternativeTranslation) { return; } try { AlternativeTranslationCollection.Clear(); this.lookupLanguageTextBlock.Text = string.Empty; LookupLanguage lookupLanguage = await this.translatorTextService?.GetDictionaryLookup(inputText, inputLanguageCode, outputLanguageCode); if (lookupLanguage?.Translations != null && lookupLanguage.Translations.Any()) { var alternativeTranslations = new List <AlternativeTranslations>(); Dictionary <string, List <LookupTranslations> > groupedTranslations = lookupLanguage.Translations.GroupBy(t => t.PosTag).ToDictionary(k => k.Key, v => v.ToList()); foreach (var groupedTranslation in groupedTranslations) { alternativeTranslations.Add(new AlternativeTranslations() { Tag = groupedTranslation.Key, Translations = groupedTranslation.Value.Select(v => new CustomLookupTranslations { DisplayTarget = v.DisplayTarget, BackTranslations = string.Join(", ", v.BackTranslations?.Select(t => t.DisplayText).ToList()) }).ToList() }); } // Update alternative translations this.lookupLanguageTextBlock.Text = $"Translations of '{this.inputText.Text}'"; AlternativeTranslationCollection.AddRange(alternativeTranslations); } } catch (Exception ex) { await Util.GenericApiCallExceptionHandler(ex, "Failure loading alternative translations"); } }