diff --git a/CHANGELOG.md b/CHANGELOG.md index 05ed8f9..ddda785 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ This file documents any relevant changes done to ViUR server since version 2. ## [develop] - Current development version +### Added +- translate bone params _category_ and _tooltip_ in json renderer + ## [2.5.0] Vesuv - 2019-06-07 diff --git a/render/json/default.py b/render/json/default.py index dd5aef7..9735bf0 100644 --- a/render/json/default.py +++ b/render/json/default.py @@ -30,7 +30,7 @@ def renderBoneStructure(self, bone): "descr": _(bone.descr), "type": bone.type, "required": bone.required, - "params": bone.params, + "params": self.preprocessParams(bone.params), "visible": bone.visible, "readonly": bone.readOnly, "unique": bone.unique @@ -223,6 +223,22 @@ def renderEntry(self, skel, actionName, params = None): request.current.get().response.headers["Content-Type"] = "application/json" return json.dumps(res) + def preprocessParams(self, params): + """ + Translate params to support multilingual categories and tooltips. + + :param params: Params dictionary which values should be translated. If we get no dictionary, we do nothing. + :type params: dict + + :return: Params dictionary with translated values. + :rtype: dict + """ + + if not isinstance(params, dict): + return params + + return {key: (_(value) if key in ["category", "tooltip"] else value) for key, value in params.items()} + def view(self, skel, action="view", params = None, *args, **kwargs): return self.renderEntry(skel, action, params) @@ -255,10 +271,10 @@ def list(self, skellist, action = "list", params=None, **kwargs): def editItemSuccess(self, skel, params=None, **kwargs): return self.renderEntry(skel, "editSuccess", params) - + def addItemSuccess(self, skel, params=None, **kwargs): return self.renderEntry(skel, "addSuccess", params) - + def addDirSuccess(self, rootNode, path, dirname, params=None, *args, **kwargs): return json.dumps("OKAY")