cleanup and i18n revert (#14694)
This commit is contained in:
parent
3fa6112669
commit
228c596a9b
|
@ -1,78 +1,14 @@
|
|||
(ns i18n.i18n
|
||||
(:require ["i18n-js" :as i18n]
|
||||
[clojure.string :as string]
|
||||
[status-im.goog.i18n :as goog.i18n]
|
||||
[react-native.languages :as react-native-languages]))
|
||||
[status-im.goog.i18n :as goog.i18n]))
|
||||
|
||||
(def default-device-language (react-native-languages/get-lang-keyword))
|
||||
|
||||
(def languages
|
||||
#{:ar :bn :de :el :en :es :es_419 :es_AR :fil :fr :hi :id :in :it :ja :ko :ms :nl :pl :pt :pt_BR :ru
|
||||
:tr :vi :zh :zh_Hant :zh_TW})
|
||||
|
||||
(defn valid-language
|
||||
[lang]
|
||||
(if (contains? languages lang)
|
||||
(keyword lang)
|
||||
(let [parts (string/split (name lang) #"[\-\_]")
|
||||
short-lang (keyword (str (first parts) "_" (second parts)))
|
||||
shortest-lang (keyword (first parts))]
|
||||
(if (and (> (count parts) 2) (contains? languages short-lang))
|
||||
short-lang
|
||||
(when (contains? languages shortest-lang)
|
||||
shortest-lang)))))
|
||||
|
||||
(defn require-translation
|
||||
[lang-key]
|
||||
(when-let [lang (valid-language (keyword lang-key))]
|
||||
(case lang
|
||||
:ar (js/require "../translations/ar.json")
|
||||
:bn (js/require "../translations/bn.json")
|
||||
:de (js/require "../translations/de.json")
|
||||
:el (js/require "../translations/el.json")
|
||||
:en (js/require "../translations/en.json")
|
||||
:es (js/require "../translations/es.json")
|
||||
:es_419 (js/require "../translations/es_419.json")
|
||||
:es_AR (js/require "../translations/es_AR.json")
|
||||
:fil (js/require "../translations/fil.json")
|
||||
:fr (js/require "../translations/fr.json")
|
||||
:hi (js/require "../translations/hi.json")
|
||||
:id (js/require "../translations/id.json")
|
||||
:in (js/require "../translations/id.json")
|
||||
:it (js/require "../translations/it.json")
|
||||
:ja (js/require "../translations/ja.json")
|
||||
:ko (js/require "../translations/ko.json")
|
||||
:ms (js/require "../translations/ms.json")
|
||||
:nl (js/require "../translations/nl.json")
|
||||
:pl (js/require "../translations/pl.json")
|
||||
:pt (js/require "../translations/pt.json")
|
||||
:pt_BR (js/require "../translations/pt_BR.json")
|
||||
:ru (js/require "../translations/ru.json")
|
||||
:tr (js/require "../translations/tr.json")
|
||||
:vi (js/require "../translations/vi.json")
|
||||
:zh (js/require "../translations/zh.json")
|
||||
:zh_Hant (js/require "../translations/zh_hant.json")
|
||||
:zh_TW (js/require "../translations/zh_TW.json"))))
|
||||
|
||||
(def translations-by-locale
|
||||
(cond-> {:en (require-translation :en)}
|
||||
(not= :en default-device-language)
|
||||
(assoc default-device-language
|
||||
(require-translation (-> (name default-device-language)
|
||||
(string/replace "-" "_")
|
||||
keyword)))))
|
||||
|
||||
(set! (.-fallbacks i18n) true)
|
||||
(set! (.-defaultSeparator i18n) "/")
|
||||
(set! (.-locale i18n) (name default-device-language))
|
||||
(set! (.-translations i18n) (clj->js translations-by-locale))
|
||||
|
||||
(defn init
|
||||
[]
|
||||
(defn setup
|
||||
[default-device-language translations-by-locale]
|
||||
(set! (.-fallbacks i18n) true)
|
||||
(set! (.-defaultSeparator i18n) "/")
|
||||
(set! (.-locale i18n) (name default-device-language))
|
||||
(set! (.-translations i18n) (clj->js translations-by-locale)))
|
||||
(set! (.-locale i18n) default-device-language)
|
||||
(set! (.-translations i18n) translations-by-locale))
|
||||
|
||||
(defn get-translations
|
||||
[]
|
||||
|
@ -134,12 +70,3 @@
|
|||
(.-locale i18n))
|
||||
|
||||
(def format-currency goog.i18n/format-currency)
|
||||
|
||||
(defn load-language
|
||||
[lang loaded-languages]
|
||||
(when-let [lang-key (valid-language (keyword lang))]
|
||||
(when-not (contains? @loaded-languages lang-key)
|
||||
(aset (i18n/get-translations)
|
||||
lang
|
||||
(require-translation lang-key))
|
||||
(swap! loaded-languages conj lang-key))))
|
||||
|
|
|
@ -5,9 +5,7 @@
|
|||
[shadow.test :as st]
|
||||
[shadow.test.env :as env]
|
||||
[utils.re-frame :as rf]
|
||||
[i18n.i18n :as i18n]))
|
||||
|
||||
(i18n/init)
|
||||
status-im2.setup.i18n-resources))
|
||||
|
||||
(defonce repl? (atom false))
|
||||
|
||||
|
|
|
@ -4,10 +4,11 @@
|
|||
[re-frame.core :as re-frame]
|
||||
[status-im.add-new.db :as db]
|
||||
[status-im.chat.models :as chat.models]
|
||||
[i18n.i18n :as i18n]
|
||||
[status-im.react-native.resources :as resources]
|
||||
[status-im.ui.components.icons.icons :as icons]
|
||||
[status-im.ui.components.react :as react])
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im2.setup.i18n-resources :as i18n-resources]
|
||||
[i18n.i18n :as i18n])
|
||||
(:require-macros [status-im.utils.views :as views]))
|
||||
|
||||
(defn- start-chat
|
||||
|
@ -73,8 +74,8 @@
|
|||
|
||||
(defn get-language-topic
|
||||
[]
|
||||
(let [lang (subs (name i18n/default-device-language) 0 2)
|
||||
lang3 (subs (name i18n/default-device-language) 0 3)
|
||||
(let [lang (subs (name i18n-resources/default-device-language) 0 2)
|
||||
lang3 (subs (name i18n-resources/default-device-language) 0 3)
|
||||
lang-name (or (get lang-names lang3) (get lang-names lang))]
|
||||
(when-not (= lang "en")
|
||||
(or lang-name (str "status-" lang)))))
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[quo2.foundations.colors :as colors]
|
||||
[react-native.core :as rn]
|
||||
[react-native.reanimated :as reanimated]
|
||||
[status-im.ui2.screens.chat.pin-limit-popover.style :as style] ;; TODO move to status-im2
|
||||
[status-im.ui2.screens.chat.pin-limit-popover.style :as style]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
;; TODO (flexsurfer) this should be an in-app notification component in quo2
|
||||
|
@ -56,6 +56,6 @@
|
|||
:right 16}}
|
||||
[quo/icon :i/close
|
||||
{:color (colors/theme-colors colors/white colors/neutral-100)
|
||||
:size 8}]]]))])
|
||||
:size 12}]]]))])
|
||||
|
||||
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
[status-im2.navigation.state :as state]
|
||||
[status-im2.navigation.view :as views]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.re-frame :as rf] ;; TODO (14/11/22 flexsurfer) move to status-im2 namespace
|
||||
))
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
;; REGISTER COMPONENT (LAZY)
|
||||
(defn reg-comp
|
||||
|
|
|
@ -12,8 +12,7 @@
|
|||
[status-im.ui.screens.signing.views :as signing]
|
||||
[status-im.ui.screens.wallet-connect.session-proposal.views :as wallet-connect]
|
||||
[status-im.ui.screens.wallet.send.views :as wallet.send.views]
|
||||
[status-im2.common.toasts.view :as toasts] ;; TODO (14/11/22 flexsurfer) move to status-im2
|
||||
;; namespace
|
||||
[status-im2.common.toasts.view :as toasts]
|
||||
[status-im2.navigation.screens :as screens]
|
||||
[status-im2.setup.config :as config]
|
||||
[status-im2.setup.hot-reload :as reloader]))
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
(ns status-im2.setup.config
|
||||
(:require [clojure.string :as string]
|
||||
[react-native.config :as react-native-config] ;; TODO (14/11/22 flexsurfer move to status-im2
|
||||
;; namespace
|
||||
[react-native.config :as react-native-config]
|
||||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.ethereum.ens :as ens]))
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(ns status-im2.setup.core
|
||||
(:require
|
||||
[i18n.i18n :as i18n]
|
||||
[status-im2.setup.i18n-resources :as i18n-resources]
|
||||
[re-frame.core :as re-frame]
|
||||
[re-frame.interop :as interop]
|
||||
[react-native.core :as rn]
|
||||
|
@ -13,8 +14,7 @@
|
|||
[status-im.native-module.core :as status]
|
||||
[status-im.notifications.local :as notifications]
|
||||
[status-im.utils.universal-links.core :as utils.universal-links]
|
||||
[status-im2.contexts.shell.animation :as animation] ;; TODO (14/11/22 flexsurfer move to
|
||||
;; status-im2 namespace
|
||||
[status-im2.contexts.shell.animation :as animation]
|
||||
status-im2.contexts.syncing.events
|
||||
status-im2.navigation.core
|
||||
[status-im2.setup.config :as config]
|
||||
|
@ -22,7 +22,6 @@
|
|||
status-im2.setup.events
|
||||
status-im2.setup.datetime
|
||||
[status-im2.setup.global-error :as global-error]
|
||||
[status-im2.setup.i18n-resources :as i18n-resources]
|
||||
[status-im2.setup.log :as log]
|
||||
status-im2.subs.root))
|
||||
|
||||
|
@ -32,19 +31,15 @@
|
|||
|
||||
(defn init
|
||||
[]
|
||||
|
||||
(log/setup config/log-level)
|
||||
(global-error/register-handler)
|
||||
(when platform/android?
|
||||
(status/set-soft-input-mode status/adjust-resize))
|
||||
(notifications/listen-notifications)
|
||||
(.addEventListener rn/app-state "change" #(re-frame/dispatch [:app-state-change %]))
|
||||
(i18n/init)
|
||||
|
||||
(react-native-languages/add-change-listener
|
||||
#(fn [lang]
|
||||
(i18n/load-language lang i18n-resources/loaded-languages)
|
||||
(i18n/set-language lang)))
|
||||
(react-native-languages/add-change-listener #(fn [lang]
|
||||
(i18n/set-language lang)
|
||||
(i18n-resources/load-language lang)))
|
||||
(react-native-shake/add-shake-listener #(re-frame/dispatch [:shake-event]))
|
||||
(utils.universal-links/initialize)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
(ns status-im2.setup.db
|
||||
(:require [react-native.core :as rn] ;; TODO (14/11/22 flexsurfer move to status-im2 namespace
|
||||
(:require [react-native.core :as rn]
|
||||
[status-im.fleet.core :as fleet]
|
||||
[status-im.wallet.db :as wallet.db]
|
||||
[status-im2.contexts.activity-center.events :as activity-center]))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
(:require [clojure.string :as string]
|
||||
[quo.theme :as quo.theme]
|
||||
[quo2.theme :as quo2.theme]
|
||||
[re-frame.core :as re-frame] ;; TODO (14/11/22 flexsurfer move to status-im2 namespace
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.multiaccounts.login.core :as multiaccounts.login]
|
||||
[status-im.native-module.core :as status]
|
||||
[status-im.utils.keychain.core :as keychain]
|
||||
|
|
|
@ -1,6 +1,78 @@
|
|||
(ns status-im2.setup.i18n-resources
|
||||
(:require [i18n.i18n :as i18n]))
|
||||
(:require [clojure.string :as string]
|
||||
[i18n.i18n :as i18n]
|
||||
[react-native.languages :as react-native-languages]))
|
||||
|
||||
(def default-device-language (react-native-languages/get-lang-keyword))
|
||||
|
||||
(def languages
|
||||
#{:ar :bn :de :el :en :es :es_419 :es_AR :fil :fr :hi :id :in :it :ja :ko :ms :nl :pl :pt :pt_BR :ru
|
||||
:tr :vi :zh :zh_Hant :zh_TW})
|
||||
|
||||
(defonce loaded-languages
|
||||
(atom
|
||||
(conj #{:en} i18n/default-device-language)))
|
||||
(conj #{:en} default-device-language)))
|
||||
|
||||
(defn valid-language
|
||||
[lang]
|
||||
(if (contains? languages lang)
|
||||
(keyword lang)
|
||||
(let [parts (string/split (name lang) #"[\-\_]")
|
||||
short-lang (keyword (str (first parts) "_" (second parts)))
|
||||
shortest-lang (keyword (first parts))]
|
||||
(if (and (> (count parts) 2) (contains? languages short-lang))
|
||||
short-lang
|
||||
(when (contains? languages shortest-lang)
|
||||
shortest-lang)))))
|
||||
|
||||
(defn require-translation
|
||||
[lang-key]
|
||||
(when-let [lang (valid-language (keyword lang-key))]
|
||||
(case lang
|
||||
:ar (js/require "../translations/ar.json")
|
||||
:bn (js/require "../translations/bn.json")
|
||||
:de (js/require "../translations/de.json")
|
||||
:el (js/require "../translations/el.json")
|
||||
:en (js/require "../translations/en.json")
|
||||
:es (js/require "../translations/es.json")
|
||||
:es_419 (js/require "../translations/es_419.json")
|
||||
:es_AR (js/require "../translations/es_AR.json")
|
||||
:fil (js/require "../translations/fil.json")
|
||||
:fr (js/require "../translations/fr.json")
|
||||
:hi (js/require "../translations/hi.json")
|
||||
:id (js/require "../translations/id.json")
|
||||
:in (js/require "../translations/id.json")
|
||||
:it (js/require "../translations/it.json")
|
||||
:ja (js/require "../translations/ja.json")
|
||||
:ko (js/require "../translations/ko.json")
|
||||
:ms (js/require "../translations/ms.json")
|
||||
:nl (js/require "../translations/nl.json")
|
||||
:pl (js/require "../translations/pl.json")
|
||||
:pt (js/require "../translations/pt.json")
|
||||
:pt_BR (js/require "../translations/pt_BR.json")
|
||||
:ru (js/require "../translations/ru.json")
|
||||
:tr (js/require "../translations/tr.json")
|
||||
:vi (js/require "../translations/vi.json")
|
||||
:zh (js/require "../translations/zh.json")
|
||||
:zh_Hant (js/require "../translations/zh_hant.json")
|
||||
:zh_TW (js/require "../translations/zh_TW.json"))))
|
||||
|
||||
;; translations
|
||||
(def translations-by-locale
|
||||
(cond-> {:en (require-translation :en)}
|
||||
(not= :en default-device-language)
|
||||
(assoc default-device-language
|
||||
(require-translation (-> (name default-device-language)
|
||||
(string/replace "-" "_")
|
||||
keyword)))))
|
||||
|
||||
(i18n/setup (name default-device-language) (clj->js translations-by-locale))
|
||||
|
||||
(defn load-language
|
||||
[lang]
|
||||
(when-let [lang-key (valid-language (keyword lang))]
|
||||
(when-not (contains? @loaded-languages lang-key)
|
||||
(aset (i18n/get-translations)
|
||||
lang
|
||||
(require-translation lang-key))
|
||||
(swap! loaded-languages conj lang-key))))
|
||||
|
|
|
@ -3,11 +3,12 @@
|
|||
[cljs.test :refer-macros [deftest is]]
|
||||
[clojure.set :as set]
|
||||
[clojure.string :as string]
|
||||
[i18n.i18n :as i18n]))
|
||||
[i18n.i18n :as i18n]
|
||||
[status-im2.setup.i18n-resources :as i18n-resources]))
|
||||
|
||||
;; english as source of truth
|
||||
(def labels
|
||||
(set (keys (js->clj (:en i18n/translations-by-locale)
|
||||
(set (keys (js->clj (:en i18n-resources/translations-by-locale)
|
||||
:keywordize-keys
|
||||
true))))
|
||||
|
||||
|
@ -16,7 +17,7 @@
|
|||
|
||||
(defn labels-for-all-locales
|
||||
[]
|
||||
(->> i18n/translations-by-locale
|
||||
(->> i18n-resources/translations-by-locale
|
||||
(mapcat #(-> % val (js->clj :keywordize-keys true) keys))
|
||||
set))
|
||||
|
||||
|
@ -1024,14 +1025,14 @@
|
|||
|
||||
;; locales
|
||||
|
||||
(def locales (set (keys i18n/translations-by-locale)))
|
||||
(def locales (set (keys i18n-resources/translations-by-locale)))
|
||||
|
||||
(spec/def ::locale locales)
|
||||
(spec/def ::locales (spec/coll-of ::locale :kind set? :into #{}))
|
||||
|
||||
(defn locale->labels
|
||||
[locale]
|
||||
(-> i18n/translations-by-locale (get locale) (js->clj :keywordize-keys true) keys set))
|
||||
(-> i18n-resources/translations-by-locale (get locale) (js->clj :keywordize-keys true) keys set))
|
||||
|
||||
(defn locale->checkpoint
|
||||
[locale]
|
||||
|
|
|
@ -147,10 +147,9 @@
|
|||
|
||||
(re-frame/reg-sub
|
||||
:chats/sending-image
|
||||
:<- [:chats/current-chat-id]
|
||||
:<- [:chat/inputs]
|
||||
(fn [[chat-id inputs]]
|
||||
(get-in inputs [chat-id :metadata :sending-image])))
|
||||
:<- [:chats/current-chat-inputs]
|
||||
(fn [{:keys [metadata]}]
|
||||
(:sending-image metadata)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:chats/timeline-chat-input-text
|
||||
|
@ -290,12 +289,6 @@
|
|||
(fn [{:keys [metadata]}]
|
||||
(:sending-contact-request metadata)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:chats/sending-image
|
||||
:<- [:chats/current-chat-inputs]
|
||||
(fn [{:keys [metadata]}]
|
||||
(:sending-image metadata)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:chats/timeline-sending-image
|
||||
:<- [:chats/timeline-chat-input]
|
||||
|
|
Loading…
Reference in New Issue