Skip to content
Snippets Groups Projects
Commit 7a8bdb9d authored by Tom Robinson's avatar Tom Robinson
Browse files

Replace sync-locale hack with site-locale custom setter. Move i18n related...

Replace sync-locale hack with site-locale custom setter. Move i18n related code to metabase.util.i18n
parent a29a50d9
Branches
Tags
No related merge requests found
......@@ -24,6 +24,7 @@
[metabase.models
[user :refer [User]]
[setting :as setting]]
[metabase.util.i18n :refer [set-locale]]
[puppetlabs.i18n.core :refer [trs locale-negotiator]]
[ring.adapter.jetty :as ring-jetty]
[ring.middleware
......@@ -34,15 +35,7 @@
[params :refer [wrap-params]]
[session :refer [wrap-session]]]
[toucan.db :as db])
(:import java.util.Locale
org.eclipse.jetty.server.Server))
;; HACK: replace this with setting event listener
(defn- sync-locale []
(let [new-locale (setting/get :site-locale)
current-locale (.toLanguageTag (Locale/getDefault))]
(when-not (= current-locale new-locale)
(Locale/setDefault (Locale/forLanguageTag new-locale)))))
(:import org.eclipse.jetty.server.Server))
;;; CONFIG
......@@ -145,9 +138,7 @@
;; start the metabot thread
(metabot/start-metabot!))
(sync-locale)
(future (while true (do (Thread/sleep 1000) (sync-locale))))
; (java.util.Locale/setDefault (new java.util.Locale "de"))
(set-locale (setting/get :site-locale))
(init-status/set-complete!)
(log/info "Metabase Initialization COMPLETE"))
......
......@@ -6,8 +6,8 @@
[metabase.models
[common :as common]
[setting :as setting :refer [defsetting]]]
[metabase.util.i18n :refer [available-locales-with-names set-locale]]
[metabase.util.password :as password]
[puppetlabs.i18n.core :refer [available-locales]]
[toucan.db :as db])
(:import java.util.Locale
java.util.TimeZone))
......@@ -37,7 +37,10 @@
(defsetting site-locale
"The default language for this Metabase instance. This only applies to emails, Pulses, etc. Users' browsers will specify the language used in the user interface."
:type :string
:type :string
:setter (fn [new-value]
(setting/set-string! :site-locale new-value)
(set-locale new-value))
:default "en")
(defsetting admin-email
......@@ -150,7 +153,7 @@
:google_auth_client_id (setting/get :google-auth-client-id)
:has_sample_dataset (db/exists? 'Database, :is_sample true)
:ldap_configured ((resolve 'metabase.integrations.ldap/ldap-configured?))
:available_locales (vec (map (fn [locale] [locale (.getDisplayName (Locale/forLanguageTag locale))]) (available-locales)))
:available_locales (available-locales-with-names)
:map_tile_server_url (map-tile-server-url)
:password_complexity password/active-password-complexity
:public_sharing (enable-public-sharing)
......
(ns metabase.util.i18n
(:require
[puppetlabs.i18n.core :refer [available-locales]])
(:import java.util.Locale))
(defn available-locales-with-names
[]
(map (fn [locale] [locale (.getDisplayName (Locale/forLanguageTag locale))]) (available-locales)))
(defn set-locale
[locale]
(Locale/setDefault (Locale/forLanguageTag locale)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment