diff options
author | Tusooa Zhu <tusooa@kazv.moe> | 2022-07-14 17:41:33 -0400 |
---|---|---|
committer | Tusooa Zhu <tusooa@kazv.moe> | 2022-07-14 17:41:33 -0400 |
commit | 1d7e8d6e013bb39e6ca61bd595a22490412db084 (patch) | |
tree | 82c735a452239a06ce569bd051e27899b793d8cf /lib/pleroma/web/admin_api/controllers/config_controller.ex | |
parent | 074a94e90d44a7c173606c277270eea1327ea42a (diff) | |
download | pleroma-1d7e8d6e013bb39e6ca61bd595a22490412db084.tar.gz |
Pass in msgctxt for config translation strings
Diffstat (limited to 'lib/pleroma/web/admin_api/controllers/config_controller.ex')
-rw-r--r-- | lib/pleroma/web/admin_api/controllers/config_controller.ex | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/lib/pleroma/web/admin_api/controllers/config_controller.ex b/lib/pleroma/web/admin_api/controllers/config_controller.ex index f6fbbc910..a03318c0e 100644 --- a/lib/pleroma/web/admin_api/controllers/config_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/config_controller.ex @@ -22,35 +22,51 @@ 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) + defp translate_descriptions(descriptions, path \\ []) do + Enum.map(descriptions, fn desc -> translate_item(desc, path) end) end - defp translate_string(str) do - Gettext.dgettext(Pleroma.Web.Gettext, "config_descriptions", str) + defp translate_string(str, path, type) do + Gettext.dpgettext( + Pleroma.Web.Gettext, + "config_descriptions", + Pleroma.Docs.Translator.Compiler.msgctxt_for(path, type), + str + ) end - defp maybe_put_translated(item, key) do + defp maybe_put_translated(item, key, path) do if item[key] do - Map.put(item, key, translate_string(item[key])) + Map.put( + item, + key, + translate_string( + item[key], + path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)], + to_string(key) + ) + ) else item end end - defp translate_item(item) do + defp translate_item(item, path) do item - |> maybe_put_translated(:label) - |> maybe_put_translated(:description) - |> translate_children() + |> maybe_put_translated(:label, path) + |> maybe_put_translated(:description, path) + |> translate_children(path) end - defp translate_children(%{children: children} = item) when is_list(children) do + defp translate_children(%{children: children} = item, path) when is_list(children) do item - |> Map.put(:children, translate_descriptions(children)) + |> Map.put( + :children, + translate_descriptions(children, path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)]) + ) end - defp translate_children(item) do + defp translate_children(item, _path) do item end |