mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-11-26 16:52:06 +05:30
Add Udmurt language, replace locales override implementation
This commit is contained in:
parent
bda3994138
commit
4379444abe
@ -45,7 +45,8 @@
|
|||||||
"build:dll": "babel-node --extensions '.ts,.d.ts' ./packages/scripts/build-dll.ts",
|
"build:dll": "babel-node --extensions '.ts,.d.ts' ./packages/scripts/build-dll.ts",
|
||||||
"build:serve": "http-server --proxy https://dev.account.ely.by ./build",
|
"build:serve": "http-server --proxy https://dev.account.ely.by ./build",
|
||||||
"sb": "APP_ENV=storybook start-storybook -p 9009 --ci",
|
"sb": "APP_ENV=storybook start-storybook -p 9009 --ci",
|
||||||
"sb:build": "APP_ENV=storybook build-storybook"
|
"sb:build": "APP_ENV=storybook build-storybook",
|
||||||
|
"postinstall": "node -e \"try{require('./postinstall.js')}catch(e){}\""
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.{json,scss,css,md}": [
|
"*.{json,scss,css,md}": [
|
||||||
|
6
packages/app/components/i18n/flags/udm.svg
Normal file
6
packages/app/components/i18n/flags/udm.svg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 480">
|
||||||
|
<path d="M0 0h204.8v480H0z"/>
|
||||||
|
<path fill="#D21" d="M435.2 0H640v480H435.2z"/>
|
||||||
|
<path fill="#FFF" d="M204.8 0h230.4v480H204.8z"/>
|
||||||
|
<path fill="#D21" d="M286.667 140L420 273.333H220L353.333 140v200L220 206.667h200L286.667 340V140z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 316 B |
250
packages/app/services/i18n/overrides/intl/udm.js
Normal file
250
packages/app/services/i18n/overrides/intl/udm.js
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
IntlPolyfill.__addLocaleData({
|
||||||
|
locale: "udm",
|
||||||
|
date: {
|
||||||
|
ca: ["gregory", "generic"],
|
||||||
|
hourNo0: true,
|
||||||
|
hour12: false,
|
||||||
|
formats: {
|
||||||
|
short: "{1}, {0}",
|
||||||
|
medium: "{1}, {0}",
|
||||||
|
full: "{1}, {0}",
|
||||||
|
long: "{1}, {0}",
|
||||||
|
availableFormats: {
|
||||||
|
d: "d",
|
||||||
|
E: "ccc",
|
||||||
|
Ed: "ccc, d",
|
||||||
|
Ehm: "E h:mm a",
|
||||||
|
EHm: "E HH:mm",
|
||||||
|
Ehms: "E h:mm:ss a",
|
||||||
|
EHms: "E HH:mm:ss",
|
||||||
|
Gy: "G y 'аре'",
|
||||||
|
GyMMM: "LLL G y",
|
||||||
|
GyMMMd: "d MMM G y 'аре'",
|
||||||
|
GyMMMEd: "E, d MMM G y 'аре'",
|
||||||
|
h: "h a",
|
||||||
|
H: "H",
|
||||||
|
hm: "h:mm a",
|
||||||
|
Hm: "H:mm",
|
||||||
|
hms: "h:mm:ss a",
|
||||||
|
Hms: "H:mm:ss",
|
||||||
|
hmsv: "h:mm:ss a v",
|
||||||
|
Hmsv: "H:mm:ss v",
|
||||||
|
hmv: "h:mm a v",
|
||||||
|
Hmv: "H:mm v",
|
||||||
|
M: "L",
|
||||||
|
Md: "dd.MM",
|
||||||
|
MEd: "E, dd.MM",
|
||||||
|
MMdd: "dd.MM",
|
||||||
|
MMM: "LLL",
|
||||||
|
MMMd: "d MMM",
|
||||||
|
MMMEd: "ccc, d MMM",
|
||||||
|
MMMMd: "d MMMM",
|
||||||
|
ms: "mm:ss",
|
||||||
|
y: "y",
|
||||||
|
yM: "MM.y",
|
||||||
|
yMd: "dd.MM.y",
|
||||||
|
yMEd: "ccc, d.MM.y 'аре'",
|
||||||
|
yMM: "MM.y",
|
||||||
|
yMMM: "LLL y 'аре'",
|
||||||
|
yMMMd: "d MMM y 'аре'",
|
||||||
|
yMMMEd: "E, d MMM y 'аре'",
|
||||||
|
yMMMM: "LLLL y 'аре'",
|
||||||
|
yQQQ: "QQQ y 'аре'",
|
||||||
|
yQQQQ: "QQQQ y 'аре'",
|
||||||
|
},
|
||||||
|
dateFormats: {
|
||||||
|
yMMMMEEEEd: "EEEE, d MMMM y 'аре'",
|
||||||
|
yMMMMd: "d MMMM y 'аре'",
|
||||||
|
yMMMd: "d MMM y 'аре'",
|
||||||
|
yMd: "dd.MM.yy",
|
||||||
|
},
|
||||||
|
timeFormats: {
|
||||||
|
hmmsszzzz: "H:mm:ss zzzz",
|
||||||
|
hmsz: "H:mm:ss z",
|
||||||
|
hms: "H:mm:ss",
|
||||||
|
hm: "H:mm",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
calendars: {
|
||||||
|
generic: {
|
||||||
|
months: {
|
||||||
|
narrow: [
|
||||||
|
"1",
|
||||||
|
"2",
|
||||||
|
"3",
|
||||||
|
"4",
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7",
|
||||||
|
"8",
|
||||||
|
"9",
|
||||||
|
"10",
|
||||||
|
"11",
|
||||||
|
"12",
|
||||||
|
],
|
||||||
|
short: [
|
||||||
|
"Т01",
|
||||||
|
"Т02",
|
||||||
|
"Т03",
|
||||||
|
"Т04",
|
||||||
|
"Т05",
|
||||||
|
"Т06",
|
||||||
|
"Т07",
|
||||||
|
"Т08",
|
||||||
|
"Т09",
|
||||||
|
"Т10",
|
||||||
|
"Т11",
|
||||||
|
"Т12",
|
||||||
|
],
|
||||||
|
long: [
|
||||||
|
"Т01",
|
||||||
|
"Т02",
|
||||||
|
"Т03",
|
||||||
|
"Т04",
|
||||||
|
"Т05",
|
||||||
|
"Т06",
|
||||||
|
"Т07",
|
||||||
|
"Т08",
|
||||||
|
"Т09",
|
||||||
|
"Т10",
|
||||||
|
"Т11",
|
||||||
|
"Т12",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
days: {
|
||||||
|
narrow: ["А", "В", "П", "В", "П", "У", "К"],
|
||||||
|
short: ["ан", "вр", "пк", "вн", "па", "уд", "кн"],
|
||||||
|
long: [
|
||||||
|
"арнянунал",
|
||||||
|
"вордӥськон",
|
||||||
|
"пуксён",
|
||||||
|
"вирнунал",
|
||||||
|
"покчиарня",
|
||||||
|
"удмуртарня",
|
||||||
|
"кӧснунал",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
eras: {
|
||||||
|
narrow: ["ERA0", "ERA1"],
|
||||||
|
short: ["ERA0", "ERA1"],
|
||||||
|
long: ["ERA0", "ERA1"],
|
||||||
|
},
|
||||||
|
dayPeriods: { am: "ЛА", pm: "ЛБ" },
|
||||||
|
},
|
||||||
|
gregory: {
|
||||||
|
months: {
|
||||||
|
narrow: ["Т", "Т", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"],
|
||||||
|
short: [
|
||||||
|
"тшт",
|
||||||
|
"тпт",
|
||||||
|
"южт",
|
||||||
|
"ошт",
|
||||||
|
"крт",
|
||||||
|
"ивт",
|
||||||
|
"пст",
|
||||||
|
"гкт",
|
||||||
|
"кут",
|
||||||
|
"квт",
|
||||||
|
"шкт",
|
||||||
|
"тст",
|
||||||
|
],
|
||||||
|
long: [
|
||||||
|
"толшоре",
|
||||||
|
"тулыспалэ",
|
||||||
|
"южтолэзе",
|
||||||
|
"оштолэзе",
|
||||||
|
"куартолэзе",
|
||||||
|
"инвожое",
|
||||||
|
"пӧсьтолэзе",
|
||||||
|
"гудырикошконэ",
|
||||||
|
"куарусёнэ",
|
||||||
|
"коньывуонэ",
|
||||||
|
"шуркынмонэ",
|
||||||
|
"толсуре",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
days: {
|
||||||
|
narrow: ["А", "В", "П", "В", "П", "У", "К"],
|
||||||
|
short: ["ан", "вр", "пк", "вн", "па", "уд", "кн"],
|
||||||
|
long: [
|
||||||
|
"арнянунал",
|
||||||
|
"вордӥськон",
|
||||||
|
"пуксён",
|
||||||
|
"вирнунал",
|
||||||
|
"покчиарня",
|
||||||
|
"удмуртарня",
|
||||||
|
"кӧснунал",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
eras: {
|
||||||
|
narrow: ["КА", "КБ", "ава", "ав"],
|
||||||
|
short: ["КА", "КБ", "а.в.а", "а.в."],
|
||||||
|
long: [
|
||||||
|
"Кристослэн вордскем азяз",
|
||||||
|
"Кристослэн вордскем бераз",
|
||||||
|
"асьме вакытлэсь азьло",
|
||||||
|
"асьме вакытэ",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
dayPeriods: { am: "ЛА", pm: "ЛБ" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
number: {
|
||||||
|
nu: ["latn"],
|
||||||
|
patterns: {
|
||||||
|
decimal: {
|
||||||
|
positivePattern: "{number}",
|
||||||
|
negativePattern: "{minusSign}{number}",
|
||||||
|
},
|
||||||
|
currency: {
|
||||||
|
positivePattern: "{number} {currency}",
|
||||||
|
negativePattern: "{minusSign}{number} {currency}",
|
||||||
|
},
|
||||||
|
percent: {
|
||||||
|
positivePattern: "{number} {percentSign}",
|
||||||
|
negativePattern: "{minusSign}{number} {percentSign}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
symbols: {
|
||||||
|
latn: {
|
||||||
|
decimal: ",",
|
||||||
|
group: " ",
|
||||||
|
nan: "лыд ӧвӧл",
|
||||||
|
plusSign: "+",
|
||||||
|
minusSign: "-",
|
||||||
|
percentSign: "%",
|
||||||
|
infinity: "∞",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
currencies: {
|
||||||
|
AUD: "A$",
|
||||||
|
BRL: "R$",
|
||||||
|
CAD: "CA$",
|
||||||
|
CNY: "CN¥",
|
||||||
|
EUR: "€",
|
||||||
|
GBP: "£",
|
||||||
|
HKD: "HK$",
|
||||||
|
ILS: "₪",
|
||||||
|
INR: "₹",
|
||||||
|
JPY: "¥",
|
||||||
|
KRW: "₩",
|
||||||
|
MXN: "MX$",
|
||||||
|
NZD: "NZ$",
|
||||||
|
RUB: "₽",
|
||||||
|
RUR: "р.",
|
||||||
|
THB: "฿",
|
||||||
|
TMT: "ТМТ",
|
||||||
|
TWD: "NT$",
|
||||||
|
UAH: "₴",
|
||||||
|
USD: "$",
|
||||||
|
VND: "₫",
|
||||||
|
XAF: "FCFA",
|
||||||
|
XCD: "EC$",
|
||||||
|
XOF: "CFA",
|
||||||
|
XPF: "CFPF",
|
||||||
|
XXX: "XXXX",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
12
packages/app/services/i18n/overrides/pluralrules/udm.js
Normal file
12
packages/app/services/i18n/overrides/pluralrules/udm.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Intl.PluralRules && 'function' == typeof Intl.PluralRules.__addLocaleData && Intl.PluralRules.__addLocaleData({
|
||||||
|
data: {
|
||||||
|
udm: {
|
||||||
|
categories: {
|
||||||
|
cardinal: ['other'],
|
||||||
|
ordinal: ['other'],
|
||||||
|
}, fn: function(a, l) {
|
||||||
|
return 'other';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, availableLocales: ['udm'], aliases: {}, parentLocales: {},
|
||||||
|
});
|
159
packages/app/services/i18n/overrides/relativetimeformat/udm.js
Normal file
159
packages/app/services/i18n/overrides/relativetimeformat/udm.js
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
Intl.RelativeTimeFormat && 'function' == typeof Intl.RelativeTimeFormat.__addLocaleData && Intl.RelativeTimeFormat.__addLocaleData({
|
||||||
|
data: {
|
||||||
|
udm: {
|
||||||
|
nu: ['latn'],
|
||||||
|
year: {
|
||||||
|
0: 'таяз аре',
|
||||||
|
1: 'вуоно аре',
|
||||||
|
'-1': 'кылем аре',
|
||||||
|
past: { other: '{0} ар талэсь азьло' },
|
||||||
|
future: { other: '{0} ар ортчыса' },
|
||||||
|
},
|
||||||
|
'year-short': {
|
||||||
|
0: 'туэ',
|
||||||
|
1: 'вуоно аре',
|
||||||
|
'-1': 'кылем аре',
|
||||||
|
past: { other: '{0} ар талэсь азьло' },
|
||||||
|
future: { other: '{0} ар ортчыса' },
|
||||||
|
},
|
||||||
|
'year-narrow': {
|
||||||
|
0: 'туэ',
|
||||||
|
1: 'кайта',
|
||||||
|
'-1': 'мийым',
|
||||||
|
past: { other: '{0} ар талэсь азьло' },
|
||||||
|
future: { other: '{0} ар ортчыса' },
|
||||||
|
},
|
||||||
|
quarter: {
|
||||||
|
0: 'таяз арньыльмосэ',
|
||||||
|
1: 'вуоно арньыльмосэ',
|
||||||
|
'-1': 'ортчем арньыльмосэ',
|
||||||
|
past: { other: '{0} арньыльмос талэсь азьло' },
|
||||||
|
future: { other: '{0} арныльмос ортчыса' },
|
||||||
|
},
|
||||||
|
'quarter-short': {
|
||||||
|
0: 'таяз арньыльмосэ',
|
||||||
|
1: 'вуоно арньыльмосэ',
|
||||||
|
'-1': 'ортчем арньыльмосэ',
|
||||||
|
past: { other: '{0} арньыльмос талэсь азьло' },
|
||||||
|
future: { other: '{0} арныльмос ортчыса' },
|
||||||
|
},
|
||||||
|
'quarter-narrow': {
|
||||||
|
0: 'таяз арньыльмосэ',
|
||||||
|
1: 'вуоно арньыльмосэ',
|
||||||
|
'-1': 'ортчем арньыльмосэ',
|
||||||
|
past: { other: '{0} арньыльмос талэсь азьло' },
|
||||||
|
future: { other: '{0} арныльмос ортчыса' },
|
||||||
|
},
|
||||||
|
month: {
|
||||||
|
0: 'таяз толэзе',
|
||||||
|
1: 'вуоно толэзе',
|
||||||
|
'-1': 'ортчем толэзе',
|
||||||
|
past: { other: '{0} толэзь талэсь азьло' },
|
||||||
|
future: { other: '{0} толэзь ортчыса' },
|
||||||
|
},
|
||||||
|
'month-short': {
|
||||||
|
0: 'таяз толэзе',
|
||||||
|
1: 'вуоно толэзе',
|
||||||
|
'-1': 'ортчем толэзе',
|
||||||
|
past: { other: '{0} толэзь талэсь азьло' },
|
||||||
|
future: { other: '{0} толэзь ортчыса' },
|
||||||
|
},
|
||||||
|
'month-narrow': {
|
||||||
|
0: 'таяз толэзе',
|
||||||
|
1: 'вуоно толэзе',
|
||||||
|
'-1': 'ортчем толэзе',
|
||||||
|
past: { other: '{0} толэзь талэсь азьло' },
|
||||||
|
future: { other: '{0} толэзь ортчыса' },
|
||||||
|
},
|
||||||
|
week: {
|
||||||
|
0: 'таяз арняе',
|
||||||
|
1: 'вуоно арняе',
|
||||||
|
'-1': 'ортчем арняе',
|
||||||
|
past: { other: '{0} арня талэсь азьло' },
|
||||||
|
future: { other: '{0} арня ортчыса' },
|
||||||
|
},
|
||||||
|
'week-short': {
|
||||||
|
0: 'таяз арняе',
|
||||||
|
1: 'вуоно арняе',
|
||||||
|
'-1': 'ортчем арняе',
|
||||||
|
past: { other: '{0} арня талэсь азьло' },
|
||||||
|
future: { other: '{0} арня ортчыса' },
|
||||||
|
},
|
||||||
|
'week-narrow': {
|
||||||
|
0: 'таяз арняе',
|
||||||
|
1: 'вуоно арняе',
|
||||||
|
'-1': 'ортчем арняе',
|
||||||
|
past: { other: '{0} арня талэсь азьло' },
|
||||||
|
future: { other: '{0} арня ортчыса' },
|
||||||
|
},
|
||||||
|
day: {
|
||||||
|
0: 'туннэ',
|
||||||
|
1: 'ӵуказе',
|
||||||
|
2: 'ӵуказе улыса',
|
||||||
|
'-2': 'валлян',
|
||||||
|
'-1': 'толон',
|
||||||
|
past: { other: '{0} нунал талэсь азьло' },
|
||||||
|
future: { other: '{0} нунал ортчыса' },
|
||||||
|
},
|
||||||
|
'day-short': {
|
||||||
|
0: 'туннэ',
|
||||||
|
1: 'ӵуказе',
|
||||||
|
2: 'ӵуказе улыса',
|
||||||
|
'-2': 'валлян',
|
||||||
|
'-1': 'толон',
|
||||||
|
past: { other: '{0} нунал талэсь азьло' },
|
||||||
|
future: { other: '{0} нунал ортчыса' },
|
||||||
|
},
|
||||||
|
'day-narrow': {
|
||||||
|
0: 'туннэ',
|
||||||
|
1: 'ӵуказе',
|
||||||
|
2: 'усьсэ',
|
||||||
|
'-2': 'валлян',
|
||||||
|
'-1': 'толон',
|
||||||
|
past: { other: '{0} нунал талэсь азьло' },
|
||||||
|
future: { other: '{0} нунал ортчыса' },
|
||||||
|
},
|
||||||
|
hour: { 0: 'таяз часэ', past: { other: '{0} час талэсь азьло' }, future: { other: '{0} час ортчыса' } },
|
||||||
|
'hour-short': {
|
||||||
|
0: 'таяз часэ',
|
||||||
|
past: { other: '{0} час талэсь азьло' },
|
||||||
|
future: { other: '{0} час ортчыса' },
|
||||||
|
},
|
||||||
|
'hour-narrow': {
|
||||||
|
0: 'таяз часэ',
|
||||||
|
past: { other: '{0} час талэсь азьло' },
|
||||||
|
future: { other: '{0} час ортчыса' },
|
||||||
|
},
|
||||||
|
minute: {
|
||||||
|
0: 'таяз минутэ',
|
||||||
|
past: { other: '{0} минут талэсь азьло' },
|
||||||
|
future: { other: '{0} минут ортчыса' },
|
||||||
|
},
|
||||||
|
'minute-short': {
|
||||||
|
0: 'таяз минутэ',
|
||||||
|
past: { other: '{0} минут талэсь азьло' },
|
||||||
|
future: { other: '{0} минут ортчыса' },
|
||||||
|
},
|
||||||
|
'minute-narrow': {
|
||||||
|
0: 'таяз минутэ',
|
||||||
|
past: { other: '{0} минут талэсь азьло' },
|
||||||
|
future: { other: '{0} минут ортчыса' },
|
||||||
|
},
|
||||||
|
second: {
|
||||||
|
0: 'таяз секундэ',
|
||||||
|
past: { other: '{0} секунд талэзь азьло' },
|
||||||
|
future: { other: '{0} секунд ортчыса' },
|
||||||
|
},
|
||||||
|
'second-short': {
|
||||||
|
0: 'таяз секундэ',
|
||||||
|
past: { other: '{0} секунд талэзь азьло' },
|
||||||
|
future: { other: '{0} секунд ортчыса' },
|
||||||
|
},
|
||||||
|
'second-narrow': {
|
||||||
|
0: 'таяз секундэ',
|
||||||
|
past: { other: '{0} секунд талэзь азьло' },
|
||||||
|
future: { other: '{0} секунд ортчыса' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, availableLocales: ['udm'], aliases: {}, parentLocales: {},
|
||||||
|
});
|
19
postinstall.js
Executable file
19
postinstall.js
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const localeOverrides = {
|
||||||
|
'packages/app/services/i18n/overrides/intl': 'node_modules/intl/locale-data/jsonp',
|
||||||
|
'packages/app/services/i18n/overrides/pluralrules': 'node_modules/@formatjs/intl-pluralrules/dist/locale-data',
|
||||||
|
// eslint-disable-next-line prettier/prettier
|
||||||
|
'packages/app/services/i18n/overrides/relativetimeformat': 'node_modules/@formatjs/intl-relativetimeformat/dist/locale-data',
|
||||||
|
};
|
||||||
|
|
||||||
|
Object.entries(localeOverrides).forEach(([sourceDir, targetDir]) => {
|
||||||
|
fs.readdirSync(sourceDir).forEach((localeFile) => {
|
||||||
|
fs.copyFileSync(path.join(sourceDir, localeFile), path.join(targetDir, localeFile));
|
||||||
|
});
|
||||||
|
});
|
@ -201,19 +201,6 @@ const webpackConfig = {
|
|||||||
type: 'javascript/auto',
|
type: 'javascript/auto',
|
||||||
use: ['fontgen-loader'],
|
use: ['fontgen-loader'],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
// Replace some locales provided by FormatJS with local ones
|
|
||||||
test: /@formatjs\/intl-\w+\/dist\/locale-data/,
|
|
||||||
loader: 'file-replace-loader',
|
|
||||||
options: {
|
|
||||||
condition: 'if-replacement-exists',
|
|
||||||
replacement: (resource) =>
|
|
||||||
resource.replace(
|
|
||||||
/node_modules\/@formatjs\/intl-(\w+)\/dist\/locale-data\/(\w+)\.js/,
|
|
||||||
'packages/app/services/i18n/overrides/$1/$2.js',
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user