Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как предоставить возможность локализовать библиотку

#android #android_resources


Дано: библиотека, которая запускает свои окна, со своими текстовыми полями и строками.
Имеется три файлы string.xml для русскоговорящих и англоговорящих регионов, которые
локализуют эти окна.

Требуется: дать возможность локализовать данные окна пользователям библиотеки. Я
не могу поддерживать все языки, а значит я должен предоставить эту возможность пользователям
библиотеки.

Вариант решения: создать Java-класс, который будет содержать все строки. Строки будут
заполняться строковыми ресурсами (что дает возможность Android'y выбирать локализацию).
Пользователь будет сам заполнять эти поля, если требуется. Само собой, этот способ
неудобный, даже при условии небольшого количества строк.



Вопрос: как предоставить возможность пользователю библиотеки локализовать ее?
    


Ответы

Ответ 1



Т.к. переопределять ресурсы библиотечные можно, то вам надо предоставить юзерам лишь список оных. Они смогут сами создать у себя в проекте папку дл нужной локализации и поместить туда нужные троки для перевода. Приложение будет брать их оттуда. Т.е. в README приведите ссылку на библиотечный res/values/strings.xml (или отдельный файл если переводить надо не все строки) и укажите юзеру чтобы он взял оттуда строки и сам их перевёл в своём проекте

Ответ 2



Я смог решить эту проблему, попробовав создать в проекте файл strings.xml в папке values-de для немецкого языка. Проект "подхватил" эти значения. Итого: проект-библиотека может использовать строковые ресурсы проекта, в котором используется библиотека, при условии, что в файле проекта strings.xml используются те же имена строк, что и в файле strings.xml библиотеки.

Комментариев нет:

Отправить комментарий