Fix #2874 part 2 - Add AddLocalization() overload for MVC localization.
This commit is contained in:
parent
4b3bac9dbb
commit
152e4ef915
|
|
@ -0,0 +1,52 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNet.Mvc.Razor;
|
||||
using Microsoft.Framework.Internal;
|
||||
|
||||
namespace Microsoft.Framework.DependencyInjection
|
||||
{
|
||||
/// <summary>
|
||||
/// Extension methods for configuring MVC view localization.
|
||||
/// </summary>
|
||||
public static class MvcLocalizationMvcBuilderExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds MVC localization to the application.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
||||
/// <remarks>
|
||||
/// Adding localization also adds support for views via
|
||||
/// <see cref="MvcViewFeaturesMvcBuilderExtensions.AddViews(IMvcBuilder)"/> and the Razor view engine
|
||||
/// via <see cref="MvcRazorMvcBuilderExtensions.AddRazorViewEngine(IMvcBuilder)"/>.
|
||||
/// </remarks>
|
||||
public static IMvcBuilder AddLocalization([NotNull] this IMvcBuilder builder)
|
||||
{
|
||||
return AddLocalization(builder, LanguageViewLocationExpanderFormat.Suffix);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds MVC localization to the application.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||
/// <param name="format">The view format for localized views.</param>
|
||||
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
||||
/// <remarks>
|
||||
/// Adding localization also adds support for views via
|
||||
/// <see cref="MvcViewFeaturesMvcBuilderExtensions.AddViews(IMvcBuilder)"/> and the Razor view engine
|
||||
/// via <see cref="MvcRazorMvcBuilderExtensions.AddRazorViewEngine(IMvcBuilder)"/>.
|
||||
/// </remarks>
|
||||
public static IMvcBuilder AddLocalization(
|
||||
[NotNull] this IMvcBuilder builder,
|
||||
LanguageViewLocationExpanderFormat format)
|
||||
{
|
||||
|
||||
builder.AddViews();
|
||||
builder.AddRazorViewEngine();
|
||||
|
||||
MvcLocalizationServiceCollectionExtensions.AddMvcLocalization(builder.Services, format);
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,10 +10,13 @@ using Microsoft.Framework.WebEncoders;
|
|||
|
||||
namespace Microsoft.Framework.DependencyInjection
|
||||
{
|
||||
/// <summary>
|
||||
/// Extension methods for configuring MVC view localization.
|
||||
/// </summary>
|
||||
public static class MvcLocalizationServiceCollectionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds Mvc localization to the application.
|
||||
/// Adds MVC localization to the application.
|
||||
/// </summary>
|
||||
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
|
||||
/// <returns>The <see cref="IServiceCollection"/>.</returns>
|
||||
|
|
@ -23,10 +26,10 @@ namespace Microsoft.Framework.DependencyInjection
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Mvc localization to the application.
|
||||
/// Adds MVC localization to the application.
|
||||
/// </summary>
|
||||
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
|
||||
/// <param name="option">The view format for localized views.</param>
|
||||
/// <param name="format">The view format for localized views.</param>
|
||||
/// <returns>The <see cref="IServiceCollection"/>.</returns>
|
||||
public static IServiceCollection AddMvcLocalization(
|
||||
[NotNull] this IServiceCollection services,
|
||||
|
|
@ -40,7 +43,7 @@ namespace Microsoft.Framework.DependencyInjection
|
|||
DefaultOrder.DefaultFrameworkSortOrder);
|
||||
|
||||
services.TryAdd(ServiceDescriptor.Singleton<IHtmlLocalizerFactory, HtmlLocalizerFactory>());
|
||||
services.TryAdd(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(HtmlLocalizer<>)));
|
||||
services.TryAdd(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(HtmlLocalizer<>)));
|
||||
services.TryAdd(ServiceDescriptor.Transient<IViewLocalizer, ViewLocalizer>());
|
||||
if (!services.Any(sd => sd.ServiceType == typeof(IHtmlEncoder)))
|
||||
{
|
||||
|
|
@ -5,15 +5,15 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNet.Mvc.Localization;
|
||||
using Microsoft.AspNet.Mvc.Razor;
|
||||
using Microsoft.Framework.DependencyInjection;
|
||||
using Microsoft.Framework.Localization;
|
||||
using Microsoft.Framework.OptionsModel;
|
||||
using Microsoft.Framework.WebEncoders;
|
||||
using Microsoft.Framework.WebEncoders.Testing;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Mvc.Localization.Test
|
||||
namespace Microsoft.Framework.DependencyInjection
|
||||
{
|
||||
public class MvcLocalizationServiceCollectionExtensionsTest
|
||||
{
|
||||
Loading…
Reference in New Issue