mirror of https://github.com/abpframework/abp.git
8 changed files with 94 additions and 39 deletions
@ -0,0 +1,14 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly; |
|||
|
|||
public interface IRouteBasedCultureUrlHelper |
|||
{ |
|||
/// <summary>
|
|||
/// Prepends the current culture to <paramref name="url"/> when route-based culture is enabled
|
|||
/// and the current culture is a known application language.
|
|||
/// Returns the original <paramref name="url"/> unchanged when the feature is disabled or the
|
|||
/// culture is not recognised.
|
|||
/// </summary>
|
|||
Task<string> PrependCulturePrefixAsync(string url); |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
using System; |
|||
using System.Globalization; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.AspNetCore.Mvc.Client; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly; |
|||
|
|||
public class RouteBasedCultureUrlHelper : IRouteBasedCultureUrlHelper, ITransientDependency |
|||
{ |
|||
private readonly ICachedApplicationConfigurationClient _configurationClient; |
|||
|
|||
public RouteBasedCultureUrlHelper(ICachedApplicationConfigurationClient configurationClient) |
|||
{ |
|||
_configurationClient = configurationClient; |
|||
} |
|||
|
|||
public virtual async Task<string> PrependCulturePrefixAsync(string url) |
|||
{ |
|||
var config = await _configurationClient.GetAsync(); |
|||
|
|||
if (config?.Localization.UseRouteBasedCulture != true) |
|||
{ |
|||
return url; |
|||
} |
|||
|
|||
var currentCulture = CultureInfo.CurrentCulture.Name; |
|||
var isKnownCulture = config.Localization.Languages |
|||
.Any(l => string.Equals(l.CultureName, currentCulture, StringComparison.OrdinalIgnoreCase)); |
|||
|
|||
return isKnownCulture ? $"{currentCulture}/{url}" : url; |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.UI.Navigation; |
|||
|
|||
public interface IMenuItemCulturePrefixHelper |
|||
{ |
|||
Task PrependCulturePrefixAsync(IHasMenuItems menuWithItems, string prefix); |
|||
} |
|||
Loading…
Reference in new issue