решить
Вводные : есть приложение Xamarin Forms с локализацией через DynamicResource + статически заданные значения в App.xaml + обновляются при старте приложения через Application.Current.Resources
Задачи :
* Надо переделать на подтягивание локализации с RESX файлов - это решаемо окей
* Надо сделать возможность подмены локализации на лету с фолбеком на эти самые RESX файлы
Пока копаю в сторону Markup Extensions, но ловлю сразу несколько проблем
* Поскольку делаю библиотеку для других разрабов - надо как-то передавать туда путь к ресурсам юзера
* И самое главное : как это дело динамически обновлять? INotifyPropertyChanged?
Эта уже есть в xamarin community toolkit, можете подсмотреть решение там или просто добавить эту либу
Можно ссылку куда там именно смотреть? И чтобы именно строки можно было изменять динамически
Делается легко resx если внутри приложения. Но траблы удобно вызывать из XAML. Я бы посмотрел реализации готовых либ, три 4 штуки было или прочто {static} . Если в либе, то знать юзерский класс нельзя просто по индексу(c# index property)
С resx понятно как - {x:Static resources:... } Вопрос в том как потом менять. Я скачиваю resx файл в CDN, потом нужно их читать в приложении. Но непонятно как с ними работать дальше. ResourceManager рассчитан только на работу со статическими ресурсами После загрузки файл получается как string или Stream - скармливаю его ResXResourceReader. Но он выдаёт строки только все вместе через GetResourceSet и перебор (ни о каком выборе языка потом речи не идёт) Я уже не знаю в какую сторону копать
Если погрузка с сервера зачем в принципе resx? Может просто статический словарь?
Попросили именно RESX. Процесс такой : * Разработчик уже имеет какие-то статические resx файлы, которые также лежат в приложении * Загружает их на платформу перевода * Добавляет новые языки (или же коммунити) * Переводит * Разраб формирует дистрибутив, который закидывается на CDN платформы * Приложение тащит файлы с того же CDN и замещает вшитый перевод загруженным
Обсуждают сегодня