public static string GetQueryResult(string text, string LanguageCodeTo, TranslationDictionary dict) { if (!dict.ContainsKey(text)) { return(null); } var query = dict[text]; if (query.Results == null || query.Results.Length < 0) { return(null); } if (string.IsNullOrEmpty(LanguageCodeTo)) { return(query.Results[0]); } int idx = System.Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo); if (idx < 0) { return(null); } return(query.Results[idx]); }
public static void AddQuery(string text, string LanguageCodeFrom, string LanguageCodeTo, TranslationDictionary dict) { if (string.IsNullOrEmpty(text)) { return; } if (!dict.ContainsKey(text)) { var query = new TranslationQuery() { OrigText = text, LanguageCode = LanguageCodeFrom, TargetLanguagesCode = new string[] { LanguageCodeTo } }; query.Text = text; ParseNonTranslatableElements(ref query); dict[text] = query; } else { var query = dict [text]; if (System.Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo) < 0) { query.TargetLanguagesCode = query.TargetLanguagesCode.Concat(new string[] { LanguageCodeTo }).Distinct().ToArray(); } dict [text] = query; } }
public TranslationDictionary CreateDictionary() { var dict = new TranslationDictionary(); foreach (Translation translation in this) { if (!dict.ContainsKey(translation.Van)) { dict.Add(translation.Van, translation); } else { } } return(dict); }
public static string ConvertToValidTypeIfKnown(string inval) { string[] values = inval.Split('|'); List <string> retvalues = new List <string>(values.Length); foreach (string value in values) { if (IsBaseType(value)) { retvalues.Add(value); } else if (TranslationDictionary.ContainsKey(value)) { retvalues.Add(TranslationDictionary[value]); } else if (value.StartsWith("array(")) { retvalues.Add(ConvertToValidTypeIfKnown(Regex.Match(value, @"array\((?<type>.*)\)").Groups["type"].Value)); } else { if (UntouchedTypes.ContainsKey(value)) { UntouchedTypes[value]++; } else { UntouchedTypes[value] = 1; } retvalues.Add(value); } } // Split to remove empty entries (if type should not be used in typedef try { return(retvalues.Distinct().Aggregate((a, b) => a + "|" + b).Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Aggregate((a, b) => a + "|" + b)); } catch (Exception) { return(null); } }
static string GetTranslation(string text, string LanguageCodeTo, TranslationDictionary dict) { if (!dict.ContainsKey(text)) { return(null); } var query = dict [text]; int langIdx = System.Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo); if (langIdx < 0) { return(""); } if (query.Results == null) { return(""); } return(query.Results [langIdx]); }