Использование файлов.resx в консольном приложении.Net Core 1.1

Я пытался проверить некоторые интересные возможности.Net Core 1.1, но в процессе я столкнулся с проблемой.

Я пытался создать простое консольное приложение.NetCore

Я также создал два простых файла ресурсов.resx в корневом каталоге со строковым ресурсом.

Я позволил консоли загрузить ресурс, и он был успешно загружен.

Когда я изменил CultureInfo и снова загрузил строку.

Я ожидал, что локализованная строка будет загружена, но консоль показала тот же (английский) ресурс по умолчанию

Я делаю что-то не так? Я ожидал, что локализация должна работать как в предыдущих версиях.NET, но это не так.

Мой пример кода ниже:

        //default string loaded
        Console.WriteLine(AppResource.resourseText);
        Console.ReadLine();

        //changing CultureInfo
        CultureInfo.CurrentCulture = new CultureInfo("cs");
        CultureInfo.CurrentUICulture = new CultureInfo("cs");
        CultureInfo cul = new CultureInfo("cs");

        //loading the localized string 3 different ways
        Console.WriteLine(AppResource.resourseText);
        Console.WriteLine(AppResource.ResourceManager.GetString("resourseText"));
        Console.WriteLine(AppResource.ResourceManager.GetString("resourseText", cul));

        Console.ReadLine();

1 ответ

Вы должны установить этот пакет " https://www.nuget.org/packages/Microsoft.Extensions.Localization/", тогда Ваш код выше будет работать так, как Вы хотите. Он проверил uisng .net core 2.0 и консольное приложение

Другие вопросы по тегам