| CODENOTIFIER | HelpYou are not signed inSign in |
Project: Trac-trunk
Revision: 7498
Author: cmlenz
Date: 26 Aug 2008 12:04:34
Diff at Trac: http://trac.edgewall.org/changeset/7498
Changes:Improve the `ngettext`-style functions to automaticaly add a `num` parameter, similar to [7423] on 0.11-stable.
Files:| ... | ...@@ -34,9 +34,8 @@ | |
| 34 | 34 | |
| 35 | 35 | def ngettext_noop(singular, plural, num, **kwargs): |
| 36 | 36 | string = (plural, singular)[num == 1] |
| 37 | if '%(num)' in string: | |
| 38 | kwargs.update(num=num) | |
| 39 | return kwargs and string % kwargs or string | |
| 37 | kwargs.setdefault('num', num) | |
| 38 | return string % kwargs | |
| 40 | 39 | |
| 41 | 40 | _param_re = re.compile(r"%\((\w+)\)(?:s|[\d]*d|\d*.?\d*[fg])") |
| 42 | 41 | def _tag_kwargs(trans, kwargs): |
| ... | ...@@ -44,15 +43,14 @@ | |
| 44 | 43 | for i in xrange(1, len(trans_elts), 2): |
| 45 | 44 | trans_elts[i] = kwargs.get(trans_elts[i], '???') |
| 46 | 45 | return tag(*trans_elts) |
| 47 | ||
| 46 | ||
| 48 | 47 | def tgettext_noop(string, **kwargs): |
| 49 | 48 | return kwargs and _tag_kwargs(string, kwargs) or string |
| 50 | 49 | |
| 51 | 50 | def tngettext_noop(singular, plural, num, **kwargs): |
| 52 | 51 | string = (plural, singular)[num == 1] |
| 53 | if '%(num)' in string: | |
| 54 | kwargs.update(num=num) | |
| 55 | return kwargs and _tag_kwargs(string, kwargs) or string | |
| 52 | kwargs.setdefault('num', num) | |
| 53 | return _tag_kwargs(string, kwargs) | |
| 56 | 54 | |
| 57 | 55 | |
| 58 | 56 | try: |
| ... | ...@@ -72,11 +70,10 @@ | |
| 72 | 70 | |
| 73 | 71 | def ngettext(singular, plural, num, **kwargs): |
| 74 | 72 | kwargs = kwargs.copy() |
| 73 | kwargs.setdefault('num', num) | |
| 75 | 74 | def _ngettext(): |
| 76 | 75 | trans = get_translations().ungettext(singular, plural, num) |
| 77 | if '%(num)' in trans: | |
| 78 | kwargs.update(num=num) | |
| 79 | return kwargs and trans % kwargs or trans | |
| 76 | return trans % kwargs | |
| 80 | 77 | if not hasattr(_current, 'translations'): |
| 81 | 78 | return LazyProxy(_ngettext) |
| 82 | 79 | return _ngettext() |
| ... | ...@@ -92,11 +89,10 @@ | |
| 92 | 89 | |
| 93 | 90 | def tngettext(singular, plural, num, **kwargs): |
| 94 | 91 | kwargs = kwargs.copy() |
| 92 | kwargs.setdefault('num', num) | |
| 95 | 93 | def _tngettext(): |
| 96 | 94 | trans = get_translations().ungettext(singular, plural, num) |
| 97 | if '%(num)' in trans: | |
| 98 | kwargs.update(num=num) | |
| 99 | return kwargs and _tag_kwargs(trans, kwargs) or trans | |
| 95 | return _tag_kwargs(trans, kwargs) | |
| 100 | 96 | if not hasattr(_current, 'translations'): |
| 101 | 97 | return LazyProxy(_tngettext) |
| 102 | 98 | return _tngettext() |