|
|
|
@ -10,6 +10,8 @@ namespace Microsoft.AspNetCore.RequestLocalization
|
|
|
|
|
{
|
|
|
|
|
public class AbpRequestLocalizationMiddleware : IMiddleware, ITransientDependency
|
|
|
|
|
{
|
|
|
|
|
public const string HttpContextItemName = "__AbpSetCultureCookie";
|
|
|
|
|
|
|
|
|
|
private readonly IAbpRequestLocalizationOptionsProvider _requestLocalizationOptionsProvider;
|
|
|
|
|
private readonly ILoggerFactory _loggerFactory;
|
|
|
|
|
|
|
|
|
@ -29,6 +31,23 @@ namespace Microsoft.AspNetCore.RequestLocalization
|
|
|
|
|
_loggerFactory
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
context.Response.OnStarting(() =>
|
|
|
|
|
{
|
|
|
|
|
if (context.Items[HttpContextItemName] == null)
|
|
|
|
|
{
|
|
|
|
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
|
|
|
if (requestCultureFeature?.Provider is QueryStringRequestCultureProvider)
|
|
|
|
|
{
|
|
|
|
|
AbpRequestCultureCookieHelper.SetCultureCookie(
|
|
|
|
|
context,
|
|
|
|
|
requestCultureFeature.RequestCulture
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await middleware.Invoke(context);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|