Files
bDS2/lib/bds/rendering/labels.ex

64 lines
2.5 KiB
Elixir

defmodule BDS.Rendering.Labels do
@moduledoc """
Pre-translated render labels passed into Liquid template context.
All strings use constant msgids so mix gettext.extract can discover them.
The render locale is bound explicitly via Gettext.with_locale/3.
"""
use Gettext, backend: BDS.Gettext
@spec for_language(String.t()) :: map()
def for_language(language) do
Gettext.with_locale(BDS.Gettext, language, fn ->
%{
taxonomy_label: dgettext("render", "Taxonomy"),
backlinks_label: dgettext("render", "Backlinks"),
linked_from_label: dgettext("render", "Linked from"),
archive_label: dgettext("render", "Archive"),
pagination_label: dgettext("render", "Pagination"),
newer_label: dgettext("render", "newer"),
older_label: dgettext("render", "older"),
calendar_open_label: dgettext("render", "Open calendar"),
calendar_loading_label: dgettext("render", "Loading calendar…"),
calendar_error_label: dgettext("render", "Calendar data could not be loaded."),
calendar_title_label: dgettext("render", "Archive calendar"),
calendar_close_label: dgettext("render", "Close calendar"),
language_switcher_label: dgettext("render", "Language"),
site_search_label: dgettext("render", "Site search"),
search_placeholder: dgettext("render", "Search..."),
search_no_results: dgettext("render", "No results found"),
not_found_message: dgettext("render", "The requested preview page could not be found."),
not_found_back_label: dgettext("render", "Back to preview home"),
youtube_video: dgettext("render", "YouTube video"),
vimeo_video: dgettext("render", "Vimeo video")
}
end)
end
@spec month_name(integer() | nil, String.t()) :: String.t() | nil
def month_name(nil, _language), do: nil
def month_name(month, language) when month in 1..12 do
Gettext.with_locale(BDS.Gettext, language, fn ->
[
dgettext("render", "January"),
dgettext("render", "February"),
dgettext("render", "March"),
dgettext("render", "April"),
dgettext("render", "May"),
dgettext("render", "June"),
dgettext("render", "July"),
dgettext("render", "August"),
dgettext("render", "September"),
dgettext("render", "October"),
dgettext("render", "November"),
dgettext("render", "December")
]
|> Enum.at(month - 1)
end)
end
def month_name(_month, _language), do: nil
end