public void AddDictionaryItem(string resourceName, string defaultValue, ILanguage language) { var arr = resourceName.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries); if (arr.Length == 0) return; if (arr.Length == 1) { SetDictionaryValue(resourceName, defaultValue, language); return; } var parentName = string.Join(".", arr.Take(arr.Length - 1)); if (!_localizationService.DictionaryItemExists(parentName)) { AddDictionaryItem(parentName, "", language); } var parentDic = _localizationService.GetDictionaryItemByKey(parentName); var dicItem = new DictionaryItem(resourceName); dicItem.ParentId = parentDic.Key; dicItem.Translations = new List<IDictionaryTranslation> { new DictionaryTranslation(language, defaultValue) }; _localizationService.Save(dicItem); }
public void CreateTestData() { var language = ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US"); var languageDK = new Language("da-DK") { CultureName = "da-DK" }; ServiceContext.LocalizationService.Save(languageDK);//Id 2 var readMore = new DictionaryItem("Read More"); var translations = new List<IDictionaryTranslation> { new DictionaryTranslation(language, "Read More"), new DictionaryTranslation(languageDK, "Læs mere") }; readMore.Translations = translations; ServiceContext.LocalizationService.Save(readMore);//Id 1 var article = new DictionaryItem("Article"); var translations2 = new List<IDictionaryTranslation> { new DictionaryTranslation(language, "Article"), new DictionaryTranslation(languageDK, "Artikel") }; article.Translations = translations2; ServiceContext.LocalizationService.Save(article);//Id 2 }
public void Can_Perform_Add_On_DictionaryRepository() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); LanguageRepository languageRepository; using (var repository = CreateRepository(unitOfWork, out languageRepository)) { var language = languageRepository.Get(1); var read = new DictionaryItem("Read"); var translations = new List<IDictionaryTranslation> { new DictionaryTranslation(language, "Read") }; read.Translations = translations; // Act repository.AddOrUpdate(read); unitOfWork.Commit(); var exists = repository.Exists(read.Id); // Assert Assert.That(read.HasIdentity, Is.True); Assert.That(exists, Is.True); } }
private void RefreshDictionaryCache(Guid publishId ) { //currently the hashtable that contains the cache of dictionary items in memory // only gets cleared when new items are added or removed // there isn't the function to clear the cache //sadly this is coming in 7.3 //ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheObjectTypes<IDictionaryItem>(); // so it would be a horrible hack here to temporarily create / update an existing DictionaryItem called "TempRefreshCache"... // .... apologies var ls = ApplicationContext.Current.Services.LocalizationService; if (!ls.DictionaryItemExists("TempRefreshCache")) { DictionaryItem newItem = new DictionaryItem("TempRefreshCache"); foreach (var translation in newItem.Translations) { translation.Value = publishId.ToString(); } ls.Save(newItem); } else { var dicItem = ls.GetDictionaryItemByKey("TempRefreshCache"); foreach (var translation in dicItem.Translations) { translation.Value = publishId.ToString(); } ls.Save(dicItem); } }
private void AddDictionaryItem(string resourceName, string[] defaultValues, ILanguage[] languages) { var arr = resourceName.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries); if (arr.Length == 0) return; if (arr.Length == 1) { SetDictionaryValue(resourceName, defaultValues, languages); return; } var parentName = string.Join(".", arr.Take(arr.Length - 1)); if (!_localizationService.DictionaryItemExists(parentName)) { AddDictionaryItem(parentName, defaultValues.Select(x=> "").ToArray(), languages); } var parentDic = _localizationService.GetDictionaryItemByKey(parentName); var dicItem = new DictionaryItem(resourceName); dicItem.ParentId = parentDic.Key; var translations = new List<IDictionaryTranslation>(); for (int i = 0; i < Math.Min(defaultValues.Length, languages.Length); i++) { translations.Add(new DictionaryTranslation(languages[i], defaultValues[i])); } dicItem.Translations = translations; _localizationService.Save(dicItem); }
public void SetDictionaryValue(string resourceName, string[] defaultValues, ILanguage[] languages) { var dicItem = new DictionaryItem(resourceName); var translations = new List<IDictionaryTranslation>(); for (int i = 0; i < Math.Min(defaultValues.Length,languages.Length); i++) { translations.Add(new DictionaryTranslation(languages[i],defaultValues[i])); } dicItem.Translations = translations; _localizationService.Save(dicItem); }
public void SetDictionaryValue(string resourceName, string defaultValue, ILanguage language) { var dicItem = new DictionaryItem(resourceName); dicItem.Translations = new List<IDictionaryTranslation> { new DictionaryTranslation(language, defaultValue) }; _localizationService.Save(dicItem); }