migrate datetime to utils and finish i18n migration (#14604)

chore move datetime to common and update imports

 chore: move i18n tests and update imports, adjust i18n so translations are loading correctly
This commit is contained in:
Jamie Caprani 2022-12-29 21:56:11 +00:00 committed by GitHub
parent ef21312162
commit 1677574a6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
254 changed files with 578 additions and 1842 deletions

View File

@ -1,14 +1,78 @@
(ns i18n.i18n
(:require ["i18n-js" :as i18n]
[clojure.string :as string]
[status-im.goog.i18n :as goog.i18n]))
[status-im.goog.i18n :as goog.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})
(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
[default-device-language translations-by-locale]
[]
(set! (.-fallbacks i18n) true)
(set! (.-defaultSeparator i18n) "/")
(set! (.-locale i18n) default-device-language)
(set! (.-translations i18n) translations-by-locale))
(set! (.-locale i18n) (name default-device-language))
(set! (.-translations i18n) (clj->js translations-by-locale)))
(defn get-translations
[]
@ -70,3 +134,12 @@
(.-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))))

View File

@ -7,7 +7,7 @@
[quo2.components.markdown.text :as text]
[quo2.components.tags.token-tag :as token-tag]
[quo2.foundations.colors :as colors]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.fast-image :as fast-image]))
(def ^:private token-tag-horizontal-spacing 7)

View File

@ -9,7 +9,7 @@
[quo2.foundations.colors :as colors]
[react-native.core :as rn]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]))
[i18n.i18n :as i18n]))
(def ^:private max-reply-length
280)

View File

@ -7,7 +7,7 @@
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.ens :as ens]
[status-im.ethereum.stateofus :as stateofus]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.router.core :as router]
[status-im.utils.db :as utils.db]
[utils.re-frame :as rf]

View File

@ -1,7 +1,7 @@
(ns status-im.bootnodes.core
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[utils.re-frame :as rf]
[status-im2.navigation.events :as navigation]))

View File

@ -11,7 +11,7 @@
[status-im.constants :as constants]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.ens :as ens]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.native-module.core :as status]
[status-im.signing.core :as signing]

View File

@ -1,6 +1,6 @@
(ns status-im.browser.permissions
(:require [status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.qr-scanner.core :as qr-scanner]
[utils.re-frame :as rf]
[status-im2.navigation.events :as navigation]))

View File

@ -8,7 +8,7 @@
[status-im.constants :as constants]
[status-im.data-store.chats :as chats-store]
[status-im.data-store.contacts :as contacts-store]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.mailserver.core :as mailserver]
[status-im.multiaccounts.model :as multiaccounts.model]
[status-im.ui.screens.chat.state :as chat.state]

View File

@ -4,7 +4,7 @@
[clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.chat.models :as chat]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.permissions :as permissions]
[status-im.ui.components.react :as react]
[status-im.utils.config :as config]

View File

@ -9,9 +9,9 @@
[status-im.chat.models.message :as chat.message]
[status-im.chat.models.message-content :as message-content]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[status-im.utils.datetime :as datetime]
[utils.re-frame :as rf]
[i18n.i18n :as i18n]
[utils.datetime :as datetime]
[status-im.utils.utils :as utils]
[taoensso.timbre :as log]))

View File

