Show default lang transation if no translation found.

This commit is contained in:
Andrey Antukh 2021-01-29 16:25:14 +01:00 committed by Andrés Moya
parent cd8a304690
commit 0d17d34983

View file

@ -57,29 +57,38 @@
[x] [x]
(C. x)) (C. x))
(defn empty-string?
[v]
(or (nil? v) (empty? v)))
(defn t (defn t
([locale code] ([locale code]
(let [code (name code) (let [code (name code)
value (gobj/getValueByKeys translations code locale) value (gobj/getValueByKeys translations code locale)]
value (if (nil? value) code value)] (if (empty-string? value)
(if (= cfg/default-language locale)
code
(t cfg/default-language code))
(if (array? value) (if (array? value)
(aget value 0) (aget value 0)
value))) value))))
([locale code & args] ([locale code & args]
(let [code (name code) (let [code (name code)
value (gobj/getValueByKeys translations code locale) value (gobj/getValueByKeys translations code locale)]
value (if (nil? value) code value) (if (empty-string? value)
plural (first (filter c? args)) (if (= cfg/default-language locale)
code
(apply t cfg/default-language code args))
(let [plural (first (filter c? args))
value (if (array? value) value (if (array? value)
(if (= @plural 1) (aget value 0) (aget value 1)) (if (= @plural 1) (aget value 0) (aget value 1))
value)] value)]
(apply str/format value (map #(if (c? %) @% %) args))))) (apply str/fmt value (map #(if (c? %) @% %) args)))))))
(defn tr (defn tr
([code] (t @locale code)) ([code] (t @locale code))
([code & args] (apply t @locale code args))) ([code & args] (apply t @locale code args)))
;; DEPRECATED ;; DEPRECATED
(defn use-locale (defn use-locale
[] []