|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
|