def pre_handler(self): """ invoked before a method """ ## if user authenticated, find language setting, activate it. ## Will only work for requests that go through this handler self._stored_language = None current_language = translation.get_language() if self.request.user.is_authenticated(): try: language = self.request.user.my_profile.language if language and language != current_language: ## store the content language self._stored_language = current_language locale.activate_content_language(current_language) translation.activate(language) ## coercion has taken place before the switch, ## so self.instance will be initialized to the old ## language. Update it! #if self.instance: # self.instance.preferred_language = language except WheelProfile.DoesNotExist: pass else: locale.activate_content_language(current_language)
def handle_switch_admin_language(self, switchto, path=None, rest=""): if not self.hasaccess(): return self.forbidden() locale.activate_content_language(switchto) if path: node = Node.objects.get(tree_path=path) else: node = self.instance return self.redirect(node.get_absolute_url(language=switchto) + rest, info="Switched to %s" % switchto)
def test_create_translation_root_post(self, client, root): """ test case where root has content but current language is not translated """ Type1(node=root, title="Hello", language="en").save() request = superuser_request("/edit", method="POST", title="hello", language="nl") locale.activate_content_language('nl') handler = MainHandlerTestable() res = handler.dispatch(request, nodepath="", handlerpath="edit") assert res.status_code == 302 assert root.content(language='nl') assert root.content(language='en') assert root.content(language='nl') != root.content(language='en')
def fin(): translation.activate(old_lang) locale.activate_content_language(None)