A project that integrates Phoenix with Linguist, providing a plug and view helpers
PhoenixLinguistPlug
checks if there's a :locale param on the requested route, if there is and matches the existing locales, puts the locale on the session. If the requested :locale does not exist, forwards the user to the ErrorView
404
handler defined. If there isn't a :locale defined, PhoenixLinguistPlug
puts the default locale on the session
PhoenixLinguist.Helpers
are a couple of view helpers that can be used on templates to help determine user's prefered locale
You can see the online documentation for more information.
Elixir 1.0.2
Phoenix 0.10.0
Define your I18n Module on config.ex
next to other Endpoint Settings
config :my_app, MyApp.Endpoint,
url: [host: "localhost"],
secret_key_base: "l6M/YRIzkiqMk5Irn9UNm7ANo1BoHIF0XchxNmcUJWhdKZdERA45ASDFIxZ",
debug_errors: false,
i18n: MyApp.I18n
Add PhoenixLinguist.Plug
to the plug list on your routes file, on the browser pipeline after Phoenix plugs
pipeline :browser do
plug :accepts, ~w(html)
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug PhoenixLinguist.Plug
end
If you need to use the helper functions, add PhoenixLinguist.Helpers
to your web module:
def view do
quote do
use Phoenix.View, root: "web/templates"
import MyAPP.Router.Helpers
use Phoenix.HTML
import PhoenixLinguist.Helpers
end
end
Check the online documentation for the list of helpers available