logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 20588517fc5ed86c77865d879027618a1eb54106
parent 36f6d92d987ccfcd3139f090efb449fb3c2f79d7
Author: Tusooa Zhu <tusooa@kazv.moe>
Date:   Wed, 13 Jul 2022 18:31:35 -0400

Make admin api use translated config descriptions

Diffstat:

Mlib/pleroma/web/admin_api/controllers/config_controller.ex34+++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/admin_api/controllers/config_controller.ex b/lib/pleroma/web/admin_api/controllers/config_controller.ex @@ -22,10 +22,42 @@ defmodule Pleroma.Web.AdminAPI.ConfigController do defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ConfigOperation + defp translate_descriptions(descriptions) do + Enum.map(descriptions, &translate_item/1) + end + + defp translate_string(str) do + Gettext.dgettext(Pleroma.Web.Gettext, "config_descriptions", str) + end + + defp maybe_put_translated(item, key) do + if item[key] do + Map.put(item, key, translate_string(item[key])) + else + item + end + end + + defp translate_item(item) do + item + |> maybe_put_translated(:label) + |> maybe_put_translated(:description) + |> translate_children() + end + + defp translate_children(%{children: children} = item) when is_list(children) do + item + |> Map.put(:children, translate_descriptions(children)) + end + + defp translate_children(item) do + item + end + def descriptions(conn, _params) do descriptions = Enum.filter(Pleroma.Docs.JSON.compiled_descriptions(), &whitelisted_config?/1) - json(conn, descriptions) + json(conn, translate_descriptions(descriptions)) end def show(conn, %{only_db: true}) do