Cinder's own text, like pagination, filter labels and buttons, comes translated into:
- Brazilian Portuguese (
pt_BR) - Danish (
da) - Dutch (
nl) - English (
en), the default - French (
fr) - German (
de) - Norwegian (
no) - Spanish (
es) - Swedish (
sv)
Choosing the Language
Cinder uses the current Gettext locale. Set it with Gettext.put_locale/1, which applies to
every Gettext backend, in the LiveView process: in mount, or an on_mount hook shared by your
LiveViews. A locale set in a plug doesn't reach the LiveView once it connects.
defmodule MyAppWeb.UserLive.Index do
use MyAppWeb, :live_view
def mount(_params, session, socket) do
Gettext.put_locale(session["locale"] || "en")
{:ok, socket}
end
endUsing Your Own Translations
To change Cinder's text, or translate it into another language, point Cinder at your app's Gettext backend:
# config/config.exs
config :cinder, gettext_backend: MyAppWeb.GettextCinder reads this when it's compiled, so recompile it after changing it:
mix deps.compile cinder --force
Then add a cinder.po file for each language to your app's Gettext directory, with the text you
want. i18n/gettext/cinder.pot in Cinder's source lists every string:
# priv/gettext/en/LC_MESSAGES/cinder.po
msgid "Filters"
msgstr "Refine"
msgid "Loading..."
msgstr "Please wait..."Your backend replaces Cinder's, so Cinder's own translations are no longer used: any string your
files don't translate shows in English, in every language. Copy Cinder's .po files for the
languages you support as a starting point.
Contributing Translations
To add a language to Cinder itself:
- Copy
i18n/gettext/cinder.pottoi18n/gettext/<locale>/LC_MESSAGES/cinder.po. - Translate each
msgstr. - Open a pull request.