Support server-sider localization

This commit is contained in:
hishamco
2020-09-29 20:20:38 +03:00
parent b52dd571ee
commit 437170671f
3 changed files with 18 additions and 0 deletions

View File

@ -43,6 +43,7 @@
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.4" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="3.1.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.4.1" />
<PackageReference Include="System.Drawing.Common" Version="4.7.0" />
</ItemGroup>

View File

@ -1,10 +1,17 @@
@page "/"
@namespace Oqtane.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using System.Globalization
@using Microsoft.AspNetCore.Localization
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
@model Oqtane.Pages.HostModel
@{
// Set localization cookie
var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture));
HttpContext.Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue);
}
<!DOCTYPE html>
<html>
<head>

View File

@ -1,4 +1,5 @@
using System;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net.Http;
@ -16,6 +17,7 @@ using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using Oqtane.Extensions;
using Oqtane.Infrastructure;
using Oqtane.Infrastructure.Localization;
using Oqtane.Repository;
using Oqtane.Security;
using Oqtane.Services;
@ -51,6 +53,10 @@ namespace Oqtane
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
// Register localization services
services.AddLocalization(options => options.ResourcesPath = "Resources");
CultureInfo.CurrentUICulture = new CultureInfo(LocalizationSettings.DefaultCulture);
services.AddServerSideBlazor();
// setup HttpClient for server side in a client side compatible fashion ( with auth cookie )
@ -225,6 +231,10 @@ namespace Oqtane
}
// to allow install middleware it should be moved up
app.ConfigureOqtaneAssemblies(env);
app.UseRequestLocalization(options => options
.AddSupportedUICultures(LocalizationSettings.SupportedCultures.ToArray()));
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseBlazorFrameworkFiles();