创建 <my_app>.Gettext
模块, 如果是通过 mix phoenix.new
创建的项目, 默认已经创建好了, 位于 web/gettext.ex
defmodule ExampleApp.Gettext do
use Gettext, otp_app: :example_app
end
如果你使用Phoenix框架开发Web项目, 那么 gettext.ex
文件已经自动创建, 位置在 web/gettext.ex
提取国际化字符串并合并到多个Locale目录
#!/bin/bash
mix gettext.extract --merge
下面是目录结构
├── gettext
│ ├── default.pot
│ ├── en
│ │ └── LC_MESSAGES
│ │ ├── default.po
│ │ └── errors.po
│ ├── errors.pot
│ └── zh_CN
│ └── LC_MESSAGES
│ ├── default.po
│ └── errors.po
创建新的语言, 指定 --locale pt_BR
参数, 创建一个葡萄牙语的Locale
mix gettext.merge priv/gettext --locale pt_BR
├── default.pot
├── en
│ └── LC_MESSAGES
│ ├── default.po
│ └── errors.po
├── errors.pot
├── pt_BR
│ └── LC_MESSAGES
│ ├── default.po
│ └── errors.po
└── zh_CN
└── LC_MESSAGES
├── default.po
└── errors.po
mix gettext.merge
命令自动复制了 default.pot
, 和 errors.pot
到 pt_BR
的 *.po
文件.
默认用mix phoenix.new
创建的项目, 在 web/web.ex
模块中的控制器, 视图, 和通道中已经import进来了Gettext模块, 因此在这些对应的组件中可以直接使用 gettext
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。