improve locale
This commit is contained in:
		@@ -13,17 +13,18 @@ if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# 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/memex_test#{System.get_env("MIX_TEST_PARTITION")}"
 | 
			
		||||
    )
 | 
			
		||||
  else
 | 
			
		||||
    System.get_env("DATABASE_URL") ||
 | 
			
		||||
      "ecto://postgres:postgres@memex-db/memex"
 | 
			
		||||
    System.get_env("DATABASE_URL", "ecto://postgres:postgres@memex-db/memex")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
host =
 | 
			
		||||
@@ -38,7 +39,7 @@ interface =
 | 
			
		||||
config :memex, Memex.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 :memex, MemexWeb.Endpoint,
 | 
			
		||||
@@ -47,10 +48,10 @@ config :memex, MemexWeb.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.
 | 
			
		||||
@@ -74,12 +75,12 @@ if config_env() == :prod do
 | 
			
		||||
  config :memex, Memex.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") || "memEx"
 | 
			
		||||
    email_from: System.get_env("EMAIL_FROM", "no-reply@#{System.get_env("HOST")}"),
 | 
			
		||||
    email_name: System.get_env("EMAIL_NAME", "memEx")
 | 
			
		||||
 | 
			
		||||
  # ## Using releases
 | 
			
		||||
  #
 | 
			
		||||
 
 | 
			
		||||
@@ -11,15 +11,17 @@ defmodule MemexWeb.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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user