File: TestStringLocalizer.cs
Web Access
Project: src\src\Mvc\Mvc.Localization\test\Microsoft.AspNetCore.Mvc.Localization.Test.csproj (Microsoft.AspNetCore.Mvc.Localization.Test)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Globalization;
using Microsoft.Extensions.Localization;
 
namespace Microsoft.AspNetCore.Mvc.Localization.Test;
 
public class TestStringLocalizer : IStringLocalizer
{
    private CultureInfo _culture { get; set; }
 
    public TestStringLocalizer() : this(null)
    {
    }
 
    public TestStringLocalizer(CultureInfo culture)
    {
        _culture = culture;
    }
 
    public LocalizedString this[string name]
    {
        get
        {
            var value = "Hello ";
 
            if (_culture != null)
            {
                value = "Bonjour ";
            }
            return new LocalizedString(name, value + name);
        }
    }
 
    public LocalizedString this[string name, params object[] arguments]
    {
        get
        {
            var value = "Hello ";
 
            if (_culture != null)
            {
                value = "Bonjour ";
            }
 
            string argument = string.Empty;
            foreach (var arg in arguments)
            {
                argument = argument + " " + arg;
            }
            return new LocalizedString(name, value + name + argument);
        }
    }
 
    public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures)
    {
        var allStrings = new List<LocalizedString>();
        allStrings.Add(new LocalizedString("Hello", "World"));
 
        if (includeParentCultures)
        {
            allStrings.Add(new LocalizedString("Foo", "Bar"));
        }
 
        return allStrings;
    }
}