mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-07 18:31:04 +00:00
perf: lang setting from core
This commit is contained in:
@@ -11,12 +11,13 @@ from rest_framework.response import Response
|
||||
class ComponentI18nApi(RetrieveAPIView):
|
||||
base_path = 'locale'
|
||||
permission_classes = [AllowAny]
|
||||
lang_data = {}
|
||||
|
||||
def get_component_translations(self, name):
|
||||
if name in self.lang_data:
|
||||
return self.lang_data[name]
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
name = kwargs.get('name')
|
||||
component_dir = safe_join(settings.APPS_DIR, 'i18n', name)
|
||||
lang = request.query_params.get('lang')
|
||||
|
||||
if os.path.exists(component_dir):
|
||||
files = os.listdir(component_dir)
|
||||
else:
|
||||
@@ -28,6 +29,13 @@ class ComponentI18nApi(RetrieveAPIView):
|
||||
_lang = file.split('.')[0]
|
||||
with open(safe_join(component_dir, file), 'r') as f:
|
||||
data[_lang] = json.load(f)
|
||||
self.lang_data[name] = data
|
||||
return data
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
name = kwargs.get('name')
|
||||
lang = request.query_params.get('lang')
|
||||
data = self.get_component_translations(name)
|
||||
|
||||
if lang:
|
||||
data = data.get(lang) or {}
|
||||
|
@@ -3,7 +3,7 @@ from rest_framework import generics
|
||||
from rest_framework.permissions import AllowAny
|
||||
|
||||
from authentication.permissions import IsValidUserOrConnectionToken
|
||||
from common.const.choices import COUNTRY_CALLING_CODES
|
||||
from common.const.choices import COUNTRY_CALLING_CODES, Language
|
||||
from common.utils import get_logger, lazyproperty
|
||||
from common.utils.timezone import local_now
|
||||
from .. import serializers
|
||||
@@ -26,7 +26,14 @@ class OpenPublicSettingApi(generics.RetrieveAPIView):
|
||||
return {
|
||||
"XPACK_ENABLED": settings.XPACK_ENABLED,
|
||||
"INTERFACE": self.interface_setting,
|
||||
"COUNTRY_CALLING_CODES": COUNTRY_CALLING_CODES
|
||||
"COUNTRY_CALLING_CODES": COUNTRY_CALLING_CODES,
|
||||
"LANGUAGES": [
|
||||
{
|
||||
'name': title,
|
||||
'code': code
|
||||
}
|
||||
for code, title in Language.choices
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user