defmodule Gulib.Translator do @settings Application.get_env(:gulib, Gulib.Gettext) || [] @default_locale Gulib.get(@settings, :default_locale, "en") # 默认的语言 def with_locale(locale, fun) do old_locale = Gettext.get_locale(Gulib.Gettext) Gettext.put_locale(Gulib.Gettext, locale) result = fun.() Gettext.put_locale(Gulib.Gettext, old_locale) result end def dgettext domain, msgid, bindings \\ %{} do Gettext.dgettext(Gulib.Gettext, domain, msgid, bindings) end @spec current_locale() :: String.t def current_locale, do: Gettext.get_locale(Gulib.Gettext) @spec default_locale() :: String.t def default_locale, do: @default_locale end