Elixir 我如何为EXTO模型字段名生成gettext翻译?
我有一个普通的Elixir 我如何为EXTO模型字段名生成gettext翻译?,elixir,gettext,ecto,Elixir,Gettext,Ecto,我有一个普通的exto.Model,我需要将它的字段注册为翻译,以便将它们移动到.pot文件中。我该怎么做 更新 我使用这些字段名准备翻译错误列表: errors = changeset |> Ecto.Changeset.traverse_errors(fn {msg, opts} -> Enum.reduce(opts, msg, fn {key, value}, _ -> String.replace(msg, "%{#{key}}", to_st
exto.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
errors=changeset
|>EXTO.Changeset.traverse_错误(fn{msg,opts}->
reduce(opts,msg,fn{key,value},->
替换(msg,“%{{key}}”,为_字符串(值))
(完)
(完)
格式化=对于{field,messages}您可以这样做。您是否在任何模板的某个地方打印字段名?你用的是什么代码?@Dogbert我更新了答案,@Dogbert这有没有被回答过?解决办法是什么?