Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
                }
            }
        }
Ejemplo n.º 7
0
        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;
            }
        }
Ejemplo n.º 8
0
        /// <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);
                }
            }
        }