#c# #xamarin
#c# #xamarin
Вопрос:
В моем приложении Xamarin я использую два файла .resx в качестве переводов: Translation.resx для польского языка (по умолчанию) и Translation.en.resx для английского.
Переключение UICulture реализовано и отлично работает на нескольких ПК-эмуляторах Android, но у нас есть один компьютер, на котором это работает не так, как ожидалось.
Для этого конкретного КОМПЬЮТЕРА при cultureInfo = {en}
вызове ResourceManager.GetString(text, cultureInfo);
ВСЕГДА возвращается строка перевода из ресурса по умолчанию (из Translation.resx) вместо Translation.en.resx.
Все компьютеры используют Win10, VS2019, одни и те же версии Xamarin SDK и эмулятор Android, запущенный код из одного и того же репозитория — все то же самое, и все же на одном компьютере это работает не так, как ожидалось.
Не могли бы вы, пожалуйста, дать мне несколько советов, где искать решение проблемы, что проверять и т.д.?
Комментарии:
1. Как вы проверяете настройку CultureInfo?
2. Если вы возвращаете HTTP, укажите язык в заголовке : developer.mozilla.org/en-US/docs/Web/HTTP/Headers /…
3. UWP или Android?
4. @Jason — android
5. вы уверены, что эмулятор Android на этом конкретном компьютере настроен идентично другим?
Ответ №1:
Я исправил проблему с ПК, мне пришлось:
- переустановите Xamarin SDK и эмулятор Android (версии не изменились)
- добавьте полностью новое устройство эмулятора в VS (настройки по умолчанию)
- извлеките свежий репозиторий git в новое местоположение — даже если в коде вообще не было изменений.
Комментарии:
1. Вы можете отметить этот ответ позже, который поможет большему количеству людей с такой же проблемой :).