Я пытаюсь создать приложение UWP и повторно использовать ключ/значения локализации, которые мы храним во внешней базе данных, используемой разработчиками/переводчиками. Мы экспортируем их в формат resx или других форматов по мере необходимости в зависимости от платформы/приложения.
Новый способ делать вещи - это не выход, потому что это потребует изменения существующих имен ключей или их изменения при экспорте и добавления зависимости ключей локализации к именам элементов XAML ... Это просто звучит глупо. К счастью, resx может работать с UWP, используя их в портативной библиотеке классов, на которую можно ссылаться от XAML через IValueConverter. При работе через отладку/эмулятор в Visual Studio он отлично работает. Моя проблема заключается в том, когда вы создаете пакеты приложений и устанавливаете их на планшет Win10, например, он не работает.Приложение UWP с использованием библиотеки портативных классов с локализованными строками на основе resx
Пример:
реализация IValueConverter используется XAML заканчивает вызвав следующий код в PCL // закодированного CI для тестирования уага CultureInfo = новый CultureInfo ("FR");
string value = Resources.ResourceManager.GetString (key, cultureInfo);
В Visual Studio, где я могу отладить, он возвращает правильное значение ключа (в точности соответствует значению в Resources.fr.resx) Однако после создания/установки пакета приложения, значение равно нулю Я попробовал все комбинации генерации Public/Internal/No Code для стандартного resx (Resources.resx) и конкретного языка resx. Никто не работал. Что такое упаковка приложений, что делает ее неработоспособной? Является ли это ошибкой UWP или я делаю что-то неправильно?