i18n: translate properly navList and also support proper translation into other admin views.

This commit is contained in:
Marcin Kuzminski 2017-01-12 16:06:06 +01:00
parent a96cc165ee
commit c9799e82e6
2 changed files with 16 additions and 9 deletions

View file

@ -66,6 +66,15 @@ class NavEntry(object):
else:
return url(self.view_name)
def get_localized_name(self, request):
if hasattr(request, 'translate'):
return request.translate(self.name)
else:
# TODO(marcink): Remove this after migrating to pyramid
from pyramid.threadlocal import get_current_request
pyramid_request = get_current_request()
return pyramid_request.translate(self.name)
@implementer(IAdminNavigationRegistry)
class NavigationRegistry(object):
@ -81,13 +90,11 @@ class NavigationRegistry(object):
NavEntry('hooks', _('Hooks'), 'admin_settings_hooks'),
NavEntry('search', _('Full Text Search'), 'admin_settings_search'),
NavEntry('integrations', _('Integrations'),
'global_integrations_home', pyramid=True),
NavEntry('system', _('System Info'), 'admin_settings_system'),
NavEntry('session', _('User Sessions'),
NavEntry('system', _('System Info'),
'admin_settings_system', pyramid=True),
NavEntry('sessions', _('User Sessions'),
'admin_settings_sessions', pyramid=True),
NavEntry('open_source', _('Open Source Licenses'),
'admin_settings_open_source', pyramid=True),
@ -97,8 +104,7 @@ class NavigationRegistry(object):
# NavEntry('supervisor', _('Supervisor'), 'admin_settings_supervisor'),
]
_labs_entry = NavEntry('labs', _('Labs'),
'admin_settings_labs')
_labs_entry = NavEntry('labs', _('Labs'), 'admin_settings_labs')
def __init__(self, labs_active=False):
self._registered_entries = collections.OrderedDict([
@ -112,7 +118,8 @@ class NavigationRegistry(object):
self._registered_entries[entry.key] = entry
def get_navlist(self, request):
navlist = [NavListEntry(i.key, i.name, i.generate_url(request))
navlist = [NavListEntry(i.key, i.get_localized_name(request),
i.generate_url(request))
for i in self._registered_entries.values()]
return navlist

View file

@ -22,7 +22,6 @@ import logging
from pyramid.view import view_config
from rhodecode.translation import _
from rhodecode.svn_support.utils import generate_mod_dav_svn_config
from rhodecode.admin.views.base import AdminSettingsView
@ -41,6 +40,7 @@ class SvnConfigAdminSettingsView(AdminSettingsView):
route_name='admin_settings_vcs_svn_generate_cfg',
request_method='POST', renderer='json')
def vcs_svn_generate_config(self):
_ = self.request.translate
try:
generate_mod_dav_svn_config(self.request.registry)
msg = {