Улучшение #3886
Створення словника валют та можливістю вибора валюти (дооформити)
0%
Описание
Дивлячись на інтеграцію азербайджанської валюти в додатку, виникла ідея.
Оскільки рано чи пізно, нам доведеться брати валюту з білінга (бо хардкодити його в додатку така собі ідея), а оскільки параметр MONEY_UNIT_NAMES не виконує всіх задач які нам потрібно, а CURRENCY_ICON не підходить, то хорошою ідеєю було б:
1) Мати внутрішній словник валют
2) Мати інтернаціоналізацію валют
3) Надавати клієнту можливість дуже легко обирати валюти і не думати як воно і що
Враховуючи, як це реалізовано в додатку, наприклад:
{
"currencies": {
"UAH": {
"symbol": "₴",
"short": "грн",
"wallet": {
"0": "гривня",
"1": "гривні",
"2": "гривень"
}
}
}
}
І потім обирається суто конфігурація currency: "UAH", і все, вся потрібна інформація обирається і підсвічується в додатку.
Що правда, треба доробити ще з вибором копійок та класу валюти для фронтенду приклад на JSON:
{
"currencies": {
"UAH": {
"symbol": "₴",
"iconClass: "fas fa-hryvnia",
"short": "грн",
"shortSubunit": "коп",
"units": {
"0": "гривня",
"1": "гривні",
"2": "гривень"
},
"subunits": {
"0": "копійка",
"1": "копійки",
"2": "копійок"
}
}
}
}
Нагадую про те, що це тільки приклад, і потрібно придумати ще доопрацювати цю ідею +інтернаціоналізація.
І тому, для виконання задачі потрібно:
1) Створити словничок мов з заданими вище параметрами
2) Створити інтернаціоналізацію валют (українська, російська, англійська)
3) Створити опцію для вибору валюти суто кодом ISO 4217
4) Інтегрувати її в місцях використання опцій $conf{MONEY_UNIT_NAMES}, $conf{CURRENCY_ICON}
Також в рамках цього завдання потрібно зробити словник для валют:
- українська гривня (UAH)
- долар США (USD)
- євро (EUR)
- азербайджанський манат (AZN)
- узбекський сум (UZS)
- вірменський драм (AMD)
Технічне зауваження:
Через реліз - дропнути конфігурацію $conf{MONEY_UNIT_NAMES} та $conf{CURRENCY_ICON}
Очікуваний юзкейс:
Клієнт обирає умовну конфігурацію $conf{CURRENCY} = "UAH";, і повсюди в системі, залежачи від юзкейсу, пише валюту, значок валюти, скорочена та довгі plural форми.
Технічну реалізацію потрібно ще доопрацювати та дооформити.
История
#1 Обновлено Віталій Андрусяк 11 месяца назад
Оскільки в мене немає права редактувати, то ще для словника потрібно:
- киргизький сом (KGS)
#2 Обновлено Віталій Андрусяк 11 месяца назад
На рахунок інтераціоналізації, можливо варто зробити так:
Створити файл currencies.json, в якому відповідно зробити так, на прикладі UAH:
{ "UAH": { "symbol": "₴", "iconClass": "fas fa-hryvnia", "langs": { "UK": { "short": "грн", "shortSubunit": "коп", "units": { "0": "гривня", "1": "гривні", "2": "гривень" }, "subunits": { "0": "копійка", "1": "копійки", "2": "копійок" }, }, "EN": { "short": "grn", "shortSubunit": "kop", "units": { "0": "hryvna", "1": "hryvnas", "2": "hryvnas" }, "subunits": { "0": "kopiyka", "1": "kopecks", "2": "kopecks" }, } } } }
Тобто, для мови створити об'єкт з ключами лянгів.
Відповідно, всі дані затягуються і вирішені.
#3 Обновлено Віталій Андрусяк 10 месяца назад
Через 2 місяці, перечитуючи даний тікет - думаю, що описано досить нормально, і очікувана реалізація досить нормальна.
Можливо, можна поставити в Перл через ключі лянга, але сумнівно, бо це створить більше плутанини. А може й ні.