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')
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')