Кажущееся критическое изменение для именования resx локализации. net core 3.1? - PullRequest
1 голос
/ 19 июня 2020

Я занимался локализацией многих. net приложений Core 2.2.

Сейчас я работаю над локализованным приложением. net Core 3.1

В Startup.cs ConfigureServices У меня есть

services.AddLocalization(o =>
        {
            // We will put our translations in a folder called Resources
            o.ResourcesPath = "Resources";
        });

        services.AddControllersWithViews()
            .AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder)
            .AddDataAnnotationsLocalization()
            .AddNewtonsoftJson(); 

В методе Configure я определяю свои культуры и т.д. и включаю

app.UseRequestLocalization(localizationOptions);

У меня есть структура папок для моих ресурсов, которая выглядит следующим образом: введите описание изображения здесь

Все мои обзоры идеально локализованы. Однако ни одна из моделей / аннотаций данных или контроллеров не будет локализована, даже если они названы правильно и помещены в папку моделей или контроллеров.

В предыдущих версиях 2.2 использование структуры папок работало для меня безупречно. Пропустил ли я что-то новое в версии 3.1, которое должно указывать на то, что он должен выглядеть в папке по-другому? Должна ли папка называться не «Модели», а что-то еще?

Я просмотрел все документы, выполнил поиск в Интернете, но у меня ничего не получается.

Обновлено См. Ответ ниже

Ответы [ 3 ]

1 голос
/ 19 июня 2020

Рабочий ответ на данный момент:

Похоже, что я могу добиться локализации контроллеров и моделей, переместив их из подпапок и изменив имя каждого resx, чтобы включить NameSpace.Models .Modelname для моделей и NameSpace.Controllers.Controllername для контроллеров. Это единственный способ заставить их работать.

Значит, очевидно, что только представления будут использовать методологию папки / подпапки? Если я полностью не пропустил это, я думаю, что это либо огромная проблема, либо критическое изменение, которое я нигде не вижу четко задокументированного.

У меня не было подтверждения от MS, что это критическое изменение, но оно точно мне кажется, на данный момент. Если вы переходите с более ранней локализации ядра. net, это будет сюрпризом, по крайней мере, для меня. Надеюсь, это поможет кому-то другому.

0 голосов
/ 19 июня 2020

Я использовал этот пакет github для локализации. Работает очень хорошо и довольно легко реализуется. Я знаю, что это не дает прямого ответа на ваш вопрос, но это потенциальный обходной путь.

https://github.com/LazZiya/ExpressLocalization/wiki

0 голосов
/ 19 июня 2020

Создайте самое простое приложение, которое локализует модели / аннотации данных и работает с 2.2 и не работает с 3.1. Это может помочь найти проблему. Если этого не произошло, откройте проблему на lo c do c и укажите ссылку на репо.

Go внизу страницы lo c и выберите эту страницу

Планируете ли вы переход с AddNewtonsoftJson? См. Newtonsoft. Json (Json. NET) поддержка

...