Phoenix i18n利器 - Gettext 使用简介

i18n 简介

i18n 通常有两种方式,一种是前端翻译,一种是后端渲染前翻译,前端翻译的代表是Google Translate和LocalizeJS,后端一般是由各个框架提供,在模板层面替换指定字符串至指定语言。

Gettext 简介

Gettext是Phoenix默认的i18n功能套件,功能十分强大。

我们可以在Phoenix的config.exs中定义默认locale

config :my_app, MyApp.Gettext, default_locale: "zh"

Gettext最主要的命令有两个:

mix gettext.extract
mix gettext.merge priv/gettext

其中 extract 命令会提取所有文件中的 gettext("msgid") 生成模板
merge 命令会根据模板生成对应语言的翻译列表。然后我们修改生成的 .po 文件中的 msgstr 即可。

mix gettext.merge priv/gettext --locale zh
Created directory priv/gettext/zh/LC_MESSAGES
Wrote priv/gettext/zh/LC_MESSAGES/errors.po
Wrote priv/gettext/zh/LC_MESSAGES/coherence.po
Phoenix i18n利器 - Gettext 使用简介_第1张图片
en and zh
Phoenix i18n利器 - Gettext 使用简介_第2张图片
default.po

[1] http://sevenseacat.net/2015/12/20/i18n-in-phoenix-apps.html
[2] http://blog.plataformatec.com.br/2016/03/using-gettext-to-internationalize-a-phoenix-application/
[3] https://hexdocs.pm/gettext/Gettext.html
[4] http://code.parent.co/practical-i18n-with-phoenix-and-elixir/

你可能感兴趣的:(Phoenix i18n利器 - Gettext 使用简介)