11
22from django .conf import settings
33from django .template import loader
4+ from django .views .i18n import set_language
45from xadmin .plugins .utils import get_context_dict
56from xadmin .sites import site
6- from xadmin .views import BaseAdminPlugin , CommAdminView
7+ from xadmin .views import BaseAdminPlugin , CommAdminView , BaseAdminView
78
89
910class SetLangNavPlugin (BaseAdminPlugin ):
@@ -13,6 +14,13 @@ def block_top_navmenu(self, context, nodes):
1314 context ['redirect_to' ] = self .request .get_full_path ()
1415 nodes .append (loader .render_to_string ('xadmin/blocks/comm.top.setlang.html' , context = context ))
1516
17+ class SetLangView (BaseAdminView ):
18+
19+ def post (self , request , * args , ** kwargs ):
20+ if 'nav_menu' in request .session :
21+ del request .session ['nav_menu' ]
22+ return set_language (request )
23+
1624if settings .LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings .MIDDLEWARE_CLASSES :
1725 site .register_plugin (SetLangNavPlugin , CommAdminView )
18- site .register_view (r'^i18n/' , lambda site : 'django.conf.urls.i18n' , 'i18n ' )
26+ site .register_view (r'^i18n/setlang/$ ' , SetLangView , 'set_language ' )
0 commit comments