Как получить информацию о локализации основного проекта aspnetboilerplate на стороне сервера - PullRequest
1 голос
/ 21 июня 2019

Работа над основным проектом aspnetboilerplate, моей конфигурацией локализации и использование процесса следующим образом.

Языки приложений в файле HRISLocalizationConfigurer.cs

localizationConfiguration.Languages.Add(new LanguageInfo("en", "English", "famfamfam-flags england"));            
localizationConfiguration.Languages.Add(new LanguageInfo("fr", "french", "famfamfam-flags fr", isDefault: true));

Настроить в файле Startup.cs

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory)
        {

            app.UseAbp(options => { options.UseAbpRequestLocalization = true; }); 
}

На стороне сервера не получить настроенную информацию о локализации всегда получить информацию о значении ключа по умолчанию.Синтаксис на стороне сервера:

 var localizeInfo = _localizationManager.GetSource(HRISConsts.LocalizationSourceName);

 var localizeResult = _localizationManager.GetString(HRISConsts.LocalizationSourceName, "HomePage");

В localizeResult всегда получают значение «HomePage» для ключа en.

enter image description here

1 Ответ

1 голос
/ 22 июня 2019

Для извлечения локализованной информации используется следующий синтаксис.

Необходимо ввести две следующие службы

private readonly ILocalizationManager _localizationManager;
private readonly ILocalizationConfiguration _configuration;

Для извлечения локализованной информации используйте вышеуказанные службы

        var localizeResult = _localizationManager
            .GetString(HRISConsts.ConnectionStringName,
            "HomePage",
            CultureInfo.GetCultureInfo(_configuration.Languages.FirstOrDefault(l => l.IsDefault).Name)
            );

Примечание:HRISConsts.ConnectionStringName является статической строкой.

...