From 0d17d349839c7b151fdc572d15b4e097fbb76b7c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 29 Jan 2021 16:25:14 +0100 Subject: [PATCH] :sparkles: Show default lang transation if no translation found. --- frontend/src/app/util/i18n.cljs | 39 ++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index c1d9d4c21..989132af6 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -57,29 +57,38 @@ [x] (C. x)) +(defn empty-string? + [v] + (or (nil? v) (empty? v))) + (defn t ([locale code] - (let [code (name code) - value (gobj/getValueByKeys translations code locale) - value (if (nil? value) code value)] - (if (array? value) - (aget value 0) - value))) + (let [code (name code) + value (gobj/getValueByKeys translations code locale)] + (if (empty-string? value) + (if (= cfg/default-language locale) + code + (t cfg/default-language code)) + (if (array? value) + (aget value 0) + value)))) ([locale code & args] - (let [code (name code) - value (gobj/getValueByKeys translations code locale) - value (if (nil? value) code value) - plural (first (filter c? args)) - value (if (array? value) - (if (= @plural 1) (aget value 0) (aget value 1)) - value)] - (apply str/format value (map #(if (c? %) @% %) args))))) + (let [code (name code) + value (gobj/getValueByKeys translations code locale)] + (if (empty-string? value) + (if (= cfg/default-language locale) + code + (apply t cfg/default-language code args)) + (let [plural (first (filter c? args)) + value (if (array? value) + (if (= @plural 1) (aget value 0) (aget value 1)) + value)] + (apply str/fmt value (map #(if (c? %) @% %) args))))))) (defn tr ([code] (t @locale code)) ([code & args] (apply t @locale code args))) - ;; DEPRECATED (defn use-locale []