summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/gettext.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/gettext.ex')
-rw-r--r--lib/pleroma/web/gettext.ex22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/pleroma/web/gettext.ex b/lib/pleroma/web/gettext.ex
index c8a739c2b..e85290496 100644
--- a/lib/pleroma/web/gettext.ex
+++ b/lib/pleroma/web/gettext.ex
@@ -34,4 +34,26 @@ defmodule Pleroma.Web.Gettext do
Gettext.get_locale()
|> String.replace("_", "-", global: true)
end
+
+ def supports_locale?(locale) do
+ Pleroma.Web.Gettext
+ |> Gettext.known_locales()
+ |> Enum.member?(locale)
+ end
+
+ def locale_or_default(locale) do
+ if supports_locale?(locale) do
+ locale
+ else
+ Gettext.get_locale()
+ end
+ end
+
+ defmacro with_locale_or_default(locale, do: fun) do
+ quote do
+ Gettext.with_locale(Pleroma.Web.Gettext.locale_or_default(unquote(locale)), fn ->
+ unquote(fun)
+ end)
+ end
+ end
end