Return list of supported languages as language codes Supported means a translation may be available.
()
| 263 | |
| 264 | |
| 265 | def get_supported_language_codes(): |
| 266 | """Return list of supported languages as language codes |
| 267 | |
| 268 | Supported means a translation may be available. |
| 269 | """ |
| 270 | supported_langs = [] |
| 271 | # Use local import to avoid circular import. |
| 272 | from bleachbit import locale_dir |
| 273 | # The locale_dir may not exist, especially on Windows. |
| 274 | if not os.path.isdir(locale_dir): |
| 275 | return ['en_US', 'en'] |
| 276 | lang_codes = sorted(set(os.listdir(locale_dir) + ['en_US', 'en'])) |
| 277 | for lang in lang_codes: |
| 278 | if lang in ('en', 'en_US'): |
| 279 | supported_langs.append(lang) |
| 280 | continue |
| 281 | if os.path.isdir(os.path.join(locale_dir, lang)): |
| 282 | try: |
| 283 | translation = gettext.translation( |
| 284 | 'bleachbit', locale_dir, languages=[lang]) |
| 285 | if translation: |
| 286 | supported_langs.append(lang) |
| 287 | except FileNotFoundError: |
| 288 | pass |
| 289 | return supported_langs |
| 290 | |
| 291 | |
| 292 | def get_supported_language_code_name_dict(): |