如何为ecto模型字段名称生成gettext转换?

时间:2016-07-28 13:13:46

标签: elixir gettext ecto

我有一个正常的Ecto.Model,我需要将其字段注册为翻译,以将其移至.pot文件。我怎么能这样做?

更新

我正在使用这些字段名来准备翻译错误列表:

errors = changeset
  |> Ecto.Changeset.traverse_errors(fn {msg, opts} ->
    Enum.reduce(opts, msg, fn {key, value}, _ ->
      String.replace(msg, "%{#{key}}", to_string(value))
    end)
  end)

formatted = for {field, messages} <- errors,
                message <- messages,
                do: "#{field} #{translate_error(message)}" # functionality is here

  defp translate_error(msgid) do
    Gettext.dgettext(MyApp.Gettext, "errors", msgid)
  end

我不仅要翻译消息,还要翻译字段!

1 个答案:

答案 0 :(得分:0)

您可以使用GettextSchemaField package