-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLocalizationPipeline.cs
More file actions
35 lines (32 loc) · 1.2 KB
/
LocalizationPipeline.cs
File metadata and controls
35 lines (32 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using AspNetCore.RequestLocalizationPipeline;
using Microsoft.AspNetCore.Mvc;
namespace AspNetCore.RequestLocalizationPipeline
{
public static class LocalizationPipeline
{
private static string _routeConvention;
internal static string RouteConvention
{
get => _routeConvention;
set
{
if (string.IsNullOrEmpty(_routeConvention))
_routeConvention = value;
}
}
/// <summary>
/// Add the localization filter to all actions in the api along with the route convention containing
/// the culture route key.
/// </summary>
/// <param name="opts"></param>
/// <param name="routeConvention">The route</param>
public static void AddLocalizationPipeLine(this MvcOptions opts, string routeConvention)
{
RouteConvention = routeConvention;
// Add an api convention for all controllers
opts.Conventions.Insert(0, new RouteConvention(new RouteAttribute(routeConvention)));
// Add filter to all actions
opts.Filters.Add(new MiddlewareFilterAttribute(typeof(LocalizationFilter)));
}
}
}