What is the correct way to include localisation in python packages?

前端 未结 1 967
既然无缘
既然无缘 2021-01-22 02:07

I am writing my own python application and I am wondering what is the correct way to include localisation in source distributions. I struggled with the documentation of setuptoo

1条回答
  •  粉色の甜心
    2021-01-22 02:20

    For the first: there are tools for handling po-files in Python, suggest you look into Babel, then you get the extra commands for setup.py.

    It should be possible to also hook the compile_catalogs as requisite for source build, but I haven't found need for it, as you can't test the messages from a package linked with python setup.py develop if you don't compile first. Also, maybe your source build does not need the .mo at all if you require Babel.

    For the second: Our apps use the pyramid web framework, the convention there is to use package_data:

    setup(
        # ...
        package_data={'yourpackage': ['i18n/*/LC_MESSAGES/*.mo' ]},
        # ...
    

    then if your localizations are in yourpackage/i18n/ you can use pkg_resources to find the path, for example:

    pkg_resources.resource_filename('yourpackage', 'i18n')
    

    will point to the location of translations.

    0 讨论(0)
提交回复
热议问题