/// <summary> /// Get translations by prefix /// </summary> /// <param name="modulePrefix"></param> /// <param name="language"></param> /// <returns></returns> public async Task <IEnumerable <TranslationResource> > GetTranslationsForModule(string modulePrefix, string language) { var translations = _cacheService.Get("moduleTranslations_" + modulePrefix + "_" + language.ToLower()); if (translations != null) { return((IEnumerable <TranslationResource>)translations); } var result = (await _unitOfWork.ModuleTranslationResourceRepository.GetAllAsync()).Where(item => item.KeyString.StartsWith(modulePrefix)); var resourcesList = new List <TranslationResource>(); foreach (var dtoItem in result) { var resourceString = new TranslationResource { KeyString = dtoItem.KeyString.Replace(modulePrefix + ".", string.Empty), Value = dtoItem.GetLanguageVal(language.ToLower()) }; _cacheService.Add("moduleTranslations_" + modulePrefix + "_" + language.ToLower(), resourcesList); resourcesList.Add(resourceString); } return(resourcesList); }
public virtual async Task <(bool error, string message)> InsertLanguageResourceModel(LanguageResourceModel model) { if (model.Name != null) { model.Name = model.Name.Trim(); } if (model.Value != null) { model.Value = model.Value.Trim(); } var res = await _translationService.GetTranslateResourceByName(model.Name, model.LanguageId); if (res == null) { var resource = new TranslationResource { LanguageId = model.LanguageId }; resource.Name = model.Name; resource.Value = model.Value; await _translationService.InsertTranslateResource(resource); } else { return(error : true, message : string.Format(_translationService.GetResource("Admin.Configuration.Languages.Resources.NameAlreadyExists"), model.Name)); } return(false, string.Empty); }
private static MovieTranslation MapTranslation(TranslationResource arg) { var newAlternativeTitle = new MovieTranslation { Title = arg.Title, Overview = arg.Overview, CleanTitle = arg.Title.CleanMovieTitle(), Language = IsoLanguages.Find(arg.Language.ToLower())?.Language }; return(newAlternativeTitle); }
/// <summary> /// Deletes a translate resource /// </summary> /// <param name="translateResource">Translate resource</param> public virtual async Task DeleteTranslateResource(TranslationResource translateResource) { if (translateResource == null) { throw new ArgumentNullException(nameof(translateResource)); } await _translationRepository.DeleteAsync(translateResource); //cache await _cacheBase.RemoveByPrefix(CacheKey.TRANSLATERESOURCES_PATTERN_KEY); //event notification await _mediator.EntityDeleted(translateResource); }
/// <summary> /// Inserts a translate resource /// </summary> /// <param name="translateResource">Translate resource</param> public virtual async Task InsertTranslateResource(TranslationResource translateResource) { if (translateResource == null) { throw new ArgumentNullException(nameof(translateResource)); } translateResource.Name = translateResource.Name.ToLowerInvariant(); await _translationRepository.InsertAsync(translateResource); //cache await _cacheBase.RemoveByPrefix(CacheKey.TRANSLATERESOURCES_PATTERN_KEY); //event notification await _mediator.EntityInserted(translateResource); }
/// <summary> /// Add a translate resource (if new) or update an existing one /// </summary> /// <param name="plugin">Plugin</param> /// <param name="translationService">Translation service</param> /// <param name="languageService">Language service</param> /// <param name="name">Name</param> /// <param name="value">Value</param> /// <param name="languageCulture">Language culture code. If null or empty, then a resource will be added for all languages</param> public static async Task AddOrUpdatePluginTranslateResource(this BasePlugin plugin, ITranslationService translationService, ILanguageService languageService, string name, string value, string languageCulture = null) { //actually plugin instance is not required if (plugin == null) { throw new ArgumentNullException(nameof(plugin)); } if (translationService == null) { throw new ArgumentNullException(nameof(translationService)); } if (languageService == null) { throw new ArgumentNullException(nameof(languageService)); } if (string.IsNullOrEmpty(name)) { name = name.ToLowerInvariant(); } foreach (var lang in await languageService.GetAllLanguages(true)) { if (!String.IsNullOrEmpty(languageCulture) && !languageCulture.Equals(lang.LanguageCulture)) { continue; } var lsr = await translationService.GetTranslateResourceByName(name, lang.Id); if (lsr == null) { lsr = new TranslationResource { LanguageId = lang.Id, Name = name, Value = value }; await translationService.InsertTranslateResource(lsr); } else { lsr.Value = value; await translationService.UpdateTranslateResource(lsr); } } }
public MaidTranslate() { try { TranslateConfig = new TranslateConfig(Config); Dumper = new ResourceDumper(TranslateConfig); Resource = new TranslationResource(); HookCenter.TextTranslation += OnTextTranslation; HookCenter.ArcTextureTranslation += OnArcTextureTranslation; HookCenter.ArcTextureLoaded += OnArcTextureLoaded; HookCenter.SpriteTextureTranslation += OnSpriteTextureTranslation; HookCenter.UITextureTranslation += OnUITextureTranslation; SceneManager.sceneLoaded += OnSceneLoaded; } catch (Exception ex) { Logger.Log(LogLevel.Error, ex); throw; } }
/// <summary> /// Save translation name of a permission /// </summary> /// <param name="permissionRecord">Permission record</param> /// <param name="translationService">Translation service</param> /// <param name="languageService">Language service</param> public static async Task SaveTranslationPermissionName(this Permission permissionRecord, ITranslationService translationService, ILanguageService languageService) { if (permissionRecord == null) { throw new ArgumentNullException(nameof(permissionRecord)); } if (translationService == null) { throw new ArgumentNullException(nameof(translationService)); } if (languageService == null) { throw new ArgumentNullException(nameof(languageService)); } string name = $"Permission.{permissionRecord.SystemName}"; string value = permissionRecord.Name; foreach (var lang in await languageService.GetAllLanguages(true)) { var lsr = await translationService.GetTranslateResourceByName(name, lang.Id); if (lsr == null) { lsr = new TranslationResource { LanguageId = lang.Id, Name = name, Value = value }; await translationService.InsertTranslateResource(lsr); } else { lsr.Value = value; await translationService.UpdateTranslateResource(lsr); } } }