@ -2,7 +2,7 @@
(:require [cljs.test :refer-macros [deftest is testing]]
[status-im.chat.constants :as constants]
[status-im.chat.models.input :as input]
[status-im.utils.datetime :as datetime]))
[utils.datetime :as datetime]))
(deftest text->emoji
(is (nil? (input/text->emoji nil)))

View File

@ -1,17 +1,17 @@
(ns status-im.chat.models.message-list
(:require ["functional-red-black-tree" :as rb-tree]
[status-im.constants :as constants]
[status-im.utils.datetime :as time]
[utils.re-frame :as rf]))
[utils.re-frame :as rf]
[utils.datetime :as datetime]))
(defn- add-datemark
[{:keys [whisper-timestamp] :as msg}]
;;TODO this is slow
(assoc msg :datemark (time/day-relative whisper-timestamp)))
(assoc msg :datemark (datetime/day-relative whisper-timestamp)))
(defn- add-timestamp
[{:keys [whisper-timestamp] :as msg}]
(assoc msg :timestamp-str (time/timestamp->time whisper-timestamp)))
(assoc msg :timestamp-str (datetime/timestamp->time whisper-timestamp)))
(defn prepare-message
[{:keys [message-id

View File

@ -8,8 +8,8 @@
[status-im.ethereum.ens :as ens]
[status-im.ethereum.stateofus :as stateofus]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.utils.datetime :as datetime]
[utils.re-frame :as rf]
[utils.datetime :as datetime]
[status-im.utils.random :as random]
[status-im2.navigation.events :as navigation]))

View File

@ -21,7 +21,7 @@
status-im.ethereum.subscriptions
status-im.fleet.core
status-im.http.core
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.core :as keycard]
status-im.log-level.core
status-im.mailserver.constants

View File

@ -1,7 +1,7 @@
(ns status-im.fleet.core
(:require [re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.node.core :as node]
[status-im.utils.config :as config]

View File

@ -5,8 +5,8 @@
[re-frame.core :as re-frame]
[status-im.chat.models :as models.chat]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[utils.re-frame :as rf]
[i18n.i18n :as i18n]
[status-im2.contexts.activity-center.events :as activity-center]
[status-im2.navigation.events :as navigation]))

View File

