Add ability to explicitly defer translation
There are cases where many strings in a file need to be marked for i18n extraction, but only some should be translated at the point of use, while others must defer translation until later. mailman/mailman!301 (merged) is the motivating use case and explains why we really want explicit support for this in flufl.i18n.
@msapiro experimented with two spellings:
with _.using('en'):
_('mark me')
and
with _.using(''):
_('mark me')
The former won't work for practical reasons; it's possible that a site will actually have an English catalog, and that would mean the string would actually get translated at the point of use.
The latter is better, but it works by accident. I think we want something more explicit. Here are two spellings I can think of:
with _.using(DEFERRED):
_('mark me')
where DEFERRED
is a special symbol defined by flufl.i18n.
with _.defer_translation():
_('mark me')
I think I like the latter better because it doesn't require the importing of an additional symbol.