From 5b6bd000472db93b49ea2147e297f7d26a065d4b Mon Sep 17 00:00:00 2001 From: shibao Date: Wed, 25 Jan 2023 21:52:30 -0500 Subject: [PATCH] improve locale --- config/runtime.exs | 21 +++++++++++---------- lib/cannery_web/router.ex | 8 +++++--- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/config/runtime.exs b/config/runtime.exs index aa43ee66..ca345f4a 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -15,17 +15,18 @@ end config :cannery, CanneryWeb.ViewHelpers, shibao_mode: System.get_env("SHIBAO_MODE") == "true" # Set default locale -config :gettext, :default_locale, System.get_env("LOCALE") || "en_US" +config :gettext, :default_locale, System.get_env("LOCALE", "en_US") maybe_ipv6 = if System.get_env("ECTO_IPV6") == "true", do: [:inet6], else: [] database_url = if config_env() == :test do - System.get_env("TEST_DATABASE_URL") || + System.get_env( + "TEST_DATABASE_URL", "ecto://postgres:postgres@localhost/cannery_test#{System.get_env("MIX_TEST_PARTITION")}" + ) else - System.get_env("DATABASE_URL") || - "ecto://postgres:postgres@cannery-db/cannery" + System.get_env("DATABASE_URL", "ecto://postgres:postgres@cannery-db/cannery") end host = @@ -40,7 +41,7 @@ interface = config :cannery, Cannery.Repo, # ssl: true, url: database_url, - pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), + pool_size: String.to_integer(System.get_env("POOL_SIZE", "10")), socket_options: maybe_ipv6 config :cannery, CanneryWeb.Endpoint, @@ -49,10 +50,10 @@ config :cannery, CanneryWeb.Endpoint, # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html # for details about using IPv6 vs IPv4 and loopback vs public addresses. ip: interface, - port: String.to_integer(System.get_env("PORT") || "4000") + port: String.to_integer(System.get_env("PORT", "4000")) ], server: true, - registration: System.get_env("REGISTRATION") || "invite" + registration: System.get_env("REGISTRATION", "invite") if config_env() == :prod do # The secret key base is used to sign/encrypt cookies and other secrets. @@ -76,12 +77,12 @@ if config_env() == :prod do config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.SMTP, relay: System.get_env("SMTP_HOST") || raise("No SMTP_HOST set!"), - port: System.get_env("SMTP_PORT") || 587, + port: System.get_env("SMTP_PORT", 587), username: System.get_env("SMTP_USERNAME") || raise("No SMTP_USERNAME set!"), password: System.get_env("SMTP_PASSWORD") || raise("No SMTP_PASSWORD set!"), ssl: System.get_env("SMTP_SSL") == "true", - email_from: System.get_env("EMAIL_FROM") || "no-reply@#{System.get_env("HOST")}", - email_name: System.get_env("EMAIL_NAME") || "Cannery" + email_from: System.get_env("EMAIL_FROM", "no-reply@#{System.get_env("HOST")}"), + email_name: System.get_env("EMAIL_NAME", "Cannery") # ## Using releases # diff --git a/lib/cannery_web/router.ex b/lib/cannery_web/router.ex index 2c1c9e5f..f4af43a2 100644 --- a/lib/cannery_web/router.ex +++ b/lib/cannery_web/router.ex @@ -11,15 +11,17 @@ defmodule CanneryWeb.Router do plug :protect_from_forgery plug :put_secure_browser_headers plug :fetch_current_user - plug :put_user_locale, default: Application.compile_env(:gettext, :default_locale, "en_US") + plug :put_user_locale end - defp put_user_locale(%{assigns: %{current_user: %{locale: locale}}} = conn, default: default) do + defp put_user_locale(%{assigns: %{current_user: %{locale: locale}}} = conn, _opts) do + default = Application.fetch_env!(:gettext, :default_locale) Gettext.put_locale(locale || default) conn |> put_session(:locale, locale || default) end - defp put_user_locale(conn, default: default) do + defp put_user_locale(conn, _opts) do + default = Application.fetch_env!(:gettext, :default_locale) Gettext.put_locale(default) conn |> put_session(:locale, default) end