@ -1,73 +0,0 @@
(ns status-im.i18n.i18n
(:require ["i18n-js" :as i18n]
[clojure.string :as string]
[status-im.goog.i18n :as goog.i18n]
[status-im.i18n.i18n-resources :as i18n-resources]))
;;TODO (14/11/22 flexsurfer) this namespace has been moved to the root level, we keep this only for old
;;(status 1.0) code,
;; can be removed with old code later
(set! (.-locale i18n) (name i18n-resources/default-device-language))
(set! (.-fallbacks i18n) true)
(set! (.-defaultSeparator i18n) "/")
(set! (.-translations i18n)
(clj->js i18n-resources/translations-by-locale))
(defn set-language
[lang]
(i18n-resources/load-language lang)
(set! (.-locale i18n) lang))
;;:zh, :zh-hans-xx, :zh-hant-xx have been added until this bug will be fixed
;;https://github.com/fnando/i18n-js/issues/460
(def delimeters
"This function is a hack: mobile Safari doesn't support toLocaleString(), so we need to pass
this map to WKWebView to make number formatting work."
(let [n (.toLocaleString ^js (js/Number 1000.1))
delimiter? (= (count n) 7)]
(if delimiter?
{:delimiter (subs n 1 2)
:separator (subs n 5 6)}
{:delimiter ""
:separator (subs n 4 5)})))
(defn label-number
[number]
(when number
(let [{:keys [delimiter separator]} delimeters]
(.toNumber i18n
(string/replace number #"," ".")
(clj->js {:precision 10
:strip_insignificant_zeros true
:delimiter delimiter
:separator separator})))))
(def default-option-value "<no value>")
(defn label-options
[options]
;; i18n ignores nil value, leading to misleading messages
(into {} (for [[k v] options] [k (or v default-option-value)])))
(defn label-fn
([path] (label-fn path {}))
([path options]
(if (exists? (.t i18n))
(let [options (update options :amount label-number)]
(.t i18n (name path) (clj->js (label-options options))))
(name path))))
(def label (memoize label-fn))
(defn label-pluralize
[count path & options]
(if (exists? (.t i18n))
(.p i18n count (name path) (clj->js options))
(name path)))
(def locale
(.-locale i18n))
(def format-currency goog.i18n/format-currency)

View File

@ -1,84 +0,0 @@
(ns status-im.i18n.i18n-resources
(:require ["i18n-js" :as i18n-js]
["react-native-languages" :default react-native-languages]
[clojure.string :as string]))
;;TODO (14/11/22 flexsurfer) this namespace has been moved to the status-im2 namespace, we keep this
;;only
;;for old (status 1.0) code,
;; can be removed with old code later
(def get-keyword
(if js/global.__TEST__ str keyword))
(def default-device-language
(get-keyword (.-language react-native-languages)))
(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} default-device-language)))
(defn valid-language
[lang]
(if (contains? languages lang)
(get-keyword lang)
(let [parts (string/split (name lang) #"[\-\_]")
short-lang (get-keyword (str (first parts) "_" (second parts)))
shortest-lang (get-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 (get-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 "-" "_")
get-keyword)))))
(defn load-language
[lang]
(when-let [lang-key (valid-language (get-keyword lang))]
(when-not (contains? @loaded-languages lang-key)
(aset (.-translations i18n-js)
lang
(require-translation lang-key))
(swap! loaded-languages conj lang-key))))

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
(ns status-im.keycard.backup-key
(:require [re-frame.core :as re-frame]
[status-im.ethereum.mnemonic :as mnemonic]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.common :as common]
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
[status-im.signing.core :as signing.core]

View File

@ -1,5 +1,5 @@
(ns status-im.keycard.change-pin
(:require [status-im.i18n.i18n :as i18n]
(:require [i18n.i18n :as i18n]
[status-im.keycard.common :as common]
[status-im.keycard.onboarding :as onboarding]
[utils.re-frame :as rf]

View File

@ -3,12 +3,12 @@
[re-frame.core :as re-frame]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.nfc :as nfc]
[status-im.popover.core :as popover]
[status-im.ui.screens.keycard.keycard-interaction :as keycard-sheet]
[status-im.utils.datetime :as utils.datetime]
[utils.re-frame :as rf]
[utils.datetime :as datetime]
[status-im.utils.keychain.core :as keychain]
[status-im.utils.platform :as platform]
[status-im.utils.types :as types]
@ -429,7 +429,7 @@
(rf/defn update-pairings
[{:keys [db]} instance-uid pairing]
(let [paired-on (utils.datetime/timestamp)
(let [paired-on (datetime/timestamp)
pairings (-> (get-in db [:keycard :pairings])
(assoc instance-uid {:pairing pairing :paired-on paired-on}))]
{:keycard/persist-pairings pairings

View File

@ -1,6 +1,6 @@
(ns status-im.keycard.core
(:require [re-frame.db]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
status-im.keycard.backup-key
[status-im.keycard.card :as card]
[status-im.keycard.change-pin :as change-pin]
@ -16,8 +16,8 @@
[status-im.keycard.wallet :as wallet]
[status-im.multiaccounts.recover.core :as multiaccounts.recover]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.utils.datetime :as utils.datetime]
[utils.re-frame :as rf]
[utils.datetime :as datetime]
[status-im2.navigation.events :as navigation]
[taoensso.timbre :as log]))
@ -485,7 +485,7 @@
flow (get-in db [:keycard :flow])
instance-uid (get-in db [:keycard :application-info :instance-uid])
multiaccount (common/find-multiaccount-by-keycard-instance-uid db instance-uid)
paired-on (utils.datetime/timestamp)
paired-on (datetime/timestamp)
pairings (-> (get-in db [:keycard :pairings])
(dissoc (keyword instance-uid))
(assoc instance-uid {:pairing pairing :paired-on paired-on}))

View File

@ -2,7 +2,7 @@
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.common :as common]
status-im.keycard.fx
[status-im.keycard.mnemonic :as mnemonic]

View File

@ -5,15 +5,15 @@
[status-im.constants :as constants]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.eip55 :as eip55]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.common :as common]
status-im.keycard.fx
[status-im.multiaccounts.create.core :as multiaccounts.create]
[status-im.multiaccounts.model :as multiaccounts.model]
[status-im.native-module.core :as status]
[status-im.popover.core :as popover]
[status-im.utils.datetime :as utils.datetime]
[utils.re-frame :as rf]
[utils.datetime :as datetime]
[status-im.utils.keychain.core :as keychain]
[status-im.utils.platform :as platform]
[status-im.utils.types :as types]
@ -40,7 +40,7 @@
:keycard.onboarding.pair.ui/next-pressed]}
[{:keys [db] :as cofx}]
(let [pairing (get-in db [:keycard :secrets :pairing])
paired-on (get-in db [:keycard :secrets :paired-on] (utils.datetime/timestamp))]
paired-on (get-in db [:keycard :secrets :paired-on] (datetime/timestamp))]
(rf/merge cofx
(if pairing
{:db (-> db
@ -369,7 +369,7 @@
(assoc-in [:keycard :pin :status] :verifying)
(assoc-in [:keycard :secrets]
{:pairing pairing'
:paired-on (utils.datetime/timestamp)}))
:paired-on (datetime/timestamp)}))
:keycard/import-keys
{:pin pin
:on-success :keycard.callback/on-generate-and-load-key-success}})))

