The first issue happens there is some extra path in LOCALES_PATH. Django looks up for 'locales' in INSTALLED_APPS and LOCALES_PATH, so it is not a good idea to depend on LOCALES_PATH.
I also confirmed the second issue. It excludes zh-CN and zh-TW as far as I checked.
It is caused because the default Django settings.LANGUAGES contains zh-hans and zh-hant instead of zh-CN and zh-TW. Horizon message catalogs use zh-cn and zh-tw, so they are not found in the current horizon language list logic. Handling this kind of fallback is not easy.
Some more observation.
The first issue happens there is some extra path in LOCALES_PATH. Django looks up for 'locales' in INSTALLED_APPS and LOCALES_PATH, so it is not a good idea to depend on LOCALES_PATH.
I also confirmed the second issue. It excludes zh-CN and zh-TW as far as I checked.
It is caused because the default Django settings.LANGUAGES contains zh-hans and zh-hant instead of zh-CN and zh-TW. Horizon message catalogs use zh-cn and zh-tw, so they are not found in the current horizon language list logic. Handling this kind of fallback is not easy.