Browse Source
Merge pull request #9562 from abpframework/maliming/switch-language
Switch to the given language if sent in the querystring.
pull/9671/head
Halil İbrahim Kalkan
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
22 additions and
0 deletions
-
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs
-
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs
-
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs
|
|
|
@ -64,6 +64,7 @@ namespace Volo.Abp.AspNetCore.MultiTenancy |
|
|
|
context, |
|
|
|
requestCulture |
|
|
|
); |
|
|
|
context.Items[AbpRequestLocalizationMiddleware.HttpContextItemName] = true; |
|
|
|
} |
|
|
|
|
|
|
|
await next(context); |
|
|
|
|
|
|
|
@ -33,6 +33,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Localization |
|
|
|
new RequestCulture(culture, uiCulture) |
|
|
|
); |
|
|
|
|
|
|
|
HttpContext.Items[AbpRequestLocalizationMiddleware.HttpContextItemName] = true; |
|
|
|
|
|
|
|
var context = new QueryStringCultureReplacementContext(HttpContext, new RequestCulture(culture, uiCulture), returnUrl); |
|
|
|
await QueryStringCultureReplacement.ReplaceAsync(context); |
|
|
|
|
|
|
|
|
|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
|