View File

@ -4,7 +4,7 @@
[re-frame.db :as re-frame.db]
[status-im.constants :as constants]
[status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.keycard :as keycard]
[status-im.multiaccounts.create.core :as multiaccounts.create]
[status-im.native-module.core :as status]

View File

@ -1,6 +1,6 @@
(ns status-im.keycard.unpair
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.common :as common]
[status-im.multiaccounts.key-storage.core :as key-storage]
[status-im.multiaccounts.update.core :as multiaccounts.update]

View File

@ -1,6 +1,6 @@
(ns status-im.log-level.core
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.node.core :as node]
[utils.re-frame :as rf]))

View File

@ -1,7 +1,7 @@
(ns ^{:doc "Mailserver events and API"} status-im.mailserver.core
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.node.core :as node]
[utils.re-frame :as rf]

View File

@ -2,7 +2,7 @@
(:require ["react-native-touch-id" :default touchid]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.native-module.core :as status]
[status-im.popover.core :as popover]
[utils.re-frame :as rf]

View File

@ -5,7 +5,7 @@
[status-im.data-store.settings :as data-store.settings]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.eip55 :as eip55]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.native-module.core :as status]
[status-im.node.core :as node]
[status-im.utils.config :as config]

View File

@ -4,7 +4,7 @@
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.mnemonic :as mnemonic]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.backup-key :as keycard.backup]
[status-im.keycard.common :as common]
[status-im.multiaccounts.core :as multiaccounts]

View File

@ -15,7 +15,7 @@
[status-im.ethereum.tokens :as tokens]
[status-im.ethereum.transactions.core :as transactions]
[status-im.fleet.core :as fleet]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.common :as keycard.common]
[status-im.mobile-sync-settings.core :as mobile-network]
[status-im.multiaccounts.biometric.core :as biometric]

View File

@ -1,6 +1,6 @@
(ns status-im.multiaccounts.logout.core
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.native-module.core :as status]
[status-im.notifications.core :as notifications]

View File

@ -5,7 +5,7 @@
[status-im.constants :as constants]
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.mnemonic :as mnemonic]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.nfc :as nfc]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.multiaccounts.create.core :as multiaccounts.create]

View File

@ -2,7 +2,7 @@
(:require [clojure.string :as string]
[re-frame.core :as re-frame]
[status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.node.core :as node]
[utils.re-frame :as rf]
[status-im.utils.http :as http]

View File

@ -8,7 +8,7 @@
[status-im.chat.models :as chat.models]
[status-im.ethereum.decode :as decode]
[status-im.ethereum.tokens :as tokens]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.notifications.android :as pn-android]
[utils.re-frame :as rf]
[status-im.utils.money :as money]

View File

@ -1,6 +1,6 @@
(ns status-im.pairing.core
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.update.core :as multiaccounts.update]
[status-im.utils.config :as config]
[utils.re-frame :as rf]

View File

@ -5,7 +5,7 @@
[status-im.chat.models :as chat]
[status-im.ethereum.core :as ethereum]
[status-im.group-chats.core :as group-chats]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.router.core :as router]
[utils.re-frame :as rf]
[status-im.utils.utils :as utils]

View File

@ -2,7 +2,7 @@
(:require [status-im.chat.models.link-preview :as link.preview]
[status-im.chat.models.message :as models.message]
[status-im.ethereum.subscriptions :as ethereum.subscriptions]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.mailserver.core :as mailserver]
[status-im.multiaccounts.login.core :as login]
[status-im.notifications.local :as local-notifications]

