Я говорил про xgettext. Задачей которого является парсинг исходников и создание индекса, содержащего все помеченные в исходник тексты.
Перевод как таковой не обязательно должен быть переводом — вполне можно использовать для замены/исправления текстов, т.е. перевод на тот же язык.
Хмм. Есть какая-то причина не использовать gettext?
То есть тексты в исходниках помечаем маркером (вызовом функции)
val textView = findViewById(R.id.text1)
textView.text = _tr(«Real text which you need to translate on multiple languages»)
Далее натравливаем на исходник xgettext, получаем файл индекса в формате .po и далее уже из этого файла делаем входные данные для вашего класса.
_tr — ваша функция, которая ищет текст в индексе, и если находит — возвращает перевод, а если не находит — то ключ.
С точки зрения лицензионной чистоты, если вы используете только xgettext для получения файлов индекса, и не используете библиотеки gettext — ваш продукт не обязан быть GPL. Всё равно как пользоваться gcc для сборки проприентарного продукта.
Аналогичный подход использует, например, библиотека Qt (Qt Linguist).
Разумеется, использовать можно как для переводов на другие языки, так и для любых других целей.
Перевод как таковой не обязательно должен быть переводом — вполне можно использовать для замены/исправления текстов, т.е. перевод на тот же язык.
То есть тексты в исходниках помечаем маркером (вызовом функции)
val textView = findViewById(R.id.text1)
textView.text = _tr(«Real text which you need to translate on multiple languages»)
Далее натравливаем на исходник xgettext, получаем файл индекса в формате .po и далее уже из этого файла делаем входные данные для вашего класса.
_tr — ваша функция, которая ищет текст в индексе, и если находит — возвращает перевод, а если не находит — то ключ.
С точки зрения лицензионной чистоты, если вы используете только xgettext для получения файлов индекса, и не используете библиотеки gettext — ваш продукт не обязан быть GPL. Всё равно как пользоваться gcc для сборки проприентарного продукта.
Аналогичный подход использует, например, библиотека Qt (Qt Linguist).
Разумеется, использовать можно как для переводов на другие языки, так и для любых других целей.