aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api/controllers/config_controller.ex
diff options
context:
space:
mode:
authorTusooa Zhu <tusooa@kazv.moe>2022-07-14 17:41:33 -0400
committerTusooa Zhu <tusooa@kazv.moe>2022-07-14 17:41:33 -0400
commit1d7e8d6e013bb39e6ca61bd595a22490412db084 (patch)
tree82c735a452239a06ce569bd051e27899b793d8cf /lib/pleroma/web/admin_api/controllers/config_controller.ex
parent074a94e90d44a7c173606c277270eea1327ea42a (diff)
downloadpleroma-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.ex42
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