#!/usr/bin/env python # -*- coding: utf-8 -*- from gettext import * _searchdirs = None origfind = find def setpaths(pathlist): global _searchdirs if isinstance(pathlist, list): _searchdirs = pathlist else: _searchdirs = list(pathlist) def addpath(path): global _searchdirs if _searchdirs is None: _searchdirs = list(path) else: if path not in _searchdirs: _searchdirs.append(path) def delpath(path): global _searchdirs if _searchdirs is not None: if path in _searchdirs: _searchdirs.remove(path) def clearpath(): global _searchdirs if _searchdirs is not None: _searchdirs = None def find(domain, localedir=None, languages=None, all=False): if _searchdirs is None: return origfind(domain, localedir, languages, all) searches = [localedir] + _searchdirs results = list() for dir in searches: res = origfind(domain, dir, languages, all) if all is False: results.append(res) else: results.extend(res) if all is False: results = filter(lambda x: x is not None, results) if len(results) == 0: return None else: return results[0] else: return results #Is there a smarter/cleaner pythonic way for this? translation.func_globals['find'] = find