EctoGettext
EctoGettext - library for localization Ecto validation errors with using Gettext
Installation
The package can be installed as:
Add ecto_gettext to your list of dependencies in
mix.exs:def deps do
[{:ecto_gettext, "~> 0.0.1"}]end
Ensure ecto_gettext is started before your application:
def application do
[applications: [:ecto_gettext]]end
Usage
Create Gettext module (if it is not):
defmodule MyApp.Gettext do use Gettext, otp_app: :my_app endAdd this line into "view" section in the web/web.ex (if you use phoenix framework):
import EctoGettextCreate attributes.po and errors.po files in priv/gettext/locale/LC_MESSAGES/
# attributes.po - file with Ecto attributes such as username, email, password, etc. msgid "username" msgstr "имя пользователя" msgid "password" msgstr "пароль"# errors.po - file with Ecto validation errors # Please use only %{count} interpolation, because it is a hard rule msgid "can't be blank" msgstr "не может быть пустым" msgid "should be at least %{count} characters" msgstr "не может быть короче %{count} символов" msgid "should be at most %{count} characters" msgstr "не может быть длиннее %{count} символов" msgid "has invalid format" msgstr "имеет неверный формат"Use it in your forms:
# Example with slim templates = for {attr, message} <- localize_validations(MyApp.Gettext, f.errors) do li = humanize(attr) <> " " = message