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
en and zh
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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,424评论 25 708
  • 9.2 添加国际化和本地化 Django提供了完整的国际化和本地化支持。它允许你把应用翻译为多种语言,它会处理特定...
    lakerszhy阅读 1,174评论 0 1
  • 一位风度偏偏的公子,看到前方有一艘官船,一打听发现是太守大人的船,便登船拜访,以图能混个面熟,也好向朝廷推荐自己。...
    花之页阅读 330评论 0 4
  • javascript中数组的sort()方法原理研究 js中compare 函数,如果
    饥人谷_Vomx阅读 6,354评论 0 0
  • 作为一个只去过合肥两次,没有在合肥正真生活过的我是不具备资格对这座城市进行评价的,在我即将回到合肥之际,记录一下我...
    首乌阅读 352评论 2 1