Fixes #4099: Localize currency according to selected currency
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
This commit is contained in:
parent
225d2e2ec0
commit
53349ef31f
|
@ -387,3 +387,75 @@
|
||||||
(or (translation locale)
|
(or (translation locale)
|
||||||
(translation (subs locale 0 2))
|
(translation (subs locale 0 2))
|
||||||
fallback)))
|
fallback)))
|
||||||
|
|
||||||
|
(defn format-currency [value currency-code]
|
||||||
|
(.addTier2Support goog.i18n.currency)
|
||||||
|
|
||||||
|
(def currency-code-to-nfs-map
|
||||||
|
{"ZAR" (.-NumberFormatSymbols_af goog.i18n)
|
||||||
|
"ETB" (.-NumberFormatSymbols_am goog.i18n)
|
||||||
|
"EGP" (.-NumberFormatSymbols_ar goog.i18n)
|
||||||
|
"DZD" (.-NumberFormatSymbols_ar_DZ goog.i18n)
|
||||||
|
"AZN" (.-NumberFormatSymbols_az goog.i18n)
|
||||||
|
"BYN" (.-NumberFormatSymbols_be goog.i18n)
|
||||||
|
"BGN" (.-NumberFormatSymbols_bg goog.i18n)
|
||||||
|
"BDT" (.-NumberFormatSymbols_bn goog.i18n)
|
||||||
|
"EUR" (.-NumberFormatSymbols_br goog.i18n)
|
||||||
|
"BAM" (.-NumberFormatSymbols_bs goog.i18n)
|
||||||
|
"USD" (.-NumberFormatSymbols_en goog.i18n)
|
||||||
|
"CZK" (.-NumberFormatSymbols_cs goog.i18n)
|
||||||
|
"GBP" (.-NumberFormatSymbols_cy goog.i18n)
|
||||||
|
"DKK" (.-NumberFormatSymbols_da goog.i18n)
|
||||||
|
"CHF" (.-NumberFormatSymbols_de_CH goog.i18n)
|
||||||
|
"AUD" (.-NumberFormatSymbols_en_AU goog.i18n)
|
||||||
|
"CAD" (.-NumberFormatSymbols_en_CA goog.i18n)
|
||||||
|
"INR" (.-NumberFormatSymbols_en_IN goog.i18n)
|
||||||
|
"SGD" (.-NumberFormatSymbols_en_SG goog.i18n)
|
||||||
|
"MXN" (.-NumberFormatSymbols_es_419 goog.i18n)
|
||||||
|
"IRR" (.-NumberFormatSymbols_fa goog.i18n)
|
||||||
|
"PHP" (.-NumberFormatSymbols_fil goog.i18n)
|
||||||
|
"ILS" (.-NumberFormatSymbols_he goog.i18n)
|
||||||
|
"HRK" (.-NumberFormatSymbols_hr goog.i18n)
|
||||||
|
"HUF" (.-NumberFormatSymbols_hu goog.i18n)
|
||||||
|
"AMD" (.-NumberFormatSymbols_hy goog.i18n)
|
||||||
|
"IDR" (.-NumberFormatSymbols_id goog.i18n)
|
||||||
|
"ISK" (.-NumberFormatSymbols_is goog.i18n)
|
||||||
|
"JPY" (.-NumberFormatSymbols_ja goog.i18n)
|
||||||
|
"GEL" (.-NumberFormatSymbols_ka goog.i18n)
|
||||||
|
"KZT" (.-NumberFormatSymbols_kk goog.i18n)
|
||||||
|
"KHR" (.-NumberFormatSymbols_km goog.i18n)
|
||||||
|
"KRW" (.-NumberFormatSymbols_ko goog.i18n)
|
||||||
|
"KGS" (.-NumberFormatSymbols_ky goog.i18n)
|
||||||
|
"CDF" (.-NumberFormatSymbols_ln goog.i18n)
|
||||||
|
"LAK" (.-NumberFormatSymbols_lo goog.i18n)
|
||||||
|
"MKD" (.-NumberFormatSymbols_mk goog.i18n)
|
||||||
|
"MNT" (.-NumberFormatSymbols_mn goog.i18n)
|
||||||
|
"MDL" (.-NumberFormatSymbols_mo goog.i18n)
|
||||||
|
"MYR" (.-NumberFormatSymbols_ms goog.i18n)
|
||||||
|
"MMK" (.-NumberFormatSymbols_my goog.i18n)
|
||||||
|
"NOK" (.-NumberFormatSymbols_nb goog.i18n)
|
||||||
|
"NPR" (.-NumberFormatSymbols_ne goog.i18n)
|
||||||
|
"PLN" (.-NumberFormatSymbols_pl goog.i18n)
|
||||||
|
"BRL" (.-NumberFormatSymbols_pt goog.i18n)
|
||||||
|
"RON" (.-NumberFormatSymbols_ro goog.i18n)
|
||||||
|
"RUB" (.-NumberFormatSymbols_ru goog.i18n)
|
||||||
|
"RSD" (.-NumberFormatSymbols_sh goog.i18n)
|
||||||
|
"LKR" (.-NumberFormatSymbols_si goog.i18n)
|
||||||
|
"ALL" (.-NumberFormatSymbols_sq goog.i18n)
|
||||||
|
"SEK" (.-NumberFormatSymbols_sv goog.i18n)
|
||||||
|
"TZS" (.-NumberFormatSymbols_sw goog.i18n)
|
||||||
|
"THB" (.-NumberFormatSymbols_th goog.i18n)
|
||||||
|
"TRY" (.-NumberFormatSymbols_tr goog.i18n)
|
||||||
|
"UAH" (.-NumberFormatSymbols_uk goog.i18n)
|
||||||
|
"PKR" (.-NumberFormatSymbols_ur goog.i18n)
|
||||||
|
"UZS" (.-NumberFormatSymbols_uz goog.i18n)
|
||||||
|
"VND" (.-NumberFormatSymbols_vi goog.i18n)
|
||||||
|
"CNY" (.-NumberFormatSymbols_zh goog.i18n)
|
||||||
|
"HKD" (.-NumberFormatSymbols_zh_HK goog.i18n)
|
||||||
|
"TWD" (.-NumberFormatSymbols_zh_TW goog.i18n)})
|
||||||
|
|
||||||
|
(def custom-nfs (currency-code-to-nfs-map currency-code))
|
||||||
|
(set! (.-NumberFormatSymbols goog.i18n) (if custom-nfs custom-nfs (.-NumberFormatSymbols_en goog.i18n)))
|
||||||
|
(.format
|
||||||
|
(new goog.i18n.NumberFormat (.-CURRENCY goog.i18n.NumberFormat.Format) currency-code)
|
||||||
|
value))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
(ns status-im.ui.screens.wallet.subs
|
(ns status-im.ui.screens.wallet.subs
|
||||||
(:require [re-frame.core :as re-frame]
|
(:require [re-frame.core :as re-frame]
|
||||||
[status-im.constants :as constants]
|
[status-im.constants :as constants]
|
||||||
|
[status-im.i18n :as i18n]
|
||||||
[status-im.utils.ethereum.core :as ethereum]
|
[status-im.utils.ethereum.core :as ethereum]
|
||||||
[status-im.utils.ethereum.tokens :as tokens]
|
[status-im.utils.ethereum.tokens :as tokens]
|
||||||
[status-im.utils.money :as money]))
|
[status-im.utils.money :as money]))
|
||||||
|
@ -31,13 +32,15 @@
|
||||||
(re-frame/reg-sub :asset-value
|
(re-frame/reg-sub :asset-value
|
||||||
(fn [[_ fsym tsym]]
|
(fn [[_ fsym tsym]]
|
||||||
[(re-frame/subscribe [:balance])
|
[(re-frame/subscribe [:balance])
|
||||||
(re-frame/subscribe [:price fsym tsym])])
|
(re-frame/subscribe [:price fsym tsym])
|
||||||
(fn [[balance price] [_ fsym tsym]]
|
(re-frame/subscribe [:wallet/currency])])
|
||||||
|
(fn [[balance price currency] [_ fsym tsym]]
|
||||||
(when (and balance price)
|
(when (and balance price)
|
||||||
(-> (money/wei->ether (get balance fsym))
|
(-> (money/wei->ether (get balance fsym))
|
||||||
(money/eth->fiat price)
|
(money/eth->fiat price)
|
||||||
(money/with-precision 2)
|
(money/with-precision 2)
|
||||||
str))))
|
str
|
||||||
|
(i18n/format-currency (:code currency))))))
|
||||||
|
|
||||||
(defn- get-balance-total-value [balance prices currency]
|
(defn- get-balance-total-value [balance prices currency]
|
||||||
(->> balance
|
(->> balance
|
||||||
|
@ -61,7 +64,8 @@
|
||||||
(-> currency :code keyword)))]
|
(-> currency :code keyword)))]
|
||||||
(-> balance-total-value
|
(-> balance-total-value
|
||||||
(money/with-precision 2)
|
(money/with-precision 2)
|
||||||
str))
|
str
|
||||||
|
(i18n/format-currency (:code currency))))
|
||||||
"...")))
|
"...")))
|
||||||
|
|
||||||
(re-frame/reg-sub :prices-loading?
|
(re-frame/reg-sub :prices-loading?
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
[react/text {:style styles/asset-item-price
|
[react/text {:style styles/asset-item-price
|
||||||
:uppercase? true
|
:uppercase? true
|
||||||
:number-of-lines 1}
|
:number-of-lines 1}
|
||||||
(if @asset-value (str (:symbol currency) @asset-value) "...")]]])))
|
(if @asset-value @asset-value "...")]]])))
|
||||||
|
|
||||||
(defn- asset-section [assets currency]
|
(defn- asset-section [assets currency]
|
||||||
[react/view styles/asset-section
|
[react/view styles/asset-section
|
||||||
|
|
Loading…
Reference in New Issue