forked from shibao/cannery
configure gettext
This commit is contained in:
parent
be8d3be4b3
commit
24fa837478
@ -52,6 +52,7 @@ You can use the following environment variables to configure Cannery in
|
|||||||
- `SECRET_KEY_BASE`: Secret key base used to sign cookies. Must be generated
|
- `SECRET_KEY_BASE`: Secret key base used to sign cookies. Must be generated
|
||||||
with `docker exec -it cannery mix phx.gen.secret` and set for server to start.
|
with `docker exec -it cannery mix phx.gen.secret` and set for server to start.
|
||||||
- `REGISTRATION`: Controls if user sign-up should be invite only or set to public. Set to `public` to enable public registration. Defaults to `invite`.
|
- `REGISTRATION`: Controls if user sign-up should be invite only or set to public. Set to `public` to enable public registration. Defaults to `invite`.
|
||||||
|
- `LOCALE`: Sets a custom locale. Defaults to `en_US`.
|
||||||
|
|
||||||
# Contribution
|
# Contribution
|
||||||
|
|
||||||
|
@ -40,6 +40,9 @@ config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.Local
|
|||||||
# Swoosh API client is needed for adapters other than SMTP.
|
# Swoosh API client is needed for adapters other than SMTP.
|
||||||
config :swoosh, :api_client, false
|
config :swoosh, :api_client, false
|
||||||
|
|
||||||
|
# Gettext
|
||||||
|
config :gettext, :default_locale, "en_US"
|
||||||
|
|
||||||
# Configure esbuild (the version is required)
|
# Configure esbuild (the version is required)
|
||||||
# config :esbuild,
|
# config :esbuild,
|
||||||
# version: "0.14.0",
|
# version: "0.14.0",
|
||||||
|
@ -12,6 +12,9 @@ if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do
|
|||||||
config :cannery, CanneryWeb.Endpoint, server: true
|
config :cannery, CanneryWeb.Endpoint, server: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Set locale
|
||||||
|
Gettext.put_locale(System.get_env("LOCALE") || "en_US")
|
||||||
|
|
||||||
maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: []
|
maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: []
|
||||||
|
|
||||||
database_url =
|
database_url =
|
||||||
|
@ -18,8 +18,7 @@ defmodule CanneryWeb.ErrorHelpers do
|
|||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<%= for error <- Keyword.get_values(@form.errors, @field) do %>
|
<%= for error <- Keyword.get_values(@form.errors, @field) do %>
|
||||||
<span class={"invalid-feedback #{@extra_class}"}
|
<span class={"invalid-feedback #{@extra_class}"} phx-feedback-for={input_name(@form, @field)}>
|
||||||
phx-feedback-for={input_name(@form, @field)}>
|
|
||||||
<%= translate_error(error) %>
|
<%= translate_error(error) %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
@ -61,9 +60,18 @@ defmodule CanneryWeb.ErrorHelpers do
|
|||||||
@spec changeset_errors(Changeset.t()) :: String.t()
|
@spec changeset_errors(Changeset.t()) :: String.t()
|
||||||
def changeset_errors(changeset) do
|
def changeset_errors(changeset) do
|
||||||
changeset
|
changeset
|
||||||
|> Changeset.traverse_errors(fn error -> error |> translate_error() end)
|
|> changeset_error_map()
|
||||||
|> Enum.map_join(". ", fn {key, errors} ->
|
|> Enum.map_join(". ", fn {key, errors} ->
|
||||||
"#{key |> humanize()}: #{errors |> Enum.join(", ")}"
|
"#{key |> humanize()}: #{errors |> Enum.join(", ")}"
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Displays all errors from a changeset in a key value map
|
||||||
|
"""
|
||||||
|
@spec changeset_error_map(Changeset.t()) :: %{atom() => [String.t()]}
|
||||||
|
def changeset_error_map(changeset) do
|
||||||
|
changeset
|
||||||
|
|> Changeset.traverse_errors(fn error -> error |> translate_error() end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
2
mix.exs
2
mix.exs
@ -69,7 +69,7 @@ defmodule Cannery.MixProject do
|
|||||||
setup: ["deps.get", "compile", "ecto.setup", "cmd npm install --prefix assets"],
|
setup: ["deps.get", "compile", "ecto.setup", "cmd npm install --prefix assets"],
|
||||||
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
|
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
|
||||||
"ecto.reset": ["ecto.drop", "ecto.setup"],
|
"ecto.reset": ["ecto.drop", "ecto.setup"],
|
||||||
format: ["cmd npm run format --prefix assets", "format"],
|
format: ["cmd npm run format --prefix assets", "format", "gettext.extract"],
|
||||||
test: [
|
test: [
|
||||||
"cmd npm run test --prefix assets",
|
"cmd npm run test --prefix assets",
|
||||||
"dialyzer",
|
"dialyzer",
|
||||||
|
Loading…
Reference in New Issue
Block a user