Речь идет о переводных строках приложения. Захотелось сделать один текст включающий в себя существующие переводы в розетта.
И тут выяснилось, что напрямую
printstr = _('мой текст')
работает только для активного языка. Можно конечно активировать другие переводы:
translation.activate('de')
print unicode(_('Мой текст'))
А можно получить перевод нужной мне строки напрямую.
printstr = gettext.translation('django', '%s/locale' % settings.BASE_DIR, ['nl'], fallback=True).ugettext('Мой текст')
теперь это выглядит так:
welcome_str = []
for lang in [la[0] for la in settings.LANGUAGE]
welcome_str += [gettext.translation('django', '%s/locale' % settings.BASE_DIR, [lang,], fallback=True).ugettext(u'hello'),]
pprint ','.join(welcome_str)
'willkomen, wellcome, benvenuto....'