View File

@ -6,7 +6,7 @@
[status-im.ethereum.core :as ethereum]
[status-im.ethereum.eip55 :as eip55]
[status-im.ethereum.tokens :as tokens]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.keycard.card :as keycard.card]
[status-im.keycard.common :as keycard.common]
[status-im.native-module.core :as status]

View File

@ -3,7 +3,7 @@
[re-frame.core :as re-frame]
[status-im.bottom-sheet.core :as bottom-sheet]
[status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.popover.core :as popover]
[status-im.signing.eip1559 :as eip1559]
[utils.re-frame :as rf]

View File

@ -1,6 +1,6 @@
(ns status-im.signing.keycard
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.native-module.core :as status]
[utils.re-frame :as rf]
[status-im.utils.types :as types]

View File

@ -4,7 +4,10 @@
[clojure.string :as string]
[shadow.test :as st]
[shadow.test.env :as env]
[utils.re-frame :as rf]))
[utils.re-frame :as rf]
[i18n.i18n :as i18n]))
(i18n/init)
(defonce repl? (atom false))

View File

@ -1,6 +1,6 @@
(ns status-im.ui.components.action-sheet
(:require ["react-native" :refer (ActionSheetIOS)]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.utils.core :as utils]))
(defn- callback

View File

@ -1,6 +1,6 @@
(ns status-im.ui.components.badge
(:require [quo.design-system.colors :as colors]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.react :as react]))
(defn badge

View File

@ -1,6 +1,6 @@
(ns status-im.ui.components.common.common
(:require [reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.common.styles :as styles]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react])

View File

@ -3,7 +3,7 @@
[quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.animation :as animation]
[status-im.ui.components.react :as react])
(:require-macros [status-im.utils.views :as views :refer [defview letsubs]]))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.components.copyable-text
(:require [quo.design-system.colors :as colors]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.animation :as animation]
[status-im.ui.components.react :as react]))

View File

@ -1,6 +1,6 @@
(ns status-im.ui.components.invite.events
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.react :as react]
[utils.re-frame :as rf]
[status-im.utils.universal-links.utils :as universal-links]))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.components.invite.views
(:require [quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.invite.events :as invite.events]))
(defn button

View File

@ -1,6 +1,6 @@
(ns status-im.ui.components.list-selection
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.action-sheet :as action-sheet]
[status-im.ui.components.dialog :as dialog]
[status-im.ui.components.react :as react]

View File

@ -12,7 +12,7 @@
(SafeAreaProvider SafeAreaInsetsContext)]
[quo.design-system.colors :as colors]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.typography :as typography]
[status-im.utils.platform :as platform]
[status-im.utils.utils :as utils])

View File

@ -3,7 +3,7 @@
[quo.design-system.colors :as colors]
[quo2.foundations.colors :as quo2.colors]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]))
[i18n.i18n :as i18n]))
(defn search-input
[{:keys [search-active?]}]

View File

@ -3,7 +3,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.constants :refer [principles-link privacy-policy-link terms-of-service-link]]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.copyable-text :as copyable-text]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]

View File

@ -8,7 +8,7 @@
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.ethereum.ens :as ens]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.qr-scanner.core :as qr-scanner]
[status-im.ui.components.animation :as animation]

View File

@ -4,8 +4,7 @@
[re-frame.core :as re-frame]
[status-im.add-new.db :as db]
[status-im.chat.models :as chat.models]
[status-im.i18n.i18n :as i18n]
[status-im.i18n.i18n-resources :as i18n-resources]
[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])
@ -74,8 +73,8 @@
(defn get-language-topic
[]
(let [lang (subs (name i18n-resources/default-device-language) 0 2)
lang3 (subs (name i18n-resources/default-device-language) 0 3)
(let [lang (subs (name i18n/default-device-language) 0 2)
lang3 (subs (name i18n/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)))))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.advanced-settings.views
(:require [quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.list.views :as list]
[status-im2.setup.config :as config])
(:require-macros [status-im.utils.views :as views]))

View File

@ -3,7 +3,7 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.react-native.resources :as resources]
[status-im.ui.components.react :as react]
[status-im.utils.config :as config]))

