diff --git a/core/data/src/main/res/raw-ru/code_country.json b/core/data/src/main/res/raw-ru/code_country.json new file mode 100644 index 000000000..db863cdcb --- /dev/null +++ b/core/data/src/main/res/raw-ru/code_country.json @@ -0,0 +1,531 @@ +{ + "AFN": [ + "Афганистан" + ], + "ALL": [ + "Албания" + ], + "DZD": [ + "Алжир" + ], + "USD": [ + "Американское Самоа", + "Бонайре, Синт-Эстатиус и Саба", + "Британская территория в Индийском океане", + "Эквадор", + "Сальвадор", + "Гуам", + "Гаити", + "Маршалловы Острова", + "Микронезия", + "Северные Марианские острова", + "Палау", + "Панама", + "Пуэрто-Рико", + "Тимор-Лешти", + "Теркс и Кайкос", + "Соединенные Штаты Америки", + "Виргинские острова" + ], + "EUR": [ + "Андорра", + "Австрия", + "Бельгия", + "Хорватия", + "Кипр", + "Эстония", + "Европейский союз", + "Финляндия", + "Франция", + "Французская Гвиана", + "Французские Южные территории", + "Германия", + "Греция", + "Гваделупа", + "Святой Престол", + "Ирландия", + "Италия", + "Латвия", + "Литва", + "Люксембург", + "Мальта", + "Мартиника", + "Майотта", + "Монако", + "Черногория", + "Нидерланды", + "Португалия", + "Реюньон", + "Сен-Бартелеми", + "Сен-Мартен", + "Сен-Пьер и Микелон", + "Сан-Марино", + "Словакия", + "Словения", + "Испания", + "Аландские острова" + ], + "AOA": [ + "Ангола" + ], + "XCD": [ + "Ангилья", + "Антигуа и Барбуда", + "Доминика", + "Гренада", + "Монтсеррат", + "Сент-Китс и Невис", + "Сент-Люсия", + "Сент-Винсент и Гренадины" + ], + "ARS": [ + "Аргентина" + ], + "AMD": [ + "Армения" + ], + "AWG": [ + "Аруба" + ], + "AUD": [ + "Австралия", + "Остров Рождества", + "Кокосовые острова", + "Остров Херд и острова Макдональд", + "Кирибати", + "Науру", + "Остров Норфолк", + "Тувалу" + ], + "AZN": [ + "Азербайджан" + ], + "BSD": [ + "Багамы" + ], + "BHD": [ + "Бахрейн" + ], + "BDT": [ + "Бангладеш" + ], + "BBD": [ + "Барбадос" + ], + "BYN": [ + "Беларусь" + ], + "BZD": [ + "Белиз" + ], + "XOF": [ + "Бенин", + "Буркина-Фасо", + "Кот-д\u0027Ивуар", + "Гвинея-Бисау", + "Мали", + "Нигер", + "Сенегал", + "Того" + ], + "BMD": [ + "Бермуды" + ], + "BTN": [ + "Бутан" + ], + "BAM": [ + "Босния и Герцеговина" + ], + "BWP": [ + "Ботсвана" + ], + "NOK": [ + "Остров Буве", + "Норвегия", + "Шпицберген и Ян-Майен" + ], + "BRL": [ + "Бразилия" + ], + "BND": [ + "Бруней-Даруссалам" + ], + "BGN": [ + "Болгария" + ], + "BIF": [ + "Бурунди" + ], + "CVE": [ + "Кабо-Верде" + ], + "KHR": [ + "Камбоджа" + ], + "XAF": [ + "Камерун", + "Центральноафриканская Республика", + "Чад", + "Конго", + "Экваториальная Гвинея", + "Габон" + ], + "CAD": [ + "Канада" + ], + "KYD": [ + "Каймановы острова" + ], + "CLF": [ + "Чили" + ], + "CNY": [ + "Китай" + ], + "KMF": [ + "Коморы" + ], + "CDF": [ + "Демократическая Республика Конго" + ], + "NZD": [ + "Острова Кука", + "Новая Зеландия", + "Ниуэ", + "Острова Питкэрн", + "Токелау" + ], + "CRC": [ + "Коста-Рика" + ], + "CUP": [ + "Куба" + ], + "ANG": [ + "Кюрасао", + "Синт-Мартен" + ], + "CZK": [ + "Чехия" + ], + "DKK": [ + "Дания", + "Фарерские острова", + "Гренландия" + ], + "DJF": [ + "Джибути" + ], + "DOP": [ + "Доминиканская Республика" + ], + "EGP": [ + "Египет" + ], + "ERN": [ + "Эритрея" + ], + "SZL": [ + "Эсватини" + ], + "ETB": [ + "Эфиопия" + ], + "FKP": [ + "Фолклендские острова" + ], + "FJD": [ + "Фиджи" + ], + "XPF": [ + "Французская Полинезия", + "Новая Каледония", + "Уоллис и Футуна" + ], + "GMD": [ + "Гамбия" + ], + "GEL": [ + "Грузия" + ], + "GHS": [ + "Гана" + ], + "GIP": [ + "Гибралтар" + ], + "GTQ": [ + "Гватемала" + ], + "GBP": [ + "Гернси", + "Остров Мэн", + "Джерси", + "Соединенное Королевство Великобритании и Северной Ирландии" + ], + "GNF": [ + "Гвинея" + ], + "GYD": [ + "Гайана" + ], + "HNL": [ + "Гондурас" + ], + "HKD": [ + "Гонконг" + ], + "HUF": [ + "Венгрия" + ], + "ISK": [ + "Исландия" + ], + "INR": [ + "Индия" + ], + "IDR": [ + "Индонезия" + ], + "XDR": [ + "Международный валютный фонд" + ], + "IQD": [ + "Ирак" + ], + "ILS": [ + "Израиль" + ], + "JMD": [ + "Ямайка" + ], + "JPY": [ + "Япония" + ], + "JOD": [ + "Иордания" + ], + "KZT": [ + "Казахстан" + ], + "KES": [ + "Кения" + ], + "KPW": [ + "Северная Корея" + ], + "KRW": [ + "Южная Корея" + ], + "KWD": [ + "Кувейт" + ], + "KGS": [ + "Кыргызстан" + ], + "LAK": [ + "Лаос" + ], + "LBP": [ + "Ливан" + ], + "ZAR": [ + "Лесото", + "Намибия", + "Южная Африка" + ], + "LRD": [ + "Либерия" + ], + "LYD": [ + "Ливия" + ], + "MOP": [ + "Макао" + ], + "MGA": [ + "Мадагаскар" + ], + "MWK": [ + "Малави" + ], + "MYR": [ + "Малайзия" + ], + "MVR": [ + "Мальдивы" + ], + "MRU": [ + "Мавритания" + ], + "MUR": [ + "Маврикий" + ], + "MDL": [ + "Молдова" + ], + "MNT": [ + "Монголия" + ], + "MAD": [ + "Марокко", + "Западная Сахара" + ], + "MZN": [ + "Мозамбик" + ], + "MMK": [ + "Мьянма" + ], + "NPR": [ + "Непал" + ], + "NIO": [ + "Никарагуа" + ], + "NGN": [ + "Нигерия" + ], + "MKD": [ + "Северная Македония" + ], + "OMR": [ + "Оман" + ], + "PKR": [ + "Пакистан" + ], + "PGK": [ + "Папуа — Новая Гвинея" + ], + "PYG": [ + "Парагвай" + ], + "PEN": [ + "Перу" + ], + "PHP": [ + "Филиппины" + ], + "PLN": [ + "Польша" + ], + "QAR": [ + "Катар" + ], + "RON": [ + "Румыния" + ], + "RUB": [ + "Российская Федерация" + ], + "RWF": [ + "Руанда" + ], + "SHP": [ + "Святая Елена, Вознесение и Тристан-да-Кунья" + ], + "WST": [ + "Самоа" + ], + "STN": [ + "Сан-Томе и Принсипи" + ], + "SAR": [ + "Саудовская Аравия" + ], + "RSD": [ + "Сербия" + ], + "SCR": [ + "Сейшельские Острова" + ], + "SLE": [ + "Сьерра-Леоне" + ], + "SGD": [ + "Сингапур" + ], + "SBD": [ + "Соломоновы Острова" + ], + "SOS": [ + "Сомали" + ], + "SSP": [ + "Южный Судан" + ], + "LKR": [ + "Шри-Ланка" + ], + "SDG": [ + "Судан" + ], + "SRD": [ + "Суринам" + ], + "SEK": [ + "Швеция" + ], + "SYP": [ + "Сирийская Арабская Республика" + ], + "TWD": [ + "Тайвань" + ], + "TJS": [ + "Таджикистан" + ], + "TZS": [ + "Танзания" + ], + "THB": [ + "Таиланд" + ], + "TOP": [ + "Тонга" + ], + "TTD": [ + "Тринидад и Тобаго" + ], + "TND": [ + "Тунис" + ], + "TMT": [ + "Туркменистан" + ], + "TRY": [ + "Турция" + ], + "UGX": [ + "Уганда" + ], + "UAH": [ + "Украина" + ], + "AED": [ + "Объединенные Арабские Эмираты" + ], + "UZS": [ + "Узбекистан" + ], + "VUV": [ + "Вануату" + ], + "VED": [ + "Венесуэла" + ], + "VND": [ + "Вьетнам" + ], + "YER": [ + "Йемен" + ], + "ZMW": [ + "Замбия" + ], + "ZWG": [ + "Зимбабве" + ] +} \ No newline at end of file diff --git a/core/data/src/main/res/raw-ru/code_name.json b/core/data/src/main/res/raw-ru/code_name.json new file mode 100644 index 000000000..4bc4bbcb3 --- /dev/null +++ b/core/data/src/main/res/raw-ru/code_name.json @@ -0,0 +1,1144 @@ +{ + "AFN": "Афгани", + "ALL": "Лек", + "DZD": "Алжирский динар", + "USD": "Доллар США", + "EUR": "Евро", + "AOA": "Кванза", + "XCD": "Восточно-Карибский доллар", + "ARS": "Аргентинское песо", + "AMD": "Армянский драм", + "AWG": "Арубанский флорин", + "AUD": "Австралийский доллар", + "AZN": "Азербайджанский манат", + "BSD": "Багамский доллар", + "BHD": "Бахрейнский динар", + "BDT": "Така", + "BBD": "Барбадосский доллар", + "BYN": "Белорусский рубль", + "BZD": "Белизский доллар", + "XOF": "Франк КФА BCEAO", + "BMD": "Бермудский доллар", + "INR": "Индийская рупия", + "BTN": "Нгултрум", + "BOB": "Боливиано", + "BAM": "Конвертируемая марка", + "BWP": "Пула", + "NOK": "Норвежская крона", + "BRL": "Бразильский реал", + "BND": "Брунейский доллар", + "BGN": "Болгарский лев", + "BIF": "Бурундийский франк", + "CVE": "Эскудо Кабо-Верде", + "KHR": "Риель", + "XAF": "Франк КФА BEAC", + "CAD": "Канадский доллар", + "KYD": "Каймановский доллар", + "CLF": "Унидад де фоменто", + "CNY": "Юань жэньминьби", + "COP": "Колумбийское песо", + "KMF": "Коморский франк", + "CDF": "Конголезский франк", + "NZD": "Новозеландский доллар", + "CRC": "Коста-Риканский колон", + "CUP": "Кубинское песо", + "ANG": "Нидерландский антильский гульден", + "CZK": "Чешская крона", + "DKK": "Датская крона", + "DJF": "Джибутийский франк", + "DOP": "Доминиканское песо", + "EGP": "Египетский фунт", + "SVC": "Сальвадорский колон", + "ERN": "Накфа", + "SZL": "Лилангени", + "ETB": "Эфиопский быр", + "FKP": "Фунт Фолклендских островов", + "FJD": "Фиджийский доллар", + "XPF": "Франк КФП", + "GMD": "Даласи", + "GEL": "Лари", + "GHS": "Ганский седи", + "GIP": "Гибралтарский фунт", + "GTQ": "Кетсаль", + "GBP": "Фунт стерлингов", + "GNF": "Гвинейский франк", + "GYD": "Гайанский доллар", + "HTG": "Гурд", + "HNL": "Лемпира", + "HKD": "Гонконгский доллар", + "HUF": "Форинт", + "ISK": "Исландская крона", + "IDR": "Рупия", + "XDR": "СПЗ, специальные права заимствования", + "IQD": "Иракский динар", + "ILS": "Новый израильский шекель", + "JMD": "Ямайский доллар", + "JPY": "Иена", + "JOD": "Иорданский динар", + "KZT": "Тенге", + "KES": "Кенийский шиллинг", + "KPW": "Северокорейская вона", + "KRW": "Южнокорейская вона", + "KWD": "Кувейтский динар", + "KGS": "Сом", + "LAK": "Лаосский кип", + "LBP": "Ливанский фунт", + "LSL": "Лоти", + "ZAR": "Ранд", + "LRD": "Либерийский доллар", + "LYD": "Ливийский динар", + "MOP": "Патака", + "MGA": "Малагасийский ариари", + "MWK": "Малавийская квача", + "MYR": "Малайзийский ринггит", + "MVR": "Руфия", + "MRU": "Угия", + "MUR": "Маврикийская рупия", + "MXN": "Мексиканское песо", + "MDL": "Молдавский лей", + "MNT": "Тугрик", + "MAD": "Марокканский дирхам", + "MZN": "Мозамбикский метикал", + "MMK": "Кьят", + "NAD": "Намибийский доллар", + "NPR": "Непальская рупия", + "NIO": "Кордоба оро", + "NGN": "Найра", + "MKD": "Денар", + "OMR": "Оманский риал", + "PKR": "Пакистанская рупия", + "PAB": "Бальбоа", + "PGK": "Кина", + "PYG": "Гуарани", + "PEN": "Соль", + "PHP": "Филиппинское песо", + "PLN": "Злотый", + "QAR": "Катарский риал", + "RON": "Румынский лей", + "RUB": "Российский рубль", + "RWF": "Руандийский франк", + "SHP": "Фунт Святой Елены", + "WST": "Тала", + "STN": "Добра", + "SAR": "Саудовский риял", + "RSD": "Сербский динар", + "SCR": "Сейшельская рупия", + "SLE": "Леоне", + "SGD": "Сингапурский доллар", + "SBD": "Соломоновский доллар", + "SOS": "Сомалийский шиллинг", + "SSP": "Южносуданский фунт", + "LKR": "Шри-Ланкийская рупия", + "SDG": "Суданский фунт", + "SRD": "Суринамский доллар", + "SEK": "Шведская крона", + "SYP": "Сирийский фунт", + "TWD": "Новый тайваньский доллар", + "TJS": "Сомони", + "TZS": "Танзанийский шиллинг", + "THB": "Бат", + "TOP": "Паанга", + "TTD": "Доллар Тринидада и Тобаго", + "TND": "Тунисский динар", + "TMT": "Новый туркменский манат", + "TRY": "Турецкая лира", + "UGX": "Угандийский шиллинг", + "UAH": "Гривна", + "AED": "Дирхам ОАЭ", + "UYI": "Уругвайское песо в индексированных единицах", + "UZS": "Узбекский сум", + "VUV": "Вату", + "VED": "Боливар соберано", + "VND": "Вьетнамский донг", + "YER": "Йеменский риал", + "ZMW": "Замбийская квача", + "ZWG": "Зимбабвийский золотой", + "$BASED": "Based", + "$READ": "Reach DAO", + "$SNOW": "Snowflake", + "0XBTC": "0xBitcoin", + "10SET": "Tenset", + "1FLR": "Flare", + "1INCH": "1 Inch", + "1ST": "FirstBlood", + "AAVE": "Aave", + "ABAT": "Aave BAT", + "ABBC": "Abbc", + "ABT": "Arcblock", + "ABUSD": "Aave BUSD", + "AC3": "AC3", + "ACA": "Acala", + "ACT": "Achain", + "ADA": "Cardano", + "ADAI": "Aave DAI", + "ADB": "Adbank", + "ADX": "AdEx", + "AE": "Aeternity", + "AENJ": "Aave ENJ", + "AEON": "Aeon", + "AERGO": "Aergo", + "AETH": "Aave ETH", + "AGI": "SingularityNET", + "AIDOGE": "ArbDoge AI", + "AION": "Aion", + "AIT": "AICHAIN", + "AKNC": "Aave KNC", + "AKRO": "Akropolis", + "AKT": "Akash Network", + "ALCX": "Alchemix", + "ALEND": "Aave LEND", + "ALEPH": "Aleph.im", + "ALETH": "Alchemix ETH", + "ALGO": "Algorand", + "ALI": "Artificial Liquid Intelligence", + "ALINK": "Aave LINK", + "ALPHA": "Alpha Finance", + "ALUSD": "Alchemix USD", + "ALX": "ALAX", + "AMANA": "Aave MANA", + "AMB": "Ambrosus", + "AMKR": "Aave MKR", + "AMKT": "Alongside Crypto Market Index", + "AMLT": "AMLT", + "AMP": "Amp", + "AMPL": "Ampleforth", + "ANC": "Anchor Protocol", + "ANJ": "Aragon Court", + "ANKR": "Ankr", + "ANT": "Aragon", + "APE": "ApeCoin", + "APH": "Aphelion", + "APL": "Apollo Currency", + "APPC": "AppCoins", + "APT": "Aptos", + "APW": "APWine Finance", + "APY": "APY.Finance", + "AR": "Arweave", + "ARB": "Arbitrum", + "ARBS": "Arbswap", + "ARCHIVE": "Chainback", + "ARDR": "Ardor", + "AREN": "Aave REN", + "ARK": "Ark", + "ARKM": "Arkham", + "ARMOR": "Armor", + "ARN": "Aeron", + "ARO": "Arionum", + "ARRR": "Pirate Chain", + "ASM": "Assemble Protocol", + "ASNX": "Aave SNX", + "AST": "AirSwap", + "ASTRO": "Astroport.fi", + "ASUSD": "Aave SUSD", + "ATMI": "Atonomi", + "ATOM": "Cosmos", + "ATUSD": "Aave TUSD", + "AUC": "Auctus", + "AUDIO": "Audius", + "AURA": "Aura Protocol", + "AUSDC": "Aave USDC", + "AUSDT": "Aave USDT", + "AUTO": "Auto", + "AVAX": "Avalanche", + "AVINOC": "AVINOC", + "AWBTC": "Aave WBTC", + "AWC": "Atomic Wallet Coin", + "AWETH": "Aave WETH", + "AXP": "Axprire", + "AYFI": "Aave YFI", + "AZERO": "Aleph Zero", + "AZRX": "Aave ZRX", + "BABYDOGE": "Baby Doge Coin", + "BAC": "Basis Cash", + "BADGER": "Badger DAO", + "BAL": "Balancer", + "BAND": "Band Protocol", + "BAO": "Bao Finance", + "BAT": "Basic Attention Token", + "BAY": "BitBay", + "BBR": "BoolBerry", + "BCD": "Bitcoin Diamond", + "BCH": "Bitcoin Cash", + "BCHA": "Bitcoin Cash ABC", + "BCN": "Bytecoin", + "BCO": "BridgeCoin", + "BEL": "Bella Protocol", + "BETA": "Beta Finance", + "BF": "BitForex Token", + "BFC": "Bifrost", + "BGB": "Bitget Token", + "BICO": "Biconomy", + "BIFI": "Beefy.Finance", + "BIRB": "Birb", + "BIT": "BitDAO", + "BITCOIN": "HarryPotterObamaSonic10Inu", + "BIX": "Bibox Token", + "BLANK": "BlockWallet", + "BLD": "Agoric", + "BLK": "BlackCoin", + "BLOCK": "Blocknet", + "BLT": "Bloom", + "BLUE": "Blue Protocol", + "BLUR": "Blur", + "BLZ": "Bluzelle", + "BMDA": "Bermuda", + "BNB": "Binance Coin", + "BNC": "Bifrost Native Coin", + "BNT": "Bancor", + "BNX": "BynaryX", + "BOND": "Bondly", + "BONDLY": "Bondly", + "BORA": "BORA", + "BOTTO": "Botto", + "BOX": "ContentBox", + "BPT": "Blockport", + "BRD": "Bread", + "BRISE": "Bitgert", + "BROCK": "Bitrock", + "BSW": "Biswap", + "BTC": "Bitcoin", + "BTC++": "PieDAO BTC++", + "BTCD": "Bitcoin Dark", + "BTCP": "Bitcoin Private", + "BTG": "Bitcoin Gold", + "BTMX": "Bitmax Token", + "BTO": "Bottos", + "BTR": "Bitrue Coin", + "BTS": "BitShares", + "BTT": "BitTorrent", + "BTU": "BTU Protocol", + "BU": "BUMO", + "BUNNY": "Pancake Bunny", + "BUSD": "Binance USD", + "BWAJNA": "Bwajna", + "BWT": "Bittwatt", + "BZ": "BitZ Token", + "BZNT": "Bezant", + "BZRX": "bZx Protocol", + "C20": "CRYPTO20", + "C98": "Coin98", + "CAKE": "PancakeSwap", + "CANTO": "Canto", + "CAP": "Cap", + "CAPP": "Cappasity", + "CAR": "CarBlock", + "CARD": "Cardstack", + "CBAT": "Compound Basic Attention Token", + "CBETH": "Coinbase Wrapped Staked ETH", + "CBT": "CommerceBlock", + "CDAI": "cDAI", + "CDT": "Blox", + "CEEK": "CEEK VR", + "CEL": "Celsius Network", + "CELO": "Celo", + "CELR": "Celer Network", + "CENNZ": "CENNZnet", + "CET": "CoinEx", + "CETH": "cETH", + "CFG": "Centrifuge", + "CFX": "Conflux", + "CHAI": "Chai", + "CHAIN": "Chain Games", + "CHAT": "BeeChat", + "CHIA": "Chia", + "CHO": "Choise.com", + "CHR": "Chromia", + "CHSB": "SwissBorg", + "CHZ": "Chiliz", + "CIRUS": "Cirus", + "CKB": "Nervos Network", + "CLO": "Callisto Network", + "CLOAK": "Cloakcoin", + "CLOUT": "BitClout", + "CMT": "CyberMiles", + "CNC": "Conic", + "CND": "Cindicator", + "CNX": "Cryptonex", + "COC": "Coc", + "COCN": "Coca Network", + "COMAI": "Commune AI", + "COMP": "Compound Finance", + "CONI": "Coinbene Token", + "CORE": "Core", + "COSM": "Cosmo Coin", + "COTI": "COTI", + "COV": "Covesting", + "COVA": "Cova Unity", + "COVER": "Cover Protocol", + "CPC": "CPChain", + "CRD": "Crolend", + "CRE": "Crescent Network", + "CREAM": "Cream", + "CRED": "Verify", + "CREP": "cREP", + "CRO": "Crypto.com Coin", + "CRPT": "Crypterium", + "CRV": "Curve DAO Token", + "CRVUSD": "crvUSD", + "CS": "Credits", + "CSAI": "cSAI", + "CSC": "Casinocoin", + "CSPR": "Casper Network", + "CTC": "Creditcoin", + "CTSI": "Cartesi", + "CTXC": "Cortex", + "CUSDC": "cUSDC", + "CV": "carVertical", + "CVC": "Civic", + "CVP": "PowerPool", + "CVT": "CyberVeinToken", + "CVX": "Convex Finance", + "CWBTC": "cWBTC", + "CYBER": "CyberConnect", + "CZRX": "Compound 0x", + "D2": "D2 Finance", + "DADI": "Edge", + "DAFI": "DAFI Protocol", + "DAG": "Constellation", + "DAI": "Dai", + "DAO": "DAO Maker", + "DASH": "Dash", + "DAT": "Datum", + "DATA": "Streamr", + "DATX": "DATx", + "DBC": "DeepBrain Chain", + "DCK": "DexCheck AI", + "DCN": "Dentacoin", + "DCR": "Decred", + "DCT": "Decent", + "DDD": "Scry.info", + "DEL": "Decimal", + "DENT": "Dent", + "DEP": "Depth", + "DERI": "Deri Protocol", + "DESO": "Decentralized Social", + "DEXE": "DeXe", + "DF": "dForce", + "DFI": "DeFiChain", + "DFT": "DigiFinex Token", + "DFYN": "Dfyn Network", + "DGB": "DigiByte", + "DGD": "DigixDAO", + "DGTX": "Digitex Token", + "DHT": "dHEDGE DAO", + "DIA": "DIA", + "DINERO": "Dinerobet", + "DIVI": "Divi", + "DLT": "Agrello", + "DMT": "DMarket", + "DMTR": "Dimitra", + "DNT": "district0x", + "DOCK": "Dock", + "DODO": "DODO", + "DOGE": "Dogecoin", + "DOJO": "Dojo", + "DOME": "Everdome", + "DOR": "Dor", + "DOT": "Polkadot", + "DRGN": "Dragonchain", + "DROP": "Dropil", + "DTA": "DATA", + "DTR": "Dynamic Trading Rights", + "DTX": "Databroker", + "DVF": "DeversiFi", + "DXD": "DXdao", + "DXT": "Datawallet", + "DYDX": "dYdX", + "EDG": "Edgeless", + "EDO": "Eidoo", + "EDU": "Open Campus", + "EFI": "Efinity Token", + "EFX": "Effect.AI", + "EGLD": "Elrond", + "EGT": "Egretia", + "EKG": "Ekon Gold", + "EKT": "EDUCare", + "ELA": "Elastos", + "ELAN": "Elan", + "ELEC": "Electrify.Asia", + "ELF": "aelf", + "ELG": "Escoin", + "EMC": "Emercoin", + "EMC2": "Einsteinium", + "ENG": "Enigma", + "ENIX": "ASENIX", + "ENJ": "Enjin Coin", + "ENS": "Ethereum Name Service", + "ENTS": "Ents", + "EOS": "Binance-Peg EOS", + "EOSDAC": "eosDAC", + "EQB": "Equilibria Finance", + "ERG": "Ergo", + "ESD": "Empty Set Dollar", + "ESS": "Essentia", + "ETC": "Ethereum Classic", + "ETH": "Ethereum", + "ETHW": "EthereumPoW", + "ETN": "Electroneum", + "ETP": "Metaverse ETP", + "ETZ": "Ether Zero", + "EUROC": "Euro Coin", + "EVER": "Everscale", + "EVMOS": "Evmos", + "EVX": "Everex", + "EWT": "Energy Web Token", + "EXRN": "EXRNchain", + "EXY": "Experty", + "EZY": "EZZY Game", + "FAB": "Fabric", + "FAME": "Fame", + "FARM": "Farm", + "FCT": "Factom", + "FEED": "Feeder.finance", + "FEI": "Fei USD", + "FET": "Fetch.ai", + "FIDA": "Bonfida", + "FIDU": "Fidu", + "FIL": "Filecoin", + "FILDA": "Filda", + "FIS": "Stafi", + "FLASH": "Flashstake", + "FLEX": "FLEX Coin", + "FLOKI": "FLOKI", + "FLOW": "Flow", + "FLUX": "Flux", + "FNSA": "Finschia", + "FOAM": "Foam", + "FOLD": "Manifold Finance", + "FOTA": "Fortuna", + "FOX": "Shapeshift Token", + "FPI": "Frax Price Index", + "FPIS": "Frax Price Index Share", + "FRAX": "Frax", + "FRM": "Ferrum Network", + "FRONT": "Frontier", + "FRXETH": "Frax Ether", + "FSN": "Fusion", + "FST": "Futureswap", + "FT": "FToken", + "FTC": "Feathercoin", + "FTM": "Fantom", + "FTT": "FTX Token", + "FUEL": "Etherparty", + "FUN": "FUNToken", + "FX": "Function X", + "FXC": "Flexacoin", + "FXS": "Frax Share", + "FXT": "FuzeX", + "GAL": "Galxe", + "GALA": "Gala", + "GAMMA": "Gamma Strategies", + "GB": "Goldbank", + "GDC": "Global Digital Token", + "GEM": "Gems", + "GEN": "DAOstack", + "GIV": "Giveth", + "GLMR": "Moonbeam", + "GMEE": "GAMEE", + "GMT": "Gomining Token", + "GMX": "GMX", + "GNO": "Gnosis", + "GNS": "Gains Network", + "GNT": "Golem", + "GNX": "Genaro Network", + "GO": "GoChain", + "GOC": "GoCrypto", + "GOT": "GoNetwork", + "GOVI": "CVI", + "GRAIL": "Camelot Token", + "GRIN": "Grin", + "GROW": "Grow", + "GRP": "Grape", + "GRS": "Groestlcoin", + "GRT": "The Graph", + "GSC": "Global Social Chain", + "GSWAP": "Gameswap", + "GT": "GateToken", + "GTAI": "GT Protocol", + "GTC": "Gitcoin", + "GTO": "Gifto", + "GUSD": "Gemini Dollar", + "GVT": "Genesis Vision", + "GXS": "GXShares", + "GYEN": "GYEN", + "HAIR": "Hair DAO", + "HAKKA": "Hakka Finance", + "HAN": "HanChain", + "HANEP": "HANeP", + "HBAR": "Hedera Hashgraph", + "HC": "HyperCash", + "HEDG": "HedgeTrade", + "HEGIC": "Hegic", + "HER": "HeroNode", + "HEX": "HEX", + "HFT": "Hashflow", + "HIGH": "Highstreet", + "HIVE": "Hive", + "HNT": "Helium", + "HOT": "Holo", + "HPB": "High Performance Blockchain", + "HT": "Huobi Token", + "HUM": "Humanscape", + "HUSD": "HUSD", + "HVN": "Hiveterminal token", + "HXRO": "Hxro", + "HYDRO": "Hydro", + "HYN": "Hyperion", + "HZN": "Horizon Protocol", + "ICE": "Popsicle Finance", + "ICN": "Iconomi", + "ICP": "Internet Computer", + "ICX": "ICON", + "ID": "SPACE ID", + "IDAI": "Instadapp DAI", + "IDEX": "IDEX", + "IETH": "Indigo Protocol", + "IFARM": "iFARM", + "IGNIS": "Ignis", + "IKNC": "Kyber Network Crystal Legacy", + "ILINK": "iLINK", + "ILV": "Illuvium", + "IMX": "ImmutableX", + "INB": "Insight Chain", + "INJ": "Injective", + "INSTAR": "Insights Network", + "IOST": "IOST", + "IOTA": "IOTA", + "IOTX": "IoTeX", + "IQ": "IQ", + "IREP": "Fulcrum REP iToken", + "IRIS": "IRISnet", + "ISAI": "Fulcrum SAI", + "IST": "Inter Stable Token", + "ISUSD": "lisUSD", + "IUSDC": "Instadapp USDC", + "IWBTC": "Instadapp WBTC", + "IXT": "IX", + "IZRX": "Fulcrum ZRX iToken", + "JNT": "Jibrel Network", + "JST": "Jarvis Network", + "JTO": "Jito", + "JUNO": "Juno", + "KAS": "Kaspa", + "KAVA": "Kava.io", + "KCS": "KuCoin Token", + "KDA": "Kadena", + "KEEP": "Keep Network", + "KEY": "Selfkey", + "KICK": "KickToken", + "KIN": "Kin", + "KIRA": "KIRA", + "KIRO": "Kiro", + "KIWI": "KIWI TOKEN", + "KLAY": "Klaytn", + "KLV": "Klever", + "KMD": "Komodo", + "KNC": "Kyber Network", + "KSM": "Kusama", + "KTN": "Kostren Finance", + "KUB": "Bitkub Coin", + "KUJI": "Kujira", + "LAMB": "Lambda", + "LAND": "Landbox", + "LBA": "Libra Token", + "LCX": "LCX", + "LDO": "Lido DAO", + "LEND": "Aave", + "LEO": "LEO Token", + "LIEN": "Lien", + "LINK": "Chainlink", + "LIT": "Litentry", + "LKY": "Valkyrie Network", + "LN": "Link", + "LODE": "Lodestar", + "LON": "Tokenlon", + "LOOKS": "LooksRare", + "LOOM": "Loom Network", + "LPF": "Loopfi", + "LPT": "Livepeer", + "LQD": "Liquid Network", + "LQTY": "Liquity", + "LRC": "Loopring", + "LSK": "Lisk", + "LTC": "Litecoin", + "LTO": "LTO Network", + "LUCA": "LUCA", + "LUN": "Lunyr", + "LUNA": "Terra", + "LUSD": "Liquity USD", + "LXT": "LITEX", + "LYM": "Lympo", + "MAGIC": "Magic", + "MAHA": "MahaDAO", + "MAID": "MaidSafeCoin", + "MAN": "Matrix AI Network", + "MANA": "Decentraland", + "MANTA": "Manta Network", + "MASK": "Mask Network", + "MATH": "MATH", + "MATIC": "Polygon", + "MATTER": "AntiMatter", + "MAV": "Maverick Protocol", + "MBC": "Marblecoin", + "MBOX": "Mobox", + "MC": "Merit Circle", + "MCO": "MCO", + "MCX": "Machi X", + "MDA": "Moeda Loyalty Points", + "MDAO": "MarsDAO", + "MDS": "MediShares", + "MED": "MediBloc", + "MEDX": "MediBlocX", + "MEME": "Memecoin", + "MET": "Metronome", + "METANO": "Metano", + "METIS": "Metis", + "MEX": "Maiar DEX", + "MFG": "SyncFab", + "MFT": "Hifi Finance", + "MIM": "Magic Internet Money", + "MIMATIC": "MAI", + "MIR": "Mirror Protocol", + "MITH": "Mithril", + "MKR": "Maker", + "MLN": "Melon", + "MNGO": "Mango", + "MNTL": "AssetMantle", + "MNW": "Morpheus Network", + "MOCHI": "Mochi", + "MOD": "Modum", + "MOM": "Mom", + "MOONS": "r/CryptoCurrency Moons", + "MOT": "Olympus Labs", + "MPL": "Maple", + "MTA": "Meta", + "MTH": "Monetha", + "MTL": "Metal", + "MTN": "Medicalchain", + "MURA": "Murasaki", + "MVC": "Maverick Chain", + "MVL": "MVL", + "MVP": "Merculet", + "MWAT": "Restart Energy", + "MWC": "MimbleWimbleCoin", + "MXM": "Maximine Coin", + "MYB": "MyBit", + "NANO": "Nano", + "NAS": "Nebulas", + "NAV": "Navcoin", + "NCASH": "Nucleus Vision", + "NCT": "PolySwarm", + "NEAR": "NEAR Protocol", + "NEBL": "Neblio", + "NEC": "Nectar", + "NEO": "Neo", + "NEOX": "Neoxa", + "NEST": "Nest Protocol", + "NEW": "Newton", + "NEX": "Nexo", + "NEXUS": "Nexus Pro", + "NEXXO": "Nexxo", + "NFT": "APENFT", + "NFTB": "NFTb", + "NGC": "NAGA", + "NIOX": "Autonio", + "NKN": "NKN", + "NLG": "Gulden", + "NMR": "Numeraire", + "NOIA": "Syntropy", + "NOS": "Nosana", + "NPER": "Perpetuals", + "NPXS": "Pundi X", + "NRG": "Energi", + "NRV": "Nerve Finance", + "NRVE": "Narrative", + "NTIC": "Entice", + "NTL": "Nautilus Network", + "NTRN": "Neutron", + "NU": "NuCypher", + "NULS": "Nuls", + "NXM": "Nexus Mutual", + "NXRA": "AllianceBlock Nexera", + "NXS": "Nexus", + "NXT": "Nxt", + "OAX": "OAX", + "OCEAN": "Ocean Protocol", + "OCN": "Odyssey", + "ODE": "ODEM", + "OGN": "Origin Protocol", + "OHM": "Olympus", + "OIL": "Oiler", + "OKB": "OKB", + "OKS": "Oikos", + "OLT": "OneLedger", + "OMG": "OMG Network", + "ONDO": "Ondo", + "ONE": "Harmony", + "ONION": "DeepOnion", + "ONT": "Ontology", + "OP": "Optimism", + "OPEN": "Open Platform", + "OPIUM": "Opium", + "OPUL": "Opulous", + "OPX": "OPX Finance", + "ORAI": "Oraichain", + "ORBS": "Orbs", + "ORC": "Orbit Chain", + "ORN": "Orion Protocol", + "OSMO": "Osmosis", + "OST": "OST", + "OVC": "OVCODE", + "OX": "Open Exchange Token", + "OXT": "Orchid Protocol", + "PAI": "Project Pai", + "PAINT": "MurAll", + "PAL": "PAL Network", + "PALM": "PalmSwap", + "PAPER": "Dope Wars Paper", + "PAR": "Parallel", + "PART": "Particl", + "PASG": "Passage", + "PAX": "Paxos", + "PAXG": "PAX Gold", + "PAY": "TenX", + "PBIRB": "Parrotly", + "PBR": "PolkaBridge", + "PENDLE": "Pendle", + "PEPE": "Pepe", + "PERL": "PERL.eco", + "PERP": "Perpetual Protocol", + "PHA": "Phala Network", + "PHTK": "Phun Token", + "PHX": "Phoenix Finance", + "PICKLE": "Pickle Finance", + "PIKA": "Pika Protocol", + "PIP": "Pip", + "PIVX": "PIVX", + "PLUSDC": "plUSDC", + "PLA": "PlayDapp", + "PLAY": "HEROcoin", + "PLDAI": "Pool Dai", + "PLR": "Pillar", + "PLTC": "PlatonCoin", + "PNB": "Pink BNB", + "PNG": "Pangolin", + "PNK": "Kleros", + "PNT": "pNetwork", + "POA": "POA Network", + "POE": "Po.et", + "POKT": "Pocket Network", + "POLS": "Polkastarter", + "POLY": "POLY Maximus", + "POLYX": "Polymesh", + "POM": "Proof of Memes", + "POND": "Marlin", + "POOL": "PoolTogether", + "POP": "Popcorn", + "POWR": "Power Ledger", + "PPAY": "Plasma Finance", + "PPC": "Peercoin", + "PPP": "PayPie", + "PPT": "Populous", + "PRE": "Presearch", + "PREMIA": "Premia", + "PRIME": "Echelon Prime", + "PRL": "Oyster", + "PRO": "Propy", + "PROM": "Prom", + "PROS": "Prosper", + "PRQ": "Parsiq", + "PSP": "ParaSwap", + "PST": "Primas", + "PXP": "PointPay", + "PYR": "Vulcan Forged", + "PYTH": "Pyth Network", + "QASH": "QASH", + "QBIT": "Qubitica", + "QI": "QiSwap", + "QKC": "QuarkChain", + "QLC": "QLC Chain", + "QNT": "Quant", + "QRDO": "Qredo", + "QSP": "Quantstamp", + "QTCON": "Quiztok", + "QTUM": "Qtum", + "QUICK": "Quickswap", + "RACA": "Radio Caca", + "RAE": "Receive Access Ecosystem", + "RAI": "Rai Reflex Index", + "RARI": "Rarible", + "RAY": "Raydium", + "RBN": "Ribbon Finance", + "RBX": "RabbitX", + "RCN": "Ripio Credit Network", + "RDAI": "Rari DAI", + "RDD": "Reddcoin", + "RDN": "Raiden Network Token", + "RDNT": "Radiant Capital", + "REN": "Ren", + "REP": "Augur", + "REQ": "Request", + "RETH": "StaFi Staked ETH", + "REV": "Revain", + "RFOX": "RedFox Labs", + "RGT": "Rari Governance Token", + "RIF": "RSK Infrastructure Framework", + "RLC": "iExec RLC", + "RLY": "Rally", + "RNDR": "Render", + "ROOK": "KeeperDAO", + "ROSE": "Oasis Network", + "RPL": "Rocket Pool", + "RSR": "Reserve Rights Token", + "RSV": "Reserve", + "RUNE": "THORChain", + "RVN": "Ravencoin", + "S": "Sharpay", + "SAI": "Sai", + "SALT": "Salt", + "SAN": "Santiment Network Token", + "SAND": "The Sandbox", + "SAPP": "Sapphire", + "SCRT": "Secret", + "SCS": "Solcasino Token", + "SDEX": "SmarDex", + "SDL": "Saddle", + "SDT": "Stake DAO", + "SEELE": "Seele", + "SEFI": "Secret Finance", + "SEI": "Sei", + "SEM": "Semux", + "SETH": "sETH", + "SETH2": "sETH2", + "SFI": "Saffron Finance", + "SFM": "SafeMoon", + "SFP": "Safe Pal", + "SHA": "Safe Haven", + "SHIB": "Shiba Inu", + "SHR": "ShareToken", + "SHUF": "Shuffle Monster", + "SI": "Siren", + "SIA": "Siacoin", + "SIDUS": "Sidus", + "SILO": "Silo Finance", + "SKL": "Skale", + "SKY": "Skycoin", + "SLD": "Shield", + "SLEX": "SLEX Token", + "SLP": "Smooth Love Potion", + "SLT": "Smartlands Token", + "SMART": "SmartCash", + "SNAIL": "SnailBrook", + "SNC": "SunContract", + "SNGLS": "SingularDTV", + "SNM": "SONM", + "SNT": "Status", + "SNX": "Synthetix Network Token", + "SOAPS": "Soaps Tech", + "SOCKS": "Unisocks", + "SOFI": "Sofi", + "SOL": "Solana", + "SOUL": "Phantasma", + "SOV": "Sovryn", + "SPANK": "SpankChain", + "SPIKE": "Spiking", + "SPN": "Sapien", + "SQR": "Magic Square", + "SRM": "Serum", + "SSV": "SSV Network", + "STAKE": "xDAI Stake", + "STEEM": "Steem", + "STEP": "Step Finance", + "STETH": "Lido Staked Ether", + "STG": "Startgate Finance", + "STMX": "StormX", + "STORJ": "StorJ", + "STORM": "Storm Token", + "STPT": "Standard Tokenization Protocol", + "STRAT": "Stratis", + "STRDY": "Sturdy", + "STRK": "Strike", + "STRX": "StrikeX", + "STX": "Stacks", + "STZ": "Starz", + "SUB": "Substratum", + "SUI": "Sui", + "SUN": "Sun Token", + "SUPER": "SuperFarm", + "SUSD": "sUSD", + "SUSHI": "Sushi", + "SUTER": "Suterusu", + "SWAP": "Trustswap", + "SWEAT": "Sweatcoin", + "SWETH": "Swell Ethereum", + "SWTH": "Switcheo", + "SXDT": "Spectre.ai", + "SXP": "Swipe", + "SYN": "Synapse", + "SYS": "Syscoin", + "T": "Threshold Network", + "TBTC": "tBTC", + "TCT": "TokenClub", + "TEL": "Telcoin", + "TET": "Tectum", + "TFUEL": "Theta Fuel", + "THALES": "Thales", + "THC": "Hempcoin", + "THEDAO": "TheDAO", + "THETA": "Theta Network", + "THR": "Thorecoin", + "TIA": "Celestia", + "TIO": "Trade Token", + "TITAN": "TitanSwap", + "TKN": "Monolith", + "TKO": "Tokocrypto", + "TKY": "TheKey", + "TNB": "Time New Bank", + "TNC": "Trinity Network Credit", + "TNT": "Tierion", + "TOKEN": "TokenFi", + "TOMI": "tomiNet", + "TOMO": "TomoChain", + "TON": "Ton Network", + "TORN": "Tornado Cash", + "TOWER": "Tower", + "TPAY": "TokenPay", + "TRAC": "OriginTrail", + "TRB": "Tellor", + "TRIBE": "Tribe", + "TRIG": "Trigger", + "TRTL": "TurtleCoin", + "TRU": "TrueFi", + "TRX": "TRON", + "TRYB": "BiLira", + "TUBE": "BitTube", + "TUSD": "TrueUSD", + "TWT": "Trust Wallet Token", + "TYZEN": "Tyzen", + "UBI": "Universal Basic Income", + "UBQ": "Ubiq", + "UBT": "Unibright", + "UFT": "UniLend Finance", + "ULT": "Shardus", + "UMA": "UMA", + "UNCX": "UniCrypt", + "UNFI": "Unifi Protocol DAO", + "UNI": "Uniswap", + "UNIBOT": "Unibot", + "UNIQO": "Uniqo", + "UNN": "UNION Protocol Governance Token", + "UOS": "Ultra", + "UPP": "Sentinel Protocol", + "USDC": "USD Coin", + "USDD": "USDD", + "USDN": "Neutrino USD", + "USDP": "Pax Dollar", + "USDS": "Stably USD", + "USDT": "Tether", + "USX": "dForce USD", + "UTK": "Utrust", + "UUU": "U Network", + "UXP": "UXD Protocol", + "VAI": "Vaiot", + "VALUE": "Value DeFi", + "VELO": "Velodrome", + "VERI": "Veritaseum", + "VEST": "VestChain", + "VET": "VeChain", + "VGX": "Voyager Token", + "VIA": "Viacoin", + "VIB": "Viberate", + "VIBE": "VIBE", + "VIDT": "VIDT DAO", + "VIKKY": "VikkyToken", + "VIN": "VINchain", + "VINA": "Vicuna", + "VITA": "VitaDAO", + "VITE": "Vite", + "VIU": "Viuly", + "VLX": "Velax", + "VRS": "Veros", + "VS": "veSync", + "VSP": "Vesper Finance", + "VSYS": "V.System", + "VTC": "Vertcoin", + "VVS": "VVS Finance", + "WABI": "Wabi", + "WAGMIGAMES": "WAGMI Games", + "WAN": "Wanchain", + "WARP": "Warp Finance", + "WASSIE": "Wassie", + "WAVES": "Waves", + "WBTC": "Wrapped Bitcoin", + "WCK": "Wrapped basic CryptoKitties", + "WCT": "Waves Community Token", + "WECO": "WECOIN", + "WEMIX": "WEMIX", + "WETH": "Wrapped Ether", + "WEXPOLY": "WaultSwap Polygon", + "WHALE": "Whale", + "WIB": "Wibson", + "WILD": "Widler World", + "WIN": "WINkLink", + "WING": "Wing Finance", + "WINGS": "Wings", + "WLD": "Worldcoin", + "WMT": "World Mobile Token", + "WOO": "WOO Network", + "WOPENX": "wOpenX", + "WPR": "WePower", + "WRX": "WazirX", + "WSTETH": "Wrapped stETH", + "WTC": "Waltonchain", + "WXT": "Wirex", + "X2Y2": "X2Y2", + "XAI": "XAI Stablecoin", + "XAS": "Asch", + "XAUT": "Tether Gold", + "XCH": "Chia", + "XCHF": "CryptoFranc", + "XCM": "Coinmetro", + "XCN": "Chain", + "XDC": "XDC Network", + "XEC": "eCash", + "XEM": "NEM", + "XHV": "Haven", + "XIDO": "Xido Finance", + "XIN": "Mixin", + "XLM": "Stellar", + "XLN": "LunaOne", + "XMARK": "xMARK", + "XMR": "Monero", + "XMT": "MetalSwap", + "XMX": "XMax", + "XNK": "Ink Protocol", + "XNO": "Nano", + "XOR": "Sora", + "XPR": "Proton", + "XPRT": "Persistence", + "XRD": "Radix", + "XRGB": "XRGB", + "XRP": "Ripple", + "XSN": "Stakenet", + "XSR": "Xensor", + "XTZ": "Tezos", + "XVG": "Verge", + "XYM": "Symbol", + "XYO": "XYO Network", + "YFI": "yearn.finance", + "YFII": "DFI.money", + "YLD": "Yield App", + "YOYO": "YOYOW", + "ZAI": "Zero Collateral Dai", + "ZB": "ZB Token", + "ZCO": "Zebi", + "ZEC": "Zcash", + "ZEN": "Horizen", + "ZEPH": "Zephyr Protocol", + "ZIL": "Zilliqa", + "ZKS": "ZKSwap", + "ZKSP": "zkSwap", + "ZPAY": "ZoidPay", + "ZRX": "0x Protocol", + "ZUSD": "ZUSD" +} \ No newline at end of file diff --git a/core/presentation/src/main/java/dev/arkbuilders/rate/core/presentation/utils/DateFormatUtils.kt b/core/presentation/src/main/java/dev/arkbuilders/rate/core/presentation/utils/DateFormatUtils.kt index 7f88c5ac0..3e046bba0 100644 --- a/core/presentation/src/main/java/dev/arkbuilders/rate/core/presentation/utils/DateFormatUtils.kt +++ b/core/presentation/src/main/java/dev/arkbuilders/rate/core/presentation/utils/DateFormatUtils.kt @@ -5,10 +5,9 @@ import dev.arkbuilders.rate.core.presentation.R import java.time.Duration import java.time.OffsetDateTime import java.time.format.DateTimeFormatter -import java.util.Locale object DateFormatUtils { - fun latestCheckElapsedTime( + fun formatElapsedTime( ctx: Context, now: OffsetDateTime, date: OffsetDateTime, @@ -49,23 +48,23 @@ object DateFormatUtils { ) } - fun latestCheckTime(date: OffsetDateTime): String { + fun formatFullDateTime(date: OffsetDateTime): String { val format = DateTimeFormatter - .ofPattern("hh:mm a, dd MMM yyyy", Locale.ENGLISH) + .ofPattern("hh:mm a, dd MMM yyyy") return format.format(date) } - fun calculatedOn(date: OffsetDateTime): String { + fun formatDateOnly(date: OffsetDateTime): String { val format = DateTimeFormatter - .ofPattern("dd MMM yyyy", Locale.ENGLISH) + .ofPattern("dd MMM yyyy") return format.format(date) } fun notifiedOn(date: OffsetDateTime): String { val format = - DateTimeFormatter.ofPattern("MMM dd - hh:mm a", Locale.ENGLISH) + DateTimeFormatter.ofPattern("MMM dd - hh:mm a") return format.format(date) } } diff --git a/core/presentation/src/main/res/values-ru/strings.xml b/core/presentation/src/main/res/values-ru/strings.xml new file mode 100644 index 000000000..cb04e8cfb --- /dev/null +++ b/core/presentation/src/main/res/values-ru/strings.xml @@ -0,0 +1,186 @@ + + + Конвертер валют + Конвертер валют [Отладка] + + Рыночная капитализация + Общая рыночная стоимость криптовалюты, находящейся в обращении. Это аналог капитализации акций в свободном обращении на фондовом рынке.\n\nКапитализация = Текущая цена х Денежная масса в обращении. + Валюта, находящаяся в обращении + Валюта, находящаяся в обращении — это количество наличных денег, в форме бумажных купюр или монет, внутри страны, которые физически используются для проведения транзакций между потребителями и бизнесами. + + Портфели + Оповещения + Быстрые + Настройки + + Готово к расчету! + Выберите валюты и введите сумму для начала конвертации. Результаты обмена появятся здесь. + Добавить новый расчет + Редактировать пару + Последнее обновление %1$s назад + Обновлено только что + Расчеты + Закрепленные расчеты + Рассчитано %1$s назад + Рассчитано на %1$s + Рассчитано только что + Новый расчет создан + "Вы добавили расчет %1$s " + Расчет удален + Вы удалили расчет %1$s + %1$s в %2$s + Открыть приложение + Из + В + + + Детали актива + Ваш портфель пуст + Добавьте валюты вручную для отслеживания и сравнения. Ваш портфель помогает отслеживать и управлять вашими любимыми или часто используемыми валютами. + Новые активы + Портфель по умолчанию + Всего активов + Добавить новые активы + Новый актив + Новый портфель + Создать портфель + Пожалуйста, введите имя для этого портфеля. + Имя портфеля + например, Портфель 1 + Новый актив добавлен + Вы добавили %1$s в свой портфель + Актив удален + Вы удалили %1$s из своего портфеля + + + Оповещения + Редактировать оповещение + Уведомлено на %1$s + На данный момент оповещений нет + Оставайтесь в курсе! Мы опубликуем здесь любые важные уведомления или изменения в обменных курсах. + Новое оповещение + Приложению требуется разрешение на отправку уведомлений c оповещениями по парам. + Оповещение для %1$s создано + Вы получите уведомление, когда цена %1$s будет %2$s %3$s %4$s + Оповещение для %1$s удалено + Вы удалили оповещение для %1$s к %2$s + Добавить новое оповещение + Создать оповещение + Текущая цена = %1$s + + Быстрые/Портфель/Оповещения + "%1$s назад · " + Последнее обновление курсов + Последняя проверка оповещений + + Валюта уже выбрана + Пожалуйста, выберите другую валюту. Одинаковые валюты не могут быть использованы вместе. + + Создать папку + Пожалуйста, введите имя для этой папки. + Имя папки + например, Папка 1 + По умолчанию + Новая папка + + Отчеты о сбоях + Все валюты + + Упс! Что-то пошло не так + + + https://www.ark-builders.dev/apps/rate/privacy-policy + Политика конфиденциальности + + Добавить + Закрыть + Развернуть + Свернуть + Назад + + Начать + Далее + Пропустить + Хорошо + Закончить + Рассчитать + Добавить папку + Сохранить + Введите значение + Результат + Новая валюта + Сменить базовую валюту + Рыночная капитализация + Н/Д + Валюта, находящаяся в обращении + выше + ниже + Выше + Ниже + По цене + По проценту + Когда + цена + "каждый " + Каждый + Однократно + Повторяющийся + Подтвердить + Отмена + Нет результата + Поиск + Копировать + + + О приложении + Оповещение о цене ARK Rate + %1$s сейчас %2$s %3$s %4$s + Собирать аналитику + Поиск валюты + Отменить + Часто используемые валюты + Топ результатов + Открепить + Закрепить + Удалить + Повторно использовать + Редактировать + Параметры + Упс, время запроса истекло! + Пожалуйста, проверьте ваше соединение и обновите страницу, чтобы попробовать снова. + Обновить + Онлайн + Ваше соединение восстановлено. + Офлайн + Ваша сеть офлайн. + Редактировать папку + Переименовать папку + Редактировать папку \"%1$s\" + Переименовать + Папки + + Добро пожаловать в ARK Rate! + Простая мультивалютная конвертация + Легко и мгновенно конвертируйте одну валюту в несколько других. + Оставайтесь впереди с закрепленными курсами обмена + Следите за наиболее часто используемыми валютными парами для быстрых и удобных конвертаций. + Отслеживайте свой портфель в режиме реального времени + Получайте информацию об изменениях общего объема ваших активов и стоимости валюты в одном месте. + + Запустите быстрый расчёт + Конвертируйте любую валюту в одну или несколько валют одновременно. Сохраните результат, чтобы вспомнить его позже. + Следите за своими активами + Используйте функцию Портфелей, чтобы добавить свои активы на всех кошельках и картах. + Оповещения позволят вам узнать об изменениях цен + Чтобы настроить оповещения, нажмите на меню “Оповещения”. + + Проведите пальцем по расчёту вправо, чтобы закрепить + Закрепленные расчёты обновляются каждый день! + Проведите пальцем по расчёту влево, чтобы удалить + Быстро удалите расчёт, проведя пальцем влево. + Проведите пальцем по закрепленному расчёту вправо, чтобы открепить + Открепите расчёт, чтобы переместить его в историю расчётов. + Контекстное меню расчёта + Нажмите, чтобы открыть полное меню. + + diff --git a/core/presentation/src/main/res/values-ru/time_plurals.xml b/core/presentation/src/main/res/values-ru/time_plurals.xml new file mode 100644 index 000000000..1206b70d8 --- /dev/null +++ b/core/presentation/src/main/res/values-ru/time_plurals.xml @@ -0,0 +1,30 @@ + + + + %d секунду + %d секунды + %d секунд + %d секунд + + + + %d минуту + %d минуты + %d минут + %d минут + + + + %d час + %d часа + %d часов + %d часов + + + + %d день + %d дня + %d дней + %d дней + + diff --git a/core/presentation/src/main/res/values/strings.xml b/core/presentation/src/main/res/values/strings.xml index 3df764c26..bd94ec9d6 100644 --- a/core/presentation/src/main/res/values/strings.xml +++ b/core/presentation/src/main/res/values/strings.xml @@ -16,10 +16,13 @@ Select your currencies and enter an amount to start converting. Your exchange results will appear here. Add new calculation Edit pair - Last refreshed %1$s ago + Last refreshed %1$s ago + Updated just now Calculations Pinned calculations + Calculated %1$s ago Calculated on %1$s + Calculated just now New calculation has been created "You added %1$s calculation " The calculation has been deleted @@ -129,29 +132,6 @@ About - Download QR Image - Wallet copied! - support@ark-builders.dev - "Send us the transaction id by email " - " to receive premium support. We’ll make our best to help you with any issue you encounter while using our Software." - bc1qx8n9r4uwpgrhgnamt2uew53lmrxd8tuevp7lv5 - 0x9765C5aC38175BFbd2dC7a840b63e50762B80a1b - Donate using Ethereum - Donate using Bitcoin - https://www.ark-builders.dev/ - https://t.me/ark_builders - https://www.ark-builders.dev/contribute/?tab=goodFirstIssue - https://buymeacoffee.com/arkbuilders - https://www.patreon.com/ARKBuilders - https://discord.gg/tPUJTxud - Discover issues to work on - See open bounties - Buy us a coffee - Donate on Patreon - Donate using ETH - Donate using BTC - We greatly appreciate every bit of support! - Support us ARK Rate Price Alert %1$s is now %2$s %3$s %4$s Collect analytics diff --git a/feature/onboarding/src/main/java/dev/arkbuilders/rate/feature/onboarding/quickpair/OnboardingQuickPairScreen.kt b/feature/onboarding/src/main/java/dev/arkbuilders/rate/feature/onboarding/quickpair/OnboardingQuickPairScreen.kt index 879f2aaca..16cba9a68 100644 --- a/feature/onboarding/src/main/java/dev/arkbuilders/rate/feature/onboarding/quickpair/OnboardingQuickPairScreen.kt +++ b/feature/onboarding/src/main/java/dev/arkbuilders/rate/feature/onboarding/quickpair/OnboardingQuickPairScreen.kt @@ -54,7 +54,6 @@ import dev.arkbuilders.rate.core.presentation.theme.ArkColor import dev.arkbuilders.rate.core.presentation.ui.CurrencyInfoItem import dev.arkbuilders.rate.core.presentation.ui.ListHeader import dev.arkbuilders.rate.core.presentation.ui.SearchTextField -import dev.arkbuilders.rate.core.presentation.utils.DateFormatUtils import dev.arkbuilders.rate.feature.onboarding.di.OnboardingComponentHolder import dev.arkbuilders.rate.feature.onboarding.quick.MockBottomNavigation import dev.arkbuilders.rate.feature.onboarding.quick.MockQuickItem @@ -63,6 +62,7 @@ import dev.arkbuilders.rate.feature.onboarding.spotlight.SpotlightShape import dev.arkbuilders.rate.feature.onboarding.spotlight.SpotlightTooltip import dev.arkbuilders.rate.feature.onboarding.spotlight.TooltipPosition import dev.arkbuilders.rate.feature.quick.di.QuickComponentHolder +import dev.arkbuilders.rate.feature.quick.presentation.ui.QuickDateFormatter import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect @@ -188,9 +188,9 @@ fun OnboardingQuickPairScreen(navigator: DestinationsNavigator) { from = Amount(state.pair.from, state.pair.amount), to = state.pair.to, dateText = - stringResource( - CoreRString.quick_calculated_on, - DateFormatUtils.calculatedOn(state.pair.calculatedDate), + QuickDateFormatter.pairCalculatedTime( + ctx, + state.pair.calculatedDate, ), ) { } } diff --git a/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/main/QuickScreen.kt b/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/main/QuickScreen.kt index 40885f806..7f2f16779 100644 --- a/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/main/QuickScreen.kt +++ b/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/main/QuickScreen.kt @@ -50,17 +50,16 @@ import dev.arkbuilders.rate.core.presentation.ui.SearchTextField import dev.arkbuilders.rate.core.presentation.ui.group.EditGroupOptionsBottomSheet import dev.arkbuilders.rate.core.presentation.ui.group.EditGroupRenameBottomSheet import dev.arkbuilders.rate.core.presentation.ui.group.EditGroupReorderBottomSheet -import dev.arkbuilders.rate.core.presentation.utils.DateFormatUtils import dev.arkbuilders.rate.feature.quick.di.QuickComponentHolder import dev.arkbuilders.rate.feature.quick.domain.model.PinnedQuickPair import dev.arkbuilders.rate.feature.quick.domain.model.QuickPair import dev.arkbuilders.rate.feature.quick.presentation.QuickExternalNavigator import dev.arkbuilders.rate.feature.quick.presentation.ui.PinnedQuickSwipeItem +import dev.arkbuilders.rate.feature.quick.presentation.ui.QuickDateFormatter import dev.arkbuilders.rate.feature.quick.presentation.ui.QuickOptionsBottomSheet import dev.arkbuilders.rate.feature.quick.presentation.ui.QuickSwipeItem import kotlinx.coroutines.launch import org.orbitmvi.orbit.compose.collectAsState -import java.time.OffsetDateTime @OptIn(ExperimentalMaterial3Api::class) @Destination @@ -340,15 +339,7 @@ private fun GroupPage( QuickItem( from = Amount(it.pair.from, it.pair.amount), to = it.actualTo, - dateText = - stringResource( - CoreRString.quick_last_refreshed, - DateFormatUtils.latestCheckElapsedTime( - ctx, - OffsetDateTime.now(), - it.refreshDate, - ), - ), + dateText = QuickDateFormatter.pairRefreshedTime(ctx, it.refreshDate), onClick = { onClick(it.pair) }, ) }, @@ -370,9 +361,9 @@ private fun GroupPage( from = Amount(it.from, it.amount), to = it.to, dateText = - stringResource( - CoreRString.quick_calculated_on, - DateFormatUtils.calculatedOn(it.calculatedDate), + QuickDateFormatter.pairCalculatedTime( + ctx, + it.calculatedDate, ), onClick = { onClick(it) }, ) diff --git a/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/ui/QuickDateFormatter.kt b/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/ui/QuickDateFormatter.kt new file mode 100644 index 000000000..1521345d5 --- /dev/null +++ b/feature/quick/src/main/java/dev/arkbuilders/rate/feature/quick/presentation/ui/QuickDateFormatter.kt @@ -0,0 +1,57 @@ +package dev.arkbuilders.rate.feature.quick.presentation.ui + +import android.content.Context +import dev.arkbuilders.rate.core.presentation.CoreRString +import dev.arkbuilders.rate.core.presentation.utils.DateFormatUtils +import java.time.Duration +import java.time.OffsetDateTime + +object QuickDateFormatter { + fun pairCalculatedTime( + ctx: Context, + date: OffsetDateTime, + ): String { + val now = OffsetDateTime.now() + val dur = Duration.between(date, now) + + return when { + dur.toDays() >= 7 -> + ctx.getString( + CoreRString.quick_calculated_on, + DateFormatUtils.formatDateOnly(date), + ) + + dur.toDays() == 0L && + dur.toHours() == 0L && + dur.toMinutes() == 0L && + dur.seconds <= 5L -> ctx.getString(CoreRString.quick_calculated_just_now) + + else -> + ctx.getString( + CoreRString.quick_calculated_ago, + DateFormatUtils.formatElapsedTime(ctx, now, date), + ) + } + } + + fun pairRefreshedTime( + ctx: Context, + date: OffsetDateTime, + ): String { + val now = OffsetDateTime.now() + val dur = Duration.between(date, now) + + return when { + dur.toDays() == 0L && + dur.toHours() == 0L && + dur.toMinutes() == 0L && + dur.seconds <= 5L -> ctx.getString(CoreRString.quick_last_refreshed_now) + + else -> + ctx.getString( + CoreRString.quick_last_refreshed_ago, + DateFormatUtils.formatElapsedTime(ctx, now, date), + ) + } + } +} diff --git a/feature/settings/src/main/java/dev/arkbuilders/rate/feature/settings/presentation/SettingsScreen.kt b/feature/settings/src/main/java/dev/arkbuilders/rate/feature/settings/presentation/SettingsScreen.kt index 6d5ddd1e8..4bd4cd02f 100644 --- a/feature/settings/src/main/java/dev/arkbuilders/rate/feature/settings/presentation/SettingsScreen.kt +++ b/feature/settings/src/main/java/dev/arkbuilders/rate/feature/settings/presentation/SettingsScreen.kt @@ -87,8 +87,8 @@ private fun Content( val now = OffsetDateTime.now() fun formatTime(date: OffsetDateTime): String { - val elapsed = DateFormatUtils.latestCheckElapsedTime(ctx, now, date) - val time = DateFormatUtils.latestCheckTime(date) + val elapsed = DateFormatUtils.formatElapsedTime(ctx, now, date) + val time = DateFormatUtils.formatFullDateTime(date) return ctx.getString(CoreRString.settings_elapsed_ago, elapsed) + time } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 543aa9258..5c0dd9eca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ minSdk = "26" compileSdk = "35" ksp = "2.1.20-1.0.32" -arkAbout = "0.1.1" +arkAbout = "0.2.0" activityCompose = "1.10.1" composeDestinationsVersion = "2.1.0" arrowFxCoroutines = "1.2.1"