kivy Buildozer Android 构建找不到翻译文件

kivy Buildozer Android build cannot find translation files

Post 使用 Buildozer 为 Android 构建我的 kivy 应用程序 运行 步骤失败,因为它找不到 gettext 的消息文件。 我的 .spec 文件中有以下行:

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

.mo 文件在 ./locales 下的当前应用程序目录中。

我还在 .spec 中包含了以下行:

source.include_patterns = locales/*

最后,我在main.py中的代码包括:

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

languages 设置为 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'...

我如何验证它们是否包含在应用程序中? 谢谢, 马丁

我不确定这是否是最简单的方法,但可以通过切换到 p4a native 并使用 setup.py:

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

然后使用 pkg_resources 访问文件:

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