View File

@ -3,9 +3,9 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.react :as react]
[status-im.utils.datetime :as datetime]))
[utils.datetime :as datetime]))
(defn perform-backup!
[]

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.biometric.core :as biometric]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]))

View File

@ -2,7 +2,7 @@
(:require [clojure.string :as string]
[quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.qr-scanner.core :as qr-scanner]
[status-im.ui.components.react :as react]
[status-im.ui.components.toolbar :as toolbar]

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.bootnodes-settings.views
(:require-macros [status-im.utils.views :as views])
(:require [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react]
[status-im.ui.components.topbar :as topbar]

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.browser.accounts
(:require [quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react]

View File

@ -4,7 +4,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]
[status-im.ui.components.react :as react]
[status-im.ui.components.toolbar :as toolbar]

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.components.copyable-text :as copyable-text]
[status-im.ui.components.icons.icons :as icons]

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.network.core :as network]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.components.icons.icons :as icons]

View File

@ -3,7 +3,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.react-native.resources :as resources]
[status-im.ui.components.common.common :as components.common]
[status-im.ui.components.icons.icons :as icons]

View File

@ -4,7 +4,7 @@
[re-frame.core :as re-frame]
[status-im.browser.core :as browser]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.qr-scanner.core :as qr-scanner]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.icons.icons :as icons]

View File

@ -4,7 +4,7 @@
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.browser.permissions :as browser.permissions]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.animation :as anim]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.components.icons.icons :as icons]

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]
[status-im.ui.screens.browser.site-blocked.styles :as styles])

View File

@ -4,7 +4,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.plus-button :as components.plus-button]

View File

@ -6,7 +6,7 @@
[reagent.core :as reagent]
[status-im.browser.core :as browser]
[status-im.browser.webview-ref :as webview-ref]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.qr-scanner.core :as qr-scanner]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.connectivity.view :as connectivity]

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[quo.react-native :as react-native]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.topbar :as topbar]))
(defn bug-report

View File

@ -6,7 +6,7 @@
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.audio.core :as audio]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.native-module.core :as status]
[status-im.ui.components.animation :as anim]
[status-im.ui.components.icons.icons :as icons]

View File

@ -6,7 +6,7 @@
[quo.react-native :as rn]
[re-frame.core :as re-frame]
[status-im.ethereum.stateofus :as stateofus]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.screens.chat.components.style :as styles])
(:require-macros [status-im.utils.views :refer [defview letsubs]]))

View File

@ -5,7 +5,7 @@
[quo.react :as quo.react]
[quo.react-native :as rn]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.screens.chat.components.style :as styles]))

View File

@ -11,7 +11,7 @@
[reagent.core :as reagent]
[status-im.chat.constants :as chat.constants]
[status-im.chat.models.mentions :as mentions]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.list.views :as list]

View File

@ -7,7 +7,7 @@
[quo.react-native :as rn]
[re-frame.core :as re-frame]
[status-im.ethereum.stateofus :as stateofus]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.screens.chat.components.style :as styles]))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.chat.extensions.views
(:require [quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]))

View File

@ -3,7 +3,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.list-selection :as list-selection]
[status-im.ui.components.react :as react]
[status-im.ui.screens.chat.styles.main :as style]

View File

@ -5,7 +5,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.permissions :as permissions]
[status-im.ui.components.react :as react]

View File

@ -4,7 +4,7 @@
[status-im.commands.core :as commands]
[status-im.constants :as constants]
[status-im.ethereum.transactions.core :as transactions]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]

View File

@ -2,10 +2,10 @@
(:require-macros [status-im.utils.views :as views])
(:require [quo2.core :as quo2]
[re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.react :as react]
[status-im.ui.screens.chat.styles.input.gap :as style]
[status-im.utils.datetime :as datetime]))
[utils.datetime :as datetime]))
(defn on-press
[chat-id gap-ids]

View File

@ -4,7 +4,7 @@
[re-frame.core :as re-frame]
[status-im.chat.models.link-preview :as link-preview]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.react-native.resources :as resources]
[status-im.ui.components.react :as react]
[status-im.ui.screens.chat.message.styles :as styles]

