Я делаю UWP приложение с Template10, и я в настоящее время имеют такую структуру папок внутри моего проекта локализации:ResourceLoader возвращает неправильный язык внутри ViewModel
Localization
|_en
| |_Resources.resw
|_it-IT
|_Resources.resw
Язык приложения по умолчанию еп, и моя нынешняя культура это-IT. Файлы ресурсов верны, и поведение совместимо с приложением, сначала показывающее итальянскую версию.
Я использую класс ResourceLoader внутри кода View за тобой только отлично, но пока я использую его внутри ViewModel, он всегда возвращает английскую локализацию, даже если она не существует (= пустая строка, хотя она существует в итальянском файле).
Я использую его внутри виртуальной машины, потому что я создаю новый символ и даю ему имя по умолчанию («Нет имени») в качестве заполнителя для пользователя, связывая имя внутри представления.
Это код, я использую:
public class CharacterManagerViewModel : ViewModelBase
{
public Character Character { get; set; }
private ResourceLoader loader = new ResourceLoader();
public override async void OnNavigatedTo(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
if (parameter == null)
{
//Creating a default empty character
Character = new Character();
Character.Name = loader.GetString("NewCharacterName");
}
else
{
//Loading from the Model
}
}
}
Как я называю метод GetString(), текущая культура это-IT, но как-то рамки его игнорирует. Что я делаю неправильно?
Если я не ошибаюсь, важна текущая культура при создании ResourceLoader, а не текущей культуры при вызове GetString. Вы должны использовать явный конструктор для вашей модели viewmodel и убедиться, что культура верна. Если это не сработает, вы можете попытаться создать свой ResourceLoader с помощью 'ResourceLoader.GetForCurrentView()' –
Спасибо, но это не работает. Прежде чем отправлять это сообщение, я попытался переместить инициализацию ResourceLoader внутри события OnNavigatedTo, но это то же самое. Я также попробовал ваше предложение, но это тоже не сработает. Он по-прежнему использует язык по умолчанию. –