diff options
| author | bwarsaw | 2002-03-16 02:06:50 +0000 |
|---|---|---|
| committer | bwarsaw | 2002-03-16 02:06:50 +0000 |
| commit | 233a7b19cf70c0036b5b66b22f6ed6dd60ea75ae (patch) | |
| tree | aa27fe8cd1248b5912de3b531583b79be6c1edbc /Mailman/i18n.py | |
| parent | 157274be8b6f6540ff212d3b8499103d797dfa33 (diff) | |
| download | mailman-233a7b19cf70c0036b5b66b22f6ed6dd60ea75ae.tar.gz mailman-233a7b19cf70c0036b5b66b22f6ed6dd60ea75ae.tar.zst mailman-233a7b19cf70c0036b5b66b22f6ed6dd60ea75ae.zip | |
Diffstat (limited to 'Mailman/i18n.py')
| -rw-r--r-- | Mailman/i18n.py | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/Mailman/i18n.py b/Mailman/i18n.py index c1bb82249..1ab736209 100644 --- a/Mailman/i18n.py +++ b/Mailman/i18n.py @@ -51,7 +51,7 @@ if _translation is None: -def _x(s, frame): +def _(s): # Do translation of the given string into the current language, and do # Ping-string interpolation into the resulting string. # @@ -63,34 +63,11 @@ def _x(s, frame): # and have it Just Work. Note that the lookup order for keys in the # original string is 1) locals dictionary, 2) globals dictionary. # + # First, get the frame of the caller + frame = sys._getframe(1) # A `safe' dictionary is used so we won't get an exception if there's a # missing key in the dictionary. dict = SafeDict(frame.f_globals.copy()) dict.update(frame.f_locals) # Translate the string, then interpolate into it. return _translation.gettext(s) % dict - - - -# Public version, to be used by most modules. There are three ways to get the -# stack frame to serve as the namespace source. First, we try to use the -# Python 2.1 extension to the sys module. If that's not there, we fall back -# to the optional Mailman enhancement module, and finally use the -# tried-and-true (but slow) pure Python approach. The latter should work in -# every supported version of Python. -if hasattr(sys, '_getframe'): - def _(s): - return _x(s, sys._getframe(1)) -else: - try: - import _mailman - def _(s): - return _x(s, _mailman._getframe(1)) - except ImportError: - def _(s): - exc = 'exc' - try: raise exc - except exc: - # Get one frame up the stack. - frame = sys.exc_info()[2].tb_frame.f_back - return _x(s, frame) |
