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

Add site-locale setting

parent 65c6bb84
No related branches found
No related tags found
No related merge requests found
......@@ -51,6 +51,16 @@ const SECTIONS = [
note: "Not all databases support timezones, in which case this setting won't take effect.",
allowValueCollection: true
},
{
key: "site-locale",
display_name: "Language",
type: "select",
options: [
{ name: "Default", value: "" },
...MetabaseSettings.get("available_locales").map(([value, name]) => ({ name, value }))
],
placeholder: "Select a language"
},
{
key: "anon-tracking-enabled",
display_name: "Anonymous Tracking",
......
......@@ -21,7 +21,10 @@
[task :as task]
[util :as u]]
[metabase.core.initialization-status :as init-status]
[metabase.models.user :refer [User]]
[metabase.models
[user :refer [User]]
[setting :as setting]]
[puppetlabs.i18n.core :as i18n :refer [trs trsn tru trun]]
[ring.adapter.jetty :as ring-jetty]
[ring.middleware
[cookies :refer [wrap-cookies]]
......@@ -31,7 +34,16 @@
[params :refer [wrap-params]]
[session :refer [wrap-session]]]
[toucan.db :as db])
(:import org.eclipse.jetty.server.Server))
(:import java.util.Locale
org.eclipse.jetty.server.Server))
;; HACK: replace this with setting event listener
(defn sync-locale []
(let [site-locale (setting/get :site-locale)
current-locale (.toLanguageTag (Locale/getDefault))]
(log/info (trs "Hello World!"))
(if (and site-locale (not= current-locale site-locale))
(Locale/setDefault (Locale/forLanguageTag site-locale)))))
;;; CONFIG
......@@ -133,6 +145,10 @@
;; 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"))
(init-status/set-complete!)
(log/info "Metabase Initialization COMPLETE"))
......
......@@ -7,8 +7,10 @@
[common :as common]
[setting :as setting :refer [defsetting]]]
[metabase.util.password :as password]
[puppetlabs.i18n.core :refer [available-locales]]
[toucan.db :as db])
(:import java.util.TimeZone))
(:import java.util.Locale
java.util.TimeZone))
(defsetting check-for-updates
"Identify when new versions of Metabase are available."
......@@ -33,6 +35,10 @@
(cond->> (s/replace new-value #"/$" "")
(not (s/starts-with? new-value "http")) (str "http://"))))))
(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)
(defsetting admin-email
"The email address users should be referred to if they encounter a problem.")
......@@ -142,6 +148,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)))
:map_tile_server_url (map-tile-server-url)
:password_complexity password/active-password-complexity
:public_sharing (enable-public-sharing)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment