mirror of https://github.com/abpframework/abp.git
3 changed files with 50 additions and 2 deletions
@ -0,0 +1,28 @@ |
|||||
|
using System; |
||||
|
using System.Text.RegularExpressions; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Localization; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.Localization |
||||
|
{ |
||||
|
public class AbpAspNetCoreMvcQueryStringCultureReplacement : IQueryStringCultureReplacement, ITransientDependency |
||||
|
{ |
||||
|
public virtual Task<string> ReplaceAsync(string returnUrl, RequestCulture requestCulture) |
||||
|
{ |
||||
|
if (!string.IsNullOrWhiteSpace(returnUrl)) |
||||
|
{ |
||||
|
if (returnUrl.Contains("culture=", StringComparison.OrdinalIgnoreCase)) |
||||
|
{ |
||||
|
returnUrl = Regex.Replace(returnUrl, "culture=[A-Za-z-]+?&", $"culture={requestCulture.Culture}&", RegexOptions.Compiled | RegexOptions.IgnoreCase); |
||||
|
} |
||||
|
if (returnUrl.Contains("ui-Culture=", StringComparison.OrdinalIgnoreCase)) |
||||
|
{ |
||||
|
returnUrl = Regex.Replace(returnUrl, "ui-culture=[A-Za-z-]+?$", $"ui-culture={requestCulture.UICulture}",RegexOptions.Compiled | RegexOptions.IgnoreCase); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return Task.FromResult<string>(returnUrl); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Localization; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.Localization |
||||
|
{ |
||||
|
public interface IQueryStringCultureReplacement |
||||
|
{ |
||||
|
Task<string> ReplaceAsync(string returnUrl, RequestCulture requestCulture); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue