Пример #1
0
        public async Task <ActionResult> LocalizeConfig_Partial(Model model)
        {
            using (LocalizeConfigDataProvider dataProvider = new LocalizeConfigDataProvider()) {
                LocalizeConfigData origData = YetaWF.Core.Audit.Auditing.Active ? await dataProvider.GetItemAsync() : null;

                LocalizeConfigData data = await dataProvider.GetItemAsync();// get the original item

                if (!ModelState.IsValid)
                {
                    return(PartialView(model));
                }
                data = model.GetData(data); // merge new data into original
                model.SetData(data);        // and all the data back into model for final display

                LocalizationSupport locSupport = new LocalizationSupport();
                await locSupport.SetUseLocalizationResourcesAsync(model.UseLocalizationResources);

                await locSupport.SetAbortOnFailureAsync(model.AbortOnFailure);

                await dataProvider.UpdateConfigAsync(data);

                await Auditing.AddAuditAsync($"{nameof(LocalizeConfigModuleController)}.{nameof(LocalizeConfig)}", null, Guid.Empty, $"Localization",
                                             DataBefore : origData,
                                             DataAfter : data,
                                             RequiresRestart : true
                                             );
            }
            return(FormProcessed(model, this.__ResStr("okSaved", "Localization settings saved - These settings won't take effect until the site is restarted")));
        }
Пример #2
0
        public async Task <ActionResult> LocalizeConfig()
        {
            using (LocalizeConfigDataProvider dataProvider = new LocalizeConfigDataProvider()) {
                Model model             = new Model {
                };
                LocalizeConfigData data = await dataProvider.GetItemAsync();

                if (data == null)
                {
                    throw new Error(this.__ResStr("notFound", "The localization settings could not be found"));
                }
                model.SetData(data);
                model.UpdateData(data);
                return(View(model));
            }
        }
        private async Task <List <string> > TranslateStringsAsync(string language, List <string> strings)
        {
            LocalizeConfigData config = await LocalizeConfigDataProvider.GetConfigAsync();

            if (config.TranslationService == LocalizeConfigData.TranslationServiceEnum.GoogleTranslate)
            {
                if (!string.IsNullOrWhiteSpace(config.GoogleTranslateAPIKey) && !string.IsNullOrWhiteSpace(config.GoogleTranslateAppName))
                {
                    return(await TranslateStringsUsingGoogleAsync(language, config.GoogleTranslateAPIKey, config.GoogleTranslateAppName, strings));
                }
            }
            else if (config.TranslationService == LocalizeConfigData.TranslationServiceEnum.MicrosoftTranslator)
            {
                if (!string.IsNullOrWhiteSpace(config.MSClientKey))
                {
                    return(await TranslateStringsUsingMicrosoftAsync(language, config.MSClientKey, strings));
                }
            }
            throw new InternalError("No translation API available - Define a translation API using Localization Settings");
        }
Пример #4
0
 public void SetData(LocalizeConfigData data)
 {
     ObjectSupport.CopyData(data, this);
 }
Пример #5
0
 public void UpdateData(LocalizeConfigData data)
 {
     UseLocalizationResources = LocalizationSupport.UseLocalizationResources;
     AbortOnFailure           = LocalizationSupport.AbortOnFailure;
 }
Пример #6
0
 public LocalizeConfigData GetData(LocalizeConfigData data)
 {
     ObjectSupport.CopyData(this, data);
     return(data);
 }