kivy Buildozer Android build не может найти файлы перевода - PullRequest
0 голосов
/ 18 июня 2020

Выполните сборку моего приложения kivy для Android с помощью Buildozer, этап выполнения завершится неудачно, поскольку он не может найти файлы сообщений для gettext. В моем файле .spe c есть следующая строка:

source.include_exts = py,png,jpg,kv,atlas,mo,po,ini

Файлы .mo находятся в текущем каталоге приложения в папке ./locales.

Я также включил следующие строка в .spe c:

source.include_patterns = locales/*

Наконец, мой код в main.py включает:

trans = gettext.translation('base', localedir='locales', languages=[locale.getdefaultlocale()[0][0:2]])

языков установлено значение en, ​​а каталог en находится в папке locales .

Создается впечатление, что Buildozer подбирает их:

Listing '/Users/martinprater/PycharmProjects/kivy/.buildozer/android/app/locale/de'...
Listing '/Users/martinprater/PycharmProjects/kivy/.buildozer/android/app/locale/de/LC_MESSAGES'...
Listing '/Users/martinprater/PycharmProjects/kivy/.buildozer/android/app/locale/en'...
Listing '/Users/martinprater/PycharmProjects/kivy/.buildozer/android/app/locale/en/LC_MESSAGES'...

Как я могу проверить, включены ли они в приложение? Спасибо, Мартин

1 Ответ

0 голосов
/ 26 июня 2020

Я не уверен, что это самый простой способ, но могу решить проблему, переключившись на собственный p4a и используя setup.py:

setup(
    ...
    package_data={'.': ['main.py', '*.kv', '*.png', 'locales/*/LC_MESSAGES/base.mo']}
)

Затем доступ к файлу с помощью pkg_resources:

pkg_resources.resource_filename('pkg', 'locales')
...