|
|
|
@ -1,7 +1,9 @@
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.AspNetCore.RequestLocalization;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using Volo.Abp.Localization;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar.LanguageSwitch
|
|
|
|
@ -23,12 +25,32 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar
|
|
|
|
|
CultureInfo.CurrentUICulture.Name
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (currentLanguage == null)
|
|
|
|
|
{
|
|
|
|
|
var abpRequestLocalizationOptionsProvider = HttpContext.RequestServices.GetRequiredService<IAbpRequestLocalizationOptionsProvider>();
|
|
|
|
|
var localizationOptions = await abpRequestLocalizationOptionsProvider.GetLocalizationOptionsAsync();
|
|
|
|
|
if (localizationOptions.DefaultRequestCulture != null)
|
|
|
|
|
{
|
|
|
|
|
currentLanguage = new LanguageInfo(
|
|
|
|
|
localizationOptions.DefaultRequestCulture.Culture.Name,
|
|
|
|
|
localizationOptions.DefaultRequestCulture.UICulture.Name,
|
|
|
|
|
localizationOptions.DefaultRequestCulture.UICulture.DisplayName);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
currentLanguage = new LanguageInfo(
|
|
|
|
|
CultureInfo.CurrentCulture.Name,
|
|
|
|
|
CultureInfo.CurrentUICulture.Name,
|
|
|
|
|
CultureInfo.CurrentUICulture.DisplayName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var model = new LanguageSwitchViewComponentModel
|
|
|
|
|
{
|
|
|
|
|
CurrentLanguage = currentLanguage,
|
|
|
|
|
OtherLanguages = languages.Where(l => l != currentLanguage).ToList()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return View("~/Themes/Basic/Components/Toolbar/LanguageSwitch/Default.cshtml", model);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|