(domain, localedir=None, languages=None, all=False)
| 487 | |
| 488 | # Locate a .mo file using the gettext strategy |
| 489 | def find(domain, localedir=None, languages=None, all=False): |
| 490 | # Get some reasonable defaults for arguments that were not supplied |
| 491 | if localedir is None: |
| 492 | localedir = _default_localedir |
| 493 | if languages is None: |
| 494 | languages = [] |
| 495 | for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): |
| 496 | val = os.environ.get(envar) |
| 497 | if val: |
| 498 | languages = val.split(':') |
| 499 | break |
| 500 | if 'C' not in languages: |
| 501 | languages.append('C') |
| 502 | # now normalize and expand the languages |
| 503 | nelangs = [] |
| 504 | for lang in languages: |
| 505 | for nelang in _expand_lang(lang): |
| 506 | if nelang not in nelangs: |
| 507 | nelangs.append(nelang) |
| 508 | # select a language |
| 509 | if all: |
| 510 | result = [] |
| 511 | else: |
| 512 | result = None |
| 513 | for lang in nelangs: |
| 514 | if lang == 'C': |
| 515 | break |
| 516 | mofile = os.path.join(localedir, lang, 'LC_MESSAGES', '%s.mo' % domain) |
| 517 | if os.path.exists(mofile): |
| 518 | if all: |
| 519 | result.append(mofile) |
| 520 | else: |
| 521 | return mofile |
| 522 | return result |
| 523 | |
| 524 | |
| 525 | # a mapping between absolute .mo file path and Translation object |
no test coverage detected
searching dependent graphs…