Skip to content

Commit

Permalink
fix(i18n): initialize creating localizer (#3816)
Browse files Browse the repository at this point in the history
* fix(i18n): initialize creating localizer

* fix routing
  • Loading branch information
ElderJames committed Apr 23, 2024
1 parent b654223 commit 7834205
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 17 deletions.
23 changes: 12 additions & 11 deletions site/AntDesign.Docs/Routes.razor
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
@inject ILocalizationService LocalizationService;
@inject NavigationManager NavigationManager;
@code {

static string[] avaliableRoutes = new[] { "/Docs", "/Components", "/Charts", "/Experimental" };

async Task OnNavigateAsync(NavigationContext navigationContext)
{
var relativeUri = navigationContext.Path;
Expand All @@ -30,26 +33,24 @@
{
if (string.IsNullOrWhiteSpace(segment))
{
NavigationManager.NavigateTo($"{currentCulture.Name}/{relativeUri}");
return;
NavigationManager.NavigateTo($"/{currentCulture.Name}/{relativeUri}");
}
else if (segment.IsIn("zh-CN", "en-US"))
{
LocalizationService.SetLanguage(CultureInfo.GetCultureInfo(segment));
}
else
{
if (new[] { "/Docs", "/Components" }.All(x => !relativeUri.Contains(x, StringComparison.InvariantCultureIgnoreCase)))
if (avaliableRoutes.All(x => !relativeUri.Contains(x, StringComparison.InvariantCultureIgnoreCase)))
return;

if (segment.IsIn("zh-CN", "en-US"))
if (currentCulture.Name.IsIn("zh-CN", "en-US"))
{
LocalizationService.SetLanguage(CultureInfo.GetCultureInfo(segment));
}
else if (currentCulture.Name.IsIn("zh-CN", "en-US"))
{
NavigationManager.NavigateTo($"{currentCulture.Name}/{relativeUri}");
NavigationManager.NavigateTo($"/{currentCulture.Name}/{relativeUri}");
}
else
{
NavigationManager.NavigateTo($"en-US/{relativeUri}");
return;
NavigationManager.NavigateTo($"/en-US/{relativeUri}");
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ private bool TryGetResource(string name, out string value)
.Select(x => (CultureName: x.Groups[1].Value, ResourceName: x.Value))
.ToList();

logger.LogInformation("Available resources: {AvailableResources}", availableResources.Select(x => x.ResourceName).ToArray());
logger.LogInformation("Available resources:" + string.Join(",", availableResources.Select(x => x.ResourceName).ToArray()));

var (_, resourceName) = availableResources.FirstOrDefault(x => x.CultureName.Equals(cultureInfo.Name, StringComparison.OrdinalIgnoreCase));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ public InteractiveStringLocalizer(IOptions<SimpleStringLocalizerOptions> options
_localizer = _factory.Create(_options.Value.ResourcesPath, _options.Value.ResourcesAssembly.GetName().Name);
};

_localizationService.LanguageChanged += _languageChanged;

if (_localizer == null)
{
_languageChanged.Invoke(this, CultureInfo.CurrentCulture);
Expand Down
7 changes: 2 additions & 5 deletions src/AntDesign.Extensions.Localization/LocalizationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@ internal class LocalizationService : ILocalizationService
{
private CultureInfo? _currentCulture;

public CultureInfo CurrentCulture
{
get => _currentCulture ?? CultureInfo.CurrentCulture;
}
public CultureInfo CurrentCulture => _currentCulture ?? CultureInfo.CurrentCulture;

public event EventHandler<CultureInfo> LanguageChanged;
public event EventHandler<CultureInfo> LanguageChanged = default!;

public void SetLanguage(CultureInfo culture)
{
Expand Down

0 comments on commit 7834205

Please sign in to comment.