Advanced i18n: Site-specific translations
class SiteSpecificLocaleMiddleware(LocaleMiddleware):
"""
Replaces LocaleMiddleware.
Only use i18n infrastructure if our site is in settings.TRANSLATED_SITES
request.site.url is set in an earlier middleware
"""
def process_request(self, request):
site_url = request.site.url
site_locale = os.path.join(SOME_PO_FILE_PATH, site_url)
if os.path.isdir(site_specific_locale):
site_specific_trans = _translation(
site_specific_locale,
request.LANGUAGE_CODE)
if brand_specific_trans:
curr_trans = getattr(_active, 'value', None)
if curr_trans:
curr_trans.merge(site_specific_trans)
else:
curr_trans = site_specific_trans
_active.value = curr_trans
Tuesday, September 4, 12