View File

@ -6,7 +6,7 @@
[reagent.core :as reagent]
[status-im.chat.models.images :as images]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.react-native.resources :as resources]
[status-im.ui.components.animation :as animation]
[status-im.ui.components.fast-image :as fast-image]

View File

@ -3,7 +3,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react]
[status-im.ui.screens.chat.message.message :as message]

View File

@ -3,7 +3,7 @@
[quo.react :as quo.react]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.connectivity.view :as connectivity]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react]
@ -12,7 +12,7 @@
[status-im.ui.screens.chat.message.message :as message]
[status-im.ui.screens.chat.styles.main :as style]
[status-im.ui.screens.chat.views :as chat]
[status-im.utils.datetime :as time]
[utils.datetime :as datetime]
[status-im.utils.platform :as platform]))
(defn pins-topbar
@ -81,7 +81,7 @@
:edit-enabled edit-enabled
:display-username? (not outgoing)
:pinned true
:timestamp-str (time/timestamp->time whisper-timestamp))
:timestamp-str (datetime/timestamp->time whisper-timestamp))
space-keeper]])
(defn pinned-messages-view

View File

@ -2,7 +2,7 @@
(:require [quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.ui.components.chat-icon.screen :as chat-icon]
[status-im.ui.components.list-selection :as list-selection]

View File

@ -4,7 +4,7 @@
[quo.design-system.colors :as colors]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.fast-image :as fast-image]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]

View File

@ -2,7 +2,7 @@
(:require [quo.react-native :as rn]
[re-frame.core :as re-frame]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.screens.chat.styles.main :as st]))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.chat.utils
(:require [quo.design-system.colors :as colors]
[status-im.ethereum.stateofus :as stateofus]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.multiaccounts.core :as multiaccounts]
[status-im.ui.components.react :as react]))

View File

@ -10,7 +10,7 @@
re-frame.db
[reagent.core :as reagent]
[status-im.constants :as constants]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.react-native.resources :as resources]
[status-im.ui.components.chat-icon.screen :as chat-icon.screen]
[status-im.ui.components.connectivity.view :as connectivity]

View File

@ -3,7 +3,7 @@
[quo.core :as quo]
[re-frame.core :as re-frame]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.profile-header.view :as profile-header]
[utils.re-frame :as rf]))

View File

@ -23,7 +23,7 @@
[status-im.ui.screens.chat.sheets :as sheets]
[status-im.ui.screens.home.views.inner-item :as inner-item]
[status-im.utils.core :as utils]
[status-im.utils.datetime :as datetime]
[utils.datetime :as datetime]
[utils.re-frame :as rf]))
(def request-cooldown-ms (* 24 60 60 1000))

View File

@ -4,7 +4,7 @@
[quo.design-system.colors :as colors]
[quo.react-native :as rn]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.icons.icons :as icons]
[status-im.ui.components.react :as react]
[status-im.ui.components.toolbar :as toolbar]

View File

@ -3,7 +3,7 @@
[quo.core :as quo]
[reagent.core :as reagent]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]
[status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react]

View File

@ -3,7 +3,7 @@
[quo.core :as quo]
[quo.react-native :as rn]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.emoji-thumbnail.preview :as emoji-thumbnail-preview]
[status-im.ui.components.emoji-thumbnail.styles :as styles]
[status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.communities.edit
(:require [quo.core :as quo]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.toolbar :as toolbar]
[status-im.ui.screens.communities.create :as community.create]
[utils.re-frame :as rf]))

View File

@ -2,7 +2,7 @@
(:require [clojure.string :as string]
[quo.core :as quo]
[status-im.communities.core :as communities]
[status-im.i18n.i18n :as i18n]
[i18n.i18n :as i18n]
[status-im.ui.components.toolbar :as toolbar]
[status-im.ui.screens.communities.create-channel :as create-channel]
[utils.re-frame :as rf]

Some files were not shown because too many files have changed in this diff Show More