Зачем нам нужен класс SharedResources при локализации - PullRequest
3 голосов
/ 08 июля 2019

Я новичок в локализации ядра asp.net и пытаюсь использовать файлы ресурсов. Есть несколько способов сделать это, поэтому я начал с IStringLocalizer и IHtmlLocalizer.

Мы можем указать тип при внедрении Локализатора в представление, и большая часть руководства рекомендует создать пустой файл класса SharedResource с корневым пространством имен.

Я пытался найти причину этого, но не нашел. Может ли кто-нибудь помочь мне выяснить причину наличия пустого SharedResource класса?

@inject IHtmlLocalizer<SharedResources> Localizer


namespace Root.Namespace
{
    public class SharedResources
    {

    }
}

1 Ответ

0 голосов
/ 08 июля 2019

пустой класс SharedResource используется для группировки файла ресурсов в Visual Studio следующим образом:

enter image description here

enter image description here

Также необходимо IStringLocalizeFactory

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
            .AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) =>
                {
                    var assemblyName = new AssemblyName(typeof(SharedResource).GetTypeInfo().Assembly.FullName);
                    return factory.Create("SharedResource", assemblyName.Name);
                };
            });

Вы можете прочитать мой блог и исходный код здесь , чтобы лучше понять его

...