public string AddTranslation(ServerInterfaces.IBase baseObject, string key, string value, bool skipIfSame) { var leaf = baseObject.GetNavigationLeaf(); var originalKey = key; var translations = this.LanguageTranslationsGroups.AddToDictionaryIfNotExist(leaf, new LanguageTranslations()); var allTranslations = this.LanguageTranslationsGroups.Values.SelectMany(g => g).ToDictionary(g => g.Key, g => g.Value); var x = 1; if (allTranslations.ContainsKey(key) && skipIfSame) { var existingValue = allTranslations[key]; if (existingValue == value) { return(key); } } while (allTranslations.ContainsKey(key)) { key = string.Format("{0}_{1}", originalKey, x++); } translations.Add(key, value); return(key); }
public string AddTranslation(ServerInterfaces.IBase baseObject, string key, string value, bool skipIfSame) { var culture = CultureInfo.CurrentCulture; var dictionary = this.LanguageSpecificDictionaries.AddToDictionaryIfNotExist(culture.TwoLetterISOLanguageName); dictionary.LanguageCode = culture.TwoLetterISOLanguageName; return(dictionary.AddTranslation(baseObject, key, value, skipIfSame)); }