diff --git a/components/common/Calendar.js b/components/common/Calendar.js
index b6c5cd0b..bee65abf 100644
--- a/components/common/Calendar.js
+++ b/components/common/Calendar.js
@@ -123,7 +123,7 @@ const DaySelector = ({ date, minDate, maxDate, locale, onSelect }) => {
}
const days = [];
- for (let i = 0; i < 35; i++) {
+ for (let i = 0; i < 42; i++) {
days.push(addDays(startDay, i));
}
diff --git a/components/layout/Header.js b/components/layout/Header.js
index 7d8bdfd2..37474465 100644
--- a/components/layout/Header.js
+++ b/components/layout/Header.js
@@ -30,21 +30,24 @@ export default function Header() {
} size="large" className={styles.logo} />
-
+
{user && (
-
-
-
-
-
-
-
- {!process.env.isCloudMode && (
-
-
+ <>
+
+
+
+
- )}
-
+
+
+
+ {!process.env.isCloudMode && (
+
+
+
+ )}
+
+ >
)}
diff --git a/db/mysql/migrations/02_add_event_data/migration.sql b/db/mysql/migrations/02_add_event_data/migration.sql
index b781984c..cf8705b6 100644
--- a/db/mysql/migrations/02_add_event_data/migration.sql
+++ b/db/mysql/migrations/02_add_event_data/migration.sql
@@ -68,7 +68,8 @@ CREATE PROCEDURE `UmamiRenameIndexIfExists`(
INFORMATION_SCHEMA.STATISTICS
WHERE
TABLE_NAME = @tableName
- AND INDEX_NAME = @currentIndexName;
+ AND INDEX_NAME = @currentIndexName
+ AND TABLE_SCHEMA = database();
SET @query = CONCAT(
'ALTER TABLE `', @tableName, '` RENAME INDEX `', @currentIndexName, '` TO `', @newIndexName, '`;'
diff --git a/lang/am-ET.json b/lang/am-ET.json
new file mode 100644
index 00000000..f58a25cd
--- /dev/null
+++ b/lang/am-ET.json
@@ -0,0 +1,120 @@
+{
+ "label.accounts": "Accounts",
+ "label.add-account": "Add account",
+ "label.add-column": "Add column",
+ "label.add-filter": "Add filter",
+ "label.add-website": "Add website",
+ "label.administrator": "Administrator",
+ "label.all": "All",
+ "label.all-time": "All time",
+ "label.all-websites": "All websites",
+ "label.back": "Back",
+ "label.cancel": "Cancel",
+ "label.change-password": "Change password",
+ "label.confirm-password": "Confirm password",
+ "label.copy-to-clipboard": "Copy to clipboard",
+ "label.current-password": "Current password",
+ "label.custom-range": "Custom range",
+ "label.dashboard": "Dashboard",
+ "label.date-range": "Date range",
+ "label.default-date-range": "Default date range",
+ "label.delete": "Delete",
+ "label.delete-account": "Delete account",
+ "label.delete-website": "Delete website",
+ "label.dismiss": "Dismiss",
+ "label.domain": "Domain",
+ "label.edit": "Edit",
+ "label.edit-account": "Edit account",
+ "label.edit-website": "Edit website",
+ "label.enable-share-url": "Enable share URL",
+ "label.event-data": "Event Data",
+ "label.field-name": "Field Name",
+ "label.invalid": "Invalid",
+ "label.invalid-domain": "Invalid domain",
+ "label.language": "Language",
+ "label.last-days": "Last {x} days",
+ "label.last-hours": "Last {x} hours",
+ "label.logged-in-as": "Logged in as {username}",
+ "label.login": "Login",
+ "label.logout": "Logout",
+ "label.more": "More",
+ "label.name": "Name",
+ "label.new-password": "New password",
+ "label.none": "None",
+ "label.owner": "Owner",
+ "label.password": "Password",
+ "label.passwords-dont-match": "Passwords don't match",
+ "label.profile": "Profile",
+ "label.realtime": "Realtime",
+ "label.realtime-logs": "Realtime logs",
+ "label.refresh": "Refresh",
+ "label.required": "Required",
+ "label.reset": "Reset",
+ "label.reset-website": "Reset statistics",
+ "label.save": "Save",
+ "label.search": "Search",
+ "label.settings": "Settings",
+ "label.share-url": "Share URL",
+ "label.single-day": "Single day",
+ "label.theme": "Theme",
+ "label.this-month": "This month",
+ "label.this-week": "This week",
+ "label.this-year": "This year",
+ "label.timezone": "Timezone",
+ "label.today": "Today",
+ "label.tracking-code": "Tracking code",
+ "label.type": "Type",
+ "label.unknown": "Unknown",
+ "label.username": "Username",
+ "label.value": "Value",
+ "label.view-details": "View details",
+ "label.websites": "Websites",
+ "label.yesterday": "Yesterday",
+ "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
+ "message.confirm-delete": "Are you sure you want to delete {target}?",
+ "message.confirm-reset": "Are you sure you want to reset {target}'s statistics?",
+ "message.copied": "Copied!",
+ "message.delete-warning": "All associated data will be deleted as well.",
+ "message.edit-dashboard": "Edit dashboard",
+ "message.failure": "Something went wrong.",
+ "message.get-share-url": "Get share URL",
+ "message.get-tracking-code": "Get tracking code",
+ "message.go-to-settings": "Go to settings",
+ "message.incorrect-username-password": "Incorrect username/password.",
+ "message.log.visitor": "Visitor from {country} using {browser} on {os} {device}",
+ "message.new-version-available": "A new version of umami {version} is available!",
+ "message.no-data-available": "No data available.",
+ "message.no-websites-configured": "You don't have any websites configured.",
+ "message.page-not-found": "Page not found.",
+ "message.powered-by": "Powered by {name}",
+ "message.reset-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
+ "message.save-success": "Saved successfully.",
+ "message.share-url": "This is the publicly shared URL for {target}.",
+ "message.toggle-charts": "Toggle charts",
+ "message.track-stats": "To track stats for {target}, place the following code in the {head} section of your website.",
+ "message.type-delete": "Type {delete} in the box below to confirm.",
+ "message.type-reset": "Type {reset} in the box below to confirm.",
+ "metrics.actions": "Actions",
+ "metrics.average-visit-time": "Average visit time",
+ "metrics.bounce-rate": "Bounce rate",
+ "metrics.browsers": "Browsers",
+ "metrics.countries": "Countries",
+ "metrics.device.desktop": "Desktop",
+ "metrics.device.laptop": "Laptop",
+ "metrics.device.mobile": "Mobile",
+ "metrics.device.tablet": "Tablet",
+ "metrics.devices": "Devices",
+ "metrics.events": "Events",
+ "metrics.filter.combined": "Combined",
+ "metrics.filter.raw": "Raw",
+ "metrics.languages": "Languages",
+ "metrics.operating-systems": "Operating systems",
+ "metrics.page-views": "Page views",
+ "metrics.pages": "Pages",
+ "metrics.query-parameters": "Query parameters",
+ "metrics.referrers": "Referrers",
+ "metrics.screens": "Screens",
+ "metrics.unique-visitors": "Unique visitors",
+ "metrics.views": "Views",
+ "metrics.visitors": "Visitors"
+}
diff --git a/lang/hr-HR.json b/lang/hr-HR.json
index daf53d61..e9072a89 100644
--- a/lang/hr-HR.json
+++ b/lang/hr-HR.json
@@ -6,9 +6,9 @@
"label.add-website": "Dodaj web stranicu",
"label.administrator": "Administrator",
"label.all": "Sve",
- "label.all-time": "Svo vrijeme" ,
+ "label.all-time": "Svo vrijeme",
"label.all-websites": "Sve web stranice",
- "label.back": "Natrag ",
+ "label.back": "Natrag ",
"label.cancel": "Odustani",
"label.change-password": "Promijeni lozinku",
"label.confirm-password": "Potvrdi lozinku",
@@ -21,15 +21,15 @@
"label.delete": "Obriši",
"label.delete-account": "Obriši račun",
"label.delete-website": "Obriši web stranicu",
- "label.dismiss": "Odbaci",
+ "label.dismiss": "Odbaci",
"label.domain": "Domena",
"label.edit": "Uredi",
"label.edit-account": "Uredi račun",
"label.edit-website": "Uredi web stranicu",
- "label.enable-share-url": "Omogući dijeljenje URL-a",
+ "label.enable-share-url": "Omogući dijeljenje poveznice",
"label.event-data": "Podaci događaja",
"label.field-name": "Naziv polja",
- "label.invalid": "Nesipravno",
+ "label.invalid": "Neispravno",
"label.invalid-domain": "Neispravna domena",
"label.language": "Jezik",
"label.last-days": "Zadnjih {x} dana",
@@ -40,21 +40,21 @@
"label.more": "Više",
"label.name": "Ime",
"label.new-password": "Nova lozinka",
- "label.none": "Ništa",
+ "label.none": "Ništa",
"label.owner": "Vlasnik",
"label.password": "Lozinka",
- "label.passwords-dont-match": "Lozinka nije točna",
+ "label.passwords-dont-match": "Lozinke se ne podudaraju",
"label.profile": "Profil",
"label.realtime": "Stvarno vrijeme",
- "label.realtime-logs":"Trenutni zapisi",
+ "label.realtime-logs": "Trenutni zapisi",
"label.refresh": "Osvježi",
- "label.required": "Potrebna",
+ "label.required": "Potrebna",
"label.reset": "Resetirati",
- "label.reset-website": "Resetirati web stranicu",
+ "label.reset-website": "Resetirati web stranicu",
"label.save": "Spremi",
"label.search": "Pretraži",
"label.settings": "Postavke",
- "label.share-url": "Podijeli URL",
+ "label.share-url": "Podijeli poveznicu",
"label.single-day": "Jedan dan",
"label.theme": "Tema",
"label.this-month": "Ovaj mjesec",
@@ -70,15 +70,15 @@
"label.view-details": "Pogledaj detalje",
"label.websites": "Web stranice",
"label.yesterday": "Jučer",
- "message.active-users": "{x} Trenutno {x, plural, one {visitor} other {visitors}}",
+ "message.active-users": "{x} Trenutno {x, plural, one {posjetitelj} other {posjetitelja}}",
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
"message.confirm-reset": "Jeste li sigurni da želite resetirati {target}'s statistiku?",
"message.copied": "Kopirano!",
- "message.delete-warning": "Izbrisat će se svi povezani podaci.",
+ "message.delete-warning": "Izbrisat će se svi povezani podaci.",
"message.edit-dashboard": "Uredi nadzornu ploču",
"message.failure": "Nešto je pošlo po zlu.",
- "message.get-share-url": "Dohvati URL za dijeljenje",
- "message.get-tracking-code": "Dohvati kod za praćenje",
+ "message.get-share-url": "Dohvati poveznicu za dijeljenje",
+ "message.get-tracking-code": "Dohvati kod za praćenje",
"message.go-to-settings": "Idi u postavke",
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
"message.log.visitor": "Posjetitelj iz {country} koristi {browser} na {os} {device}",
@@ -86,33 +86,33 @@
"message.no-data-available": "Nema dostupnih podataka.",
"message.no-websites-configured": "Nemate konfiguriranu nijednu web stranicu.",
"message.page-not-found": "Stranica nije pronađena.",
- "message.powered-by": "Powered by {name}",
+ "message.powered-by": "Pokreće {name}",
"message.reset-warning": "Sve statistike za ovu web stranicu bit će izbrisane, ali će vaš kod za praćenje ostati netaknut.",
"message.save-success": "Uspješno spremljeno.",
- "message.share-url": "Ovo je javno dijeljeni URL za {target}.",
+ "message.share-url": "Ovo je javno dijeljena poveznica za {target}.",
"message.toggle-charts": "Uključi/isključi grafikone",
"message.track-stats": "Da biste pratili statistiku za {target}, postavite sljedeći kod u odjeljak {head} svoje web stranice.",
"message.type-delete": "Upišite {delete} u donji okvir za potvrdu.",
"message.type-reset": " Upišite {reset} u donji okvir za potvrdu. ",
"metrics.actions": "Akcije",
"metrics.average-visit-time": "Prosječno vrijeme posjeta",
- "metrics.bounce-rate": "Stopa napuštanja stranice",
+ "metrics.bounce-rate": "Stopa napuštanja stranice",
"metrics.browsers": "Web preglednici",
"metrics.countries": "Zemlje",
- "metrics.device.desktop": "Pc",
+ "metrics.device.desktop": "Pc",
"metrics.device.laptop": "Laptop",
"metrics.device.mobile": "Mobitel",
"metrics.device.tablet": "Tablet",
"metrics.devices": "Uređaji",
"metrics.events": "Događaji",
"metrics.filter.combined": "Kombinirano",
- "metrics.filter.raw": "Neobrađeni podaci",
+ "metrics.filter.raw": "Neobrađeni podaci",
"metrics.languages": "Jezici",
"metrics.operating-systems": "Operativni sustavi",
"metrics.page-views": "Pregledi stranice",
"metrics.pages": "Stranice",
"metrics.query-parameters": "Parametri upita",
- "metrics.referrers": "Upučivaći",
+ "metrics.referrers": "Upučivaći",
"metrics.screens": "Zasloni",
"metrics.unique-visitors": "Jedinstveni posjetitelji",
"metrics.views": "Pregledi",
diff --git a/lang/lt-LT.json b/lang/lt-LT.json
index 3b804fa2..409409dc 100644
--- a/lang/lt-LT.json
+++ b/lang/lt-LT.json
@@ -62,6 +62,7 @@
"label.username": "Vartotojo vardas",
"label.view-details": "Peržiūrėti detaliau",
"label.websites": "Svetainės",
+ "label.yesterday": "Vakar",
"message.active-users": "{x, plural, =0 {# aktyvių vartotojų} zero {# aktyvių vartotojų} one {# aktyvus vartotojas} other {# aktyvūs vartotojai}}",
"message.confirm-delete": "Ar esate tikri, jog norite ištrinti svetainę {target}?",
"message.confirm-reset": "Are esate tikri, jog norite atstatyti svetainės {target} statistikos duomenis?",
diff --git a/lang/si-LK.json b/lang/si-LK.json
new file mode 100644
index 00000000..33346087
--- /dev/null
+++ b/lang/si-LK.json
@@ -0,0 +1,120 @@
+{
+ "label.accounts": "ගිණුම්",
+ "label.add-account": "ගිණුම එකතු කරන්න",
+ "label.add-column": "තීරුව එක් කරන්න",
+ "label.add-filter": "පෙරහන එකතු කරන්න",
+ "label.add-website": "වෙබ් අඩවිය එක් කරන්න",
+ "label.administrator": "පරිපාලක",
+ "label.all": "සියල්ල",
+ "label.all-time": "හැම වෙලාවෙම",
+ "label.all-websites": "සියලුම වෙබ් අඩවි",
+ "label.back": "ආපසු",
+ "label.cancel": "අවලංගු කරන්න",
+ "label.change-password": "මුරපදය වෙනස් කරන්න",
+ "label.confirm-password": "මුරපදය සත්යාපනය කරන්න",
+ "label.copy-to-clipboard": "පසුරු පුවරුවට පිටපත් කරන්න",
+ "label.current-password": "වත්මන් මුරපදය",
+ "label.custom-range": "අභිරුචි පරාසය",
+ "label.dashboard": "උපකරණ පුවරුව",
+ "label.date-range": "දින පරාසය",
+ "label.default-date-range": "පෙරනිමි දින පරාසය",
+ "label.delete": "මකන්න",
+ "label.delete-account": "ගිණුම මකන්න",
+ "label.delete-website": "වෙබ් අඩවිය මකන්න",
+ "label.dismiss": "මගහරින්න",
+ "label.domain": "වසම",
+ "label.edit": "සංස්කරණය කරන්න",
+ "label.edit-account": "ගිණුම සංස්කරණය කරන්න",
+ "label.edit-website": "වෙබ් අඩවිය සංස්කරණය කරන්න",
+ "label.enable-share-url": "බෙදාගැනීමේ URL සබල කරන්න",
+ "label.event-data": "සිදුවීම් දත්ත",
+ "label.field-name": "ක්ෂේත්ර නාම",
+ "label.invalid": "වලංගු නැත",
+ "label.invalid-domain": "වලංගු නොවන වසමක්",
+ "label.language": "භාෂාව",
+ "label.last-days": "අන්තිම {x} දින",
+ "label.last-hours": "අන්තිම {x} පැය",
+ "label.logged-in-as": "ලොග් වී ඇත්තේ {username}",
+ "label.login": "ලොග් වෙන්න",
+ "label.logout": "පිටවීම",
+ "label.more": "තවත්",
+ "label.name": "නම",
+ "label.new-password": "අලුත් මුරපදය",
+ "label.none": "කිසිවක් නැත",
+ "label.owner": "හිමිකරු",
+ "label.password": "මුරපදය",
+ "label.passwords-dont-match": "මුරපද නොගැලපේ",
+ "label.profile": "පැතිකඩ",
+ "label.realtime": "තත්ය කාල",
+ "label.realtime-logs": "තත්ය කාලීන ලොග්",
+ "label.refresh": "නැවුම් කරන්න",
+ "label.required": "අවශ්යයි",
+ "label.reset": "යළි පිහිටුවන්න",
+ "label.reset-website": "සංඛ්යා ලේඛන නැවත සකසන්න",
+ "label.save": "සුරකින්න",
+ "label.search": "සෙවීම",
+ "label.settings": "සැකසුම්",
+ "label.share-url": "බෙදාගැනීමේ URL",
+ "label.single-day": "තනි දවස",
+ "label.theme": "තේමාව",
+ "label.this-month": "මෙ මාසය",
+ "label.this-week": "මේ සතිය",
+ "label.this-year": "මේ අවුරුද්ද",
+ "label.timezone": "වේලා කලාපය",
+ "label.today": "අද",
+ "label.tracking-code": "ලුහුබැඳීමේ කේතය",
+ "label.type": "වර්ගය",
+ "label.unknown": "නොදනී",
+ "label.username": "පරිශීලක නාමය",
+ "label.value": "වටිනාකම",
+ "label.view-details": "තොරතුරු පෙන්වන්න",
+ "label.websites": "වෙබ් අඩවි",
+ "label.yesterday": "ඊයේ",
+ "message.active-users": "{x} දැන් {x, plural, one {අමුත්තා} other {අමුත්තන්}}",
+ "message.confirm-delete": "{target} මකා දැමීම ගැන විශ්වාසද?",
+ "message.confirm-reset": "{target} ට අදාල සංඛ්යාලේඛන නැවත පිහිටුවීමට අවශ්යද?",
+ "message.copied": "පිටපත් කරගත්තා!",
+ "message.delete-warning": "සියලුම ආශ්රිත දත්ත ද මකා දැමෙනු ඇත.",
+ "message.edit-dashboard": "උපකරණ පුවරුව සංස්කරණය කරන්න",
+ "message.failure": "යම් ගැටලුවක් මතු වී ඇත.",
+ "message.get-share-url": "බෙදාගැනීමේ URL ලබා ගන්න",
+ "message.get-tracking-code": "ලුහුබැඳීමේ කේතය ලබා ගන්න",
+ "message.go-to-settings": "සැකසීම් වෙත යන්න",
+ "message.incorrect-username-password": "වැරදි පරිශීලක නාමය/මුරපදය.",
+ "message.log.visitor": "{country} වලින් පැමිණි අමුත්තකු {device} එකේ, මේ {os} එකේ, මේ {browser} එකෙන් ඉන්නවා",
+ "message.new-version-available": "umami අලුත්ම {version} වන අනුවාදය නිකුත් උනා!",
+ "message.no-data-available": "පෙන්වීමට දත්ත නොමැත.",
+ "message.no-websites-configured": "ඔබට වින්යාස කර ඇති වෙබ් අඩවි කිසිවක් නොමැත.",
+ "message.page-not-found": "පිටුව හමු නොවීය.",
+ "message.powered-by": "බල ගැන්වුයේ {name}",
+ "message.reset-warning": "සියලුම සංඛ්යාලේඛන මකා දමනු ඇත. නමුත් ඔබගේ නිරීක්ෂණ කේතය නොවෙනස්ව පවතිනු ඇත.",
+ "message.save-success": "සාර්තකව සුරැකිණි.",
+ "message.share-url": "මේ {target} සඳහා ප්රසිද්ධියේ බෙදාගත් URL එකයි.",
+ "message.toggle-charts": "ප්රස්ථාර ටොගල් කරන්න",
+ "message.track-stats": "{target} හි සංඛ්යාලේඛන බැලීම සදහා, පහත කේතය {head} කොටසට ඇතුලත් කරන්න.",
+ "message.type-delete": "සත්යාපනය සදහා {delete} ලෙස පහල කොටුවේ ටයිප් කරන්න",
+ "message.type-reset": "සත්යාපනය සදහා {reset} ලෙස පහල කොටුවේ ටයිප් කරන්න",
+ "metrics.actions": "ක්රියාවන්",
+ "metrics.average-visit-time": "සාමාන්ය සංචාර කාලය",
+ "metrics.bounce-rate": "හැරී යන ප්රමාණය",
+ "metrics.browsers": "බ්රව්සර්",
+ "metrics.countries": "රටවල්",
+ "metrics.device.desktop": "ඩෙස්ක්ටොප්",
+ "metrics.device.laptop": "ලැප්ටොප්",
+ "metrics.device.mobile": "ජංගම",
+ "metrics.device.tablet": "ටැබ්ලට්",
+ "metrics.devices": "උපකරණ",
+ "metrics.events": "සිද්ධීන්",
+ "metrics.filter.combined": "ඒකාබද්ධ",
+ "metrics.filter.raw": "අමු",
+ "metrics.languages": "භාෂා",
+ "metrics.operating-systems": "මෙහෙයුම් පද්ධති",
+ "metrics.page-views": "පිටු බැලීම්",
+ "metrics.pages": "පිටු",
+ "metrics.query-parameters": "විමසුම් පරාමිතීන්",
+ "metrics.referrers": "යොමු කරන්නන්",
+ "metrics.screens": "තිර",
+ "metrics.unique-visitors": "අලුත්ම අමුත්තන්",
+ "metrics.views": "බැලූ ගණන",
+ "metrics.visitors": "අමුත්තන්"
+}
diff --git a/lang/th-TH.json b/lang/th-TH.json
index 9586d18c..9457fab5 100644
--- a/lang/th-TH.json
+++ b/lang/th-TH.json
@@ -1,6 +1,8 @@
{
"label.accounts": "บัญชี",
"label.add-account": "เพิ่มบัญชี",
+ "label.add-column": "สร้างคอลัมน์",
+ "label.add-filter": "สร้างตัวกรอง",
"label.add-website": "เพิ่มเว็บไซต์",
"label.administrator": "ผู้ดูแลระบบ",
"label.all": "ทั้งหมด",
@@ -44,10 +46,11 @@
"label.realtime": "เรียลไทม์",
"label.realtime-logs": "Log แบบเรียลไทม์",
"label.refresh": "รีเฟรช",
- "label.required": "ต้องการ",
+ "label.required": "จำเป็น",
"label.reset": "รีเซต",
"label.reset-website": "รีเซตข้อมูลสถิติ",
"label.save": "บันทึก",
+ "label.search": "ค้นหา",
"label.settings": "ตั้งค่า",
"label.share-url": "แชร์ลิงก์",
"label.single-day": "วันที่",
@@ -62,12 +65,13 @@
"label.username": "ชื่อผู้ใช้",
"label.view-details": "แสดงรายละเอียด",
"label.websites": "เว็บไซต์",
+ "label.yesterday": "เมื่อวาน",
"message.active-users": "มีผู้ใช้งาน {x} {x, plural, one {คนในขณะนี้} other {คนในขณะนี้}}",
"message.confirm-delete": "คุณแน่ใจหรือไม่ว่าต้องการลบ {target} ?",
- "message.confirm-reset": "คุณแน่ใจหรือไม่ว่าต้องการรีเซตข้อมูลสถิติของ {target} ?",
+ "message.confirm-reset": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตข้อมูลสถิติของ {target} ?",
"message.copied": "คัดลอกแล้ว!",
"message.delete-warning": "ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบ.",
- "message.edit-dashboard": "Edit dashboard",
+ "message.edit-dashboard": "แก้ไขแดชบอร์ด",
"message.failure": "เกิดข้อผิดพลาด.",
"message.get-share-url": "รับลิงก์สำหรับแชร์",
"message.get-tracking-code": "รับโค้ดสำหรับใช้ติดตาม",
@@ -103,7 +107,7 @@
"metrics.operating-systems": "ระบบปฏิบัติการ",
"metrics.page-views": "การเข้าชม",
"metrics.pages": "หน้าเพจ",
- "metrics.query-parameters": "Query parameters",
+ "metrics.query-parameters": "พารามิเตอร์ URL",
"metrics.referrers": "แหล่งที่มา",
"metrics.screens": "ขนาดหน้าจอ",
"metrics.unique-visitors": "ผู้เข้าชม",
diff --git a/lib/auth.js b/lib/auth.js
index 93027544..d485b977 100644
--- a/lib/auth.js
+++ b/lib/auth.js
@@ -35,7 +35,7 @@ export function isValidToken(token, validation) {
return false;
}
-export async function allowQuery(req, type) {
+export async function allowQuery(req, type, allowShareToken = true) {
const { id } = req.query;
const { userId, isAdmin, shareToken } = req.auth ?? {};
@@ -44,7 +44,7 @@ export async function allowQuery(req, type) {
return true;
}
- if (shareToken) {
+ if (allowShareToken && shareToken) {
return isValidToken(shareToken, { id });
}
diff --git a/lib/lang.js b/lib/lang.js
index 05b951c8..6bca20b7 100644
--- a/lib/lang.js
+++ b/lib/lang.js
@@ -40,6 +40,7 @@ import {
ca,
hu,
vi,
+ si,
} from 'date-fns/locale';
export const languages = {
@@ -62,7 +63,7 @@ export const languages = {
'he-IL': { label: 'עברית', dateLocale: he },
'hi-IN': { label: 'हिन्दी', dateLocale: hi },
'hu-HU': { label: 'Hungarian', dateLocale: hu },
- 'hr-HR': { label: 'hrvatski', dateLocale: hr },
+ 'hr-HR': { label: 'Hrvatski', dateLocale: hr },
'it-IT': { label: 'Italiano', dateLocale: it },
'id-ID': { label: 'Bahasa Indonesia', dateLocale: id },
'ja-JP': { label: '日本語', dateLocale: ja },
@@ -82,6 +83,7 @@ export const languages = {
'fi-FI': { label: 'Suomi', dateLocale: fi },
'sv-SE': { label: 'Svenska', dateLocale: sv },
'ta-IN': { label: 'தமிழ்', dateLocale: ta },
+ 'si-LK': { label: 'සිංහල', dateLocale: si },
'th-TH': { label: 'ภาษาไทย', dateLocale: th },
'tr-TR': { label: 'Türkçe', dateLocale: tr },
'uk-UA': { label: 'українська', dateLocale: uk },
diff --git a/lib/middleware.js b/lib/middleware.js
index 8189ea66..b76a9d40 100644
--- a/lib/middleware.js
+++ b/lib/middleware.js
@@ -3,7 +3,12 @@ import cors from 'cors';
import { getSession } from './session';
import { getAuthToken, getShareToken } from './auth';
-export const useCors = createMiddleware(cors());
+export const useCors = createMiddleware(
+ cors({
+ // Cache CORS preflight request 24 hours by default
+ maxAge: process.env.CORS_MAX_AGE || 86400,
+ }),
+);
export const useSession = createMiddleware(async (req, res, next) => {
let session;
diff --git a/lib/prisma.js b/lib/prisma.js
index ab1e6ebf..27602ff5 100644
--- a/lib/prisma.js
+++ b/lib/prisma.js
@@ -36,6 +36,18 @@ function logQuery(e) {
log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
}
+function toUuid() {
+ const db = getDatabaseType(process.env.DATABASE_URL);
+
+ if (db === POSTGRESQL) {
+ return '::uuid';
+ }
+
+ if (db === MYSQL) {
+ return '';
+ }
+}
+
function getClient(options) {
const prisma = new PrismaClient(options);
@@ -85,11 +97,23 @@ function getTimestampInterval(field) {
}
}
-function getJsonField(column, property, isNumber) {
+function getSanitizedColumns(columns) {
+ return Object.keys(columns).reduce((acc, keyName) => {
+ const sanitizedProperty = keyName.replace(/[^\w\s_]/g, '');
+
+ acc[sanitizedProperty] = columns[keyName];
+
+ return acc;
+ }, {});
+}
+
+function getJsonField(column, property, isNumber, params) {
const db = getDatabaseType(process.env.DATABASE_URL);
if (db === POSTGRESQL) {
- let accessor = `${column} ->> '${property}'`;
+ params.push(property);
+
+ let accessor = `${column} ->> $${params.length}`;
if (isNumber) {
accessor = `CAST(${accessor} AS DECIMAL)`;
@@ -99,21 +123,29 @@ function getJsonField(column, property, isNumber) {
}
if (db === MYSQL) {
- return `${column} ->> "$.${property}"`;
+ return `${column} ->> '$.${property}'`;
}
}
-function getEventDataColumnsQuery(column, columns) {
- const query = Object.keys(columns).reduce((arr, key) => {
+function getEventDataColumnsQuery(column, columns, params) {
+ const query = Object.keys(columns).reduce((arr, key, i) => {
const filter = columns[key];
if (filter === undefined) {
return arr;
}
- const isNumber = ['sum', 'avg', 'min', 'max'].some(a => a === filter);
-
- arr.push(`${filter}(${getJsonField(column, key, isNumber)}) as "${filter}(${key})"`);
+ switch (filter) {
+ case 'sum':
+ case 'avg':
+ case 'min':
+ case 'max':
+ arr.push(`${filter}(${getJsonField(column, key, true, params)}) as "${i}"`);
+ break;
+ case 'count':
+ arr.push(`${filter}(${getJsonField(column, key, false, params)}) as "${i}"`);
+ break;
+ }
return arr;
}, []);
@@ -121,7 +153,7 @@ function getEventDataColumnsQuery(column, columns) {
return query.join(',\n');
}
-function getEventDataFilterQuery(column, filters) {
+function getEventDataFilterQuery(column, filters, params) {
const query = Object.keys(filters).reduce((arr, key) => {
const filter = filters[key];
@@ -131,11 +163,9 @@ function getEventDataFilterQuery(column, filters) {
const isNumber = filter && typeof filter === 'number';
- arr.push(
- `${getJsonField(column, key, isNumber)} = ${
- typeof filter === 'string' ? `'${filter}'` : filter
- }`,
- );
+ arr.push(`${getJsonField(column, key, isNumber, params)} = $${params.length + 1}`);
+
+ params.push(filter);
return arr;
}, []);
@@ -248,11 +278,13 @@ const prisma = global[PRISMA] || getClient(PRISMA_OPTIONS);
export default {
client: prisma,
log,
+ toUuid,
getDateQuery,
getTimestampInterval,
getFilterQuery,
getEventDataColumnsQuery,
getEventDataFilterQuery,
+ getSanitizedColumns,
parseFilters,
rawQuery,
transaction,
diff --git a/package.json b/package.json
index 75eebfd0..395d311f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "umami",
- "version": "1.39.5",
+ "version": "1.40.0",
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
"author": "Mike Cao ",
"license": "MIT",
@@ -56,7 +56,7 @@
},
"dependencies": {
"@fontsource/inter": "4.5.7",
- "@prisma/client": "4.5.0",
+ "@prisma/client": "4.9.0",
"chalk": "^4.1.1",
"chart.js": "^2.9.4",
"classnames": "^2.3.1",
@@ -126,7 +126,7 @@
"postcss-preset-env": "7.4.3",
"postcss-rtlcss": "^3.6.1",
"prettier": "^2.6.2",
- "prisma": "4.5.0",
+ "prisma": "4.9.0",
"prompts": "2.4.2",
"rollup": "^2.70.1",
"rollup-plugin-terser": "^7.0.2",
diff --git a/pages/api/accounts/[id]/password.js b/pages/api/accounts/[id]/password.js
index 89649c20..5dde1258 100644
--- a/pages/api/accounts/[id]/password.js
+++ b/pages/api/accounts/[id]/password.js
@@ -17,7 +17,7 @@ export default async (req, res) => {
const { current_password, new_password } = req.body;
const { id: accountUuid } = req.query;
- if (!(await allowQuery(req, TYPE_ACCOUNT))) {
+ if (!(await allowQuery(req, TYPE_ACCOUNT, false))) {
return unauthorized(res);
}
diff --git a/pages/api/realtime/init.js b/pages/api/realtime/init.js
index 9a9a4297..75ddf022 100644
--- a/pages/api/realtime/init.js
+++ b/pages/api/realtime/init.js
@@ -1,5 +1,5 @@
import { subMinutes } from 'date-fns';
-import { ok, methodNotAllowed, createToken } from 'next-basics';
+import { ok, unauthorized, methodNotAllowed, createToken } from 'next-basics';
import { useAuth } from 'lib/middleware';
import { getUserWebsites, getRealtimeData } from 'queries';
import { secret } from 'lib/crypto';
@@ -10,6 +10,10 @@ export default async (req, res) => {
if (req.method === 'GET') {
const { userId } = req.auth;
+ if (!userId) {
+ return unauthorized(res);
+ }
+
const websites = await getUserWebsites({ userId });
const ids = websites.map(({ websiteUuid }) => websiteUuid);
const token = createToken({ websites: ids }, secret());
diff --git a/pages/api/websites/[id]/index.js b/pages/api/websites/[id]/index.js
index a3771427..1ed85853 100644
--- a/pages/api/websites/[id]/index.js
+++ b/pages/api/websites/[id]/index.js
@@ -10,17 +10,21 @@ export default async (req, res) => {
const { id: websiteUuid } = req.query;
- if (!(await allowQuery(req, TYPE_WEBSITE))) {
- return unauthorized(res);
- }
-
if (req.method === 'GET') {
+ if (!(await allowQuery(req, TYPE_WEBSITE))) {
+ return unauthorized(res);
+ }
+
const website = await getWebsite({ websiteUuid });
return ok(res, website);
}
if (req.method === 'POST') {
+ if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
+ return unauthorized(res);
+ }
+
const { name, domain, owner, enableShareUrl, shareId } = req.body;
const { accountUuid } = req.auth;
@@ -43,7 +47,7 @@ export default async (req, res) => {
{
name,
domain,
- shareId: shareId ? shareId : newShareId,
+ shareId: shareId && enableShareUrl === undefined ? shareId : newShareId,
userId: +owner || account.id,
},
{ websiteUuid },
@@ -58,7 +62,7 @@ export default async (req, res) => {
}
if (req.method === 'DELETE') {
- if (!(await allowQuery(req, TYPE_WEBSITE))) {
+ if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
return unauthorized(res);
}
diff --git a/pages/api/websites/[id]/reset.js b/pages/api/websites/[id]/reset.js
index 0dde02df..0075a74d 100644
--- a/pages/api/websites/[id]/reset.js
+++ b/pages/api/websites/[id]/reset.js
@@ -11,7 +11,7 @@ export default async (req, res) => {
const { id: websiteId } = req.query;
if (req.method === 'POST') {
- if (!(await allowQuery(req, TYPE_WEBSITE))) {
+ if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
return unauthorized(res);
}
diff --git a/pages/api/websites/index.js b/pages/api/websites/index.js
index daecac88..f5fb6cfe 100644
--- a/pages/api/websites/index.js
+++ b/pages/api/websites/index.js
@@ -7,6 +7,7 @@ export default async (req, res) => {
await useAuth(req, res);
const { user_id, include_all } = req.query;
+
const { userId: currentUserId, isAdmin } = req.auth;
const accountUuid = user_id || req.auth.accountUuid;
let account;
@@ -18,7 +19,7 @@ export default async (req, res) => {
const userId = account ? account.id : user_id;
if (req.method === 'GET') {
- if (userId && userId !== currentUserId && !isAdmin) {
+ if (!userId || (userId !== currentUserId && !isAdmin)) {
return unauthorized(res);
}
diff --git a/public/intl/country/am-ET.json b/public/intl/country/am-ET.json
new file mode 100644
index 00000000..652b09e5
--- /dev/null
+++ b/public/intl/country/am-ET.json
@@ -0,0 +1 @@
+{"HU":"\u1200\u1295\u130b\u122a","HT":"\u1200\u12ed\u1272","IN":"\u1205\u1295\u12f5","HN":"\u1206\u1295\u12f1\u122b\u1235","HK":"\u1206\u1295\u130d \u12ae\u1295\u130d \u120d\u12e9 \u12e8\u12a0\u1235\u1270\u12f3\u12f0\u122d \u12ad\u120d\u120d \u127b\u12ed\u1293","LU":"\u1209\u12ad\u1230\u121d\u1260\u122d\u130d","LY":"\u120a\u1262\u12eb","LB":"\u120a\u1263\u1296\u1235","LT":"\u120a\u1271\u12cc\u1292\u12eb","LI":"\u120a\u127d\u1270\u1295\u1235\u1273\u12ed\u1295","LV":"\u120b\u1275\u126a\u12eb","LA":"\u120b\u12a6\u1235","LR":"\u120b\u12ed\u1264\u122a\u12eb","LS":"\u120c\u1236\u1276","FM":"\u121a\u12ad\u122e\u1294\u12e2\u12eb","ML":"\u121b\u120a","MW":"\u121b\u120b\u12ca","MY":"\u121b\u120c\u12e2\u12eb","MT":"\u121b\u120d\u1273","MV":"\u121b\u120d\u12f2\u126d\u1235","MH":"\u121b\u122d\u123b\u120d \u12a0\u12ed\u120b\u1295\u12f5","MQ":"\u121b\u122d\u1272\u1292\u12ad","MO":"\u121b\u12ab\u12a1 \u120d\u12e9 \u12e8\u12a0\u1235\u1270\u12f3\u12f0\u122d \u12ad\u120d\u120d \u127b\u12ed\u1293","CF":"\u121b\u12d5\u12a8\u120b\u12ca \u12a0\u134d\u122a\u12ab \u122a\u1351\u1265\u120a\u12ad","MM":"\u121b\u12ed\u1293\u121b\u122d(\u1260\u122d\u121b)","MG":"\u121b\u12f3\u130b\u1235\u12ab\u122d","MX":"\u121c\u12ad\u1232\u12ae","YT":"\u121c\u12ed\u12a6\u1274","EH":"\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b","MD":"\u121e\u120d\u12f6\u126b","MU":"\u121e\u122a\u1238\u1235","MR":"\u121e\u122a\u1274\u1292\u12eb","MA":"\u121e\u122e\u12ae","MC":"\u121e\u1293\u12ae","ME":"\u121e\u1295\u1270\u1294\u130d\u122e","MS":"\u121e\u1295\u1275\u1234\u122b\u1275","MN":"\u121e\u1295\u130e\u120a\u12eb","MZ":"\u121e\u12db\u121d\u1262\u12ad","RU":"\u1229\u1235\u12eb","RW":"\u1229\u12cb\u1295\u12f3","RE":"\u122a\u12e9\u1292\u12e8\u1295","RO":"\u122e\u121c\u1292\u12eb","SB":"\u1230\u120e\u121e\u1295 \u12f0\u1234\u1275","MK":"\u1230\u121c\u1295 \u1218\u1244\u12f6\u1295\u12eb","KP":"\u1230\u121c\u1295 \u12ae\u122a\u12eb","RS":"\u1230\u122d\u1265\u12eb","SO":"\u1231\u121b\u120c","SR":"\u1231\u122a\u1293\u121d","SZ":"\u1231\u12cb\u12da\u120b\u1295\u12f5","SD":"\u1231\u12f3\u1295","LK":"\u1232\u122a\u120b\u1295\u12ab","SY":"\u1232\u122a\u12eb","SC":"\u1232\u123c\u120d\u1235","SX":"\u1232\u1295\u1275 \u121b\u122d\u1270\u1295","SG":"\u1232\u1295\u130b\u1356\u122d","WS":"\u1233\u121e\u12a0","SM":"\u1233\u1295 \u121b\u122a\u1296","ST":"\u1233\u12a6 \u1276\u121c \u12a5\u1293 \u1355\u122a\u1295\u1232\u1354","SA":"\u1233\u12cd\u12f5\u12a0\u1228\u1262\u12eb","CY":"\u1233\u12ed\u1355\u1228\u1235","SL":"\u1234\u122b\u120a\u12ee\u1295","SN":"\u1234\u1294\u130b\u120d","SH":"\u1234\u1295\u1275 \u1204\u1208\u1293","LC":"\u1234\u1295\u1275 \u1209\u127a\u12eb","MF":"\u1234\u1295\u1275 \u121b\u122d\u1272\u1295","SK":"\u1235\u120e\u126b\u12aa\u12eb","SI":"\u1235\u120e\u126c\u1292\u12eb","SJ":"\u1235\u126b\u120d\u1263\u122d\u12f5 \u12a5\u1293 \u1303\u1295 \u121b\u12e8\u1295","CH":"\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5","SE":"\u1235\u12ca\u12f5\u1295","ES":"\u1235\u1354\u1295","BL":"\u1245\u12f1\u1235 \u1260\u122d\u1274\u120e\u121c","VC":"\u1245\u12f1\u1235 \u126a\u1295\u1234\u1295\u1275 \u12a5\u1293 \u130d\u122c\u1293\u12f2\u1295\u1235","KN":"\u1245\u12f1\u1235 \u12aa\u1275\u1235 \u12a5\u1293 \u1294\u126a\u1235","PM":"\u1245\u12f1\u1235 \u1352\u12ec\u122d \u12a5\u1293 \u121a\u12a9\u12a4\u120e\u1295","BZ":"\u1260\u120a\u12dd","BT":"\u1261\u1205\u1273\u1295","BG":"\u1261\u120d\u130c\u122a\u12eb","BF":"\u1261\u122d\u12aa\u1293 \u134b\u1236","BV":"\u1261\u126c\u1275 \u12f0\u1234\u1275","BS":"\u1263\u1203\u121b\u1235","BH":"\u1263\u1205\u122c\u1295","BB":"\u1263\u122d\u1264\u12f6\u1235","BD":"\u1263\u1295\u130d\u120b\u12f2\u123d","BY":"\u1264\u120b\u1229\u1235","BE":"\u1264\u120d\u1304\u121d","BM":"\u1264\u122d\u1219\u12f3","BJ":"\u1264\u1292\u1295","BN":"\u1265\u1229\u1292","BI":"\u1265\u1229\u1295\u12f2","BR":"\u1265\u122b\u12da\u120d","BO":"\u1266\u120a\u126a\u12eb","BA":"\u1266\u1235\u1292\u12eb \u12a5\u1293 \u1204\u122d\u12de\u130e\u126a\u1292\u12eb","BW":"\u1266\u1275\u1235\u12cb\u1293","VA":"\u126b\u1272\u12ab\u1295 \u12a8\u1270\u121b","VU":"\u126b\u1291\u12a0\u1271","VN":"\u126c\u1275\u1293\u121d","VE":"\u126c\u1295\u12d9\u12cc\u120b","TR":"\u1271\u122d\u12ad","TM":"\u1271\u122d\u12ad\u121c\u1292\u1235\u1273\u1295","TV":"\u1271\u126b\u1209","TN":"\u1271\u1292\u12da\u12eb","TL":"\u1272\u121e\u122d \u120c\u1235\u1274","TZ":"\u1273\u1295\u12db\u1292\u12eb","TH":"\u1273\u12ed\u120b\u1295\u12f5","TW":"\u1273\u12ed\u12cb\u1295","TJ":"\u1273\u1303\u12aa\u1235\u1273\u1295","TT":"\u1275\u122a\u1293\u12f3\u12f5 \u12a5\u1293 \u1276\u1264\u130e","TO":"\u1276\u1295\u130b","TK":"\u1276\u12ad\u120b\u12cd","TG":"\u1276\u1310","CL":"\u127a\u120a","CN":"\u127b\u12ed\u1293","TD":"\u127b\u12f5","CZ":"\u127c\u127a\u12eb","NU":"\u1292\u12a1\u12ed","NI":"\u1292\u12ab\u122b\u1313","NC":"\u1292\u12cd \u12ab\u120c\u12f6\u1292\u12eb","NZ":"\u1292\u12cd \u12da\u120b\u1295\u12f5","NE":"\u1292\u1300\u122d","NA":"\u1293\u121a\u1262\u12eb","NR":"\u1293\u12a1\u1229","NG":"\u1293\u12ed\u1304\u122a\u12eb","NL":"\u1294\u12d8\u122d\u120b\u1295\u12f5","NP":"\u1294\u1353\u120d","NO":"\u1296\u122d\u12cc\u12ed","NF":"\u1296\u122d\u134e\u120d\u12ad \u12f0\u1234\u1275","AL":"\u12a0\u120d\u1263\u1292\u12eb","DZ":"\u12a0\u120d\u1304\u122a\u12eb","AW":"\u12a0\u1229\u1263","AM":"\u12a0\u122d\u121c\u1292\u12eb","AR":"\u12a0\u122d\u1300\u1295\u1272\u1293","AG":"\u12a0\u1295\u1272\u1313 \u12a5\u1293 \u1263\u1229\u12f3","AQ":"\u12a0\u1295\u1273\u122d\u12ad\u1272\u12ab","AD":"\u12a0\u1295\u12f6\u122b","AI":"\u12a0\u1295\u1309\u12ed\u120b","AO":"\u12a0\u1295\u1310\u120b","AU":"\u12a0\u12cd\u1235\u1275\u122b\u120d\u12eb","AZ":"\u12a0\u12d8\u122d\u1263\u1303\u1295","IE":"\u12a0\u12e8\u122d\u120b\u1295\u12f5","IM":"\u12a0\u12ed\u120d \u12a6\u134d \u121b\u1295","IS":"\u12a0\u12ed\u1235\u120b\u1295\u12f5","AF":"\u12a0\u134d\u130b\u1292\u1235\u1273\u1295","UY":"\u12a1\u122b\u1313\u12ed","UZ":"\u12a1\u12dd\u1264\u12aa\u1235\u1273\u1295","IQ":"\u12a2\u122b\u1245","IR":"\u12a2\u122b\u1295","ET":"\u12a2\u1275\u12ee\u1335\u12eb","ID":"\u12a2\u1295\u12f6\u1294\u12e2\u12eb","GQ":"\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292","EC":"\u12a2\u12b3\u12f6\u122d","SV":"\u12a4\u120d \u1233\u120d\u126b\u12f6\u122d","ER":"\u12a4\u122d\u1275\u122b","EE":"\u12a4\u1235\u1276\u1292\u12eb","IL":"\u12a5\u1235\u122b\u12a4\u120d","OM":"\u12a6\u121b\u1295","AT":"\u12a6\u1235\u1275\u122a\u12eb","CW":"\u12a9\u122b\u1233\u12ce","CU":"\u12a9\u1263","CK":"\u12a9\u12ad \u12f0\u1234\u1276\u127d","KI":"\u12aa\u122a\u1263\u1272","KG":"\u12aa\u122d\u130a\u1235\u1273\u1295","CM":"\u12ab\u121c\u1229\u1295","KH":"\u12ab\u121d\u1266\u12f2\u12eb","CA":"\u12ab\u1293\u12f3","KZ":"\u12ab\u12db\u12aa\u1235\u1273\u1295","KY":"\u12ab\u12ed\u121b\u1295 \u12f0\u1234\u1276\u127d","KE":"\u12ac\u1295\u12eb","CV":"\u12ac\u1355 \u126c\u122d\u12f4","CX":"\u12ad\u122a\u1235\u121b\u1235 \u12f0\u1234\u1275","HR":"\u12ad\u122e\u12a4\u123d\u12eb","KW":"\u12ad\u12cc\u1275","CO":"\u12ae\u120e\u121d\u1262\u12eb","KM":"\u12ae\u121e\u122e\u1235","CR":"\u12ae\u1235\u1273\u122a\u12ab","CI":"\u12ae\u1275 \u12f2\u126f\u122d","CG":"\u12ae\u1295\u130e \u1265\u122b\u12db\u126a\u120d","CD":"\u12ae\u1295\u130e-\u12aa\u1295\u123b\u1233","CC":"\u12ae\u12ae\u1235(\u12ac\u120a\u1295\u130d) \u12f0\u1234\u1276\u127d","QA":"\u12b3\u1273\u122d","HM":"\u12bd\u122d\u12f5 \u12f0\u1234\u1276\u127d\u1293 \u121b\u12ad\u12f6\u1293\u120d\u12f5 \u12f0\u1234\u1276\u127d","WF":"\u12cb\u120a\u1235 \u12a5\u1293 \u1349\u1271\u1293 \u12f0\u1234\u1276\u127d","ZW":"\u12da\u121d\u1267\u1264","ZM":"\u12db\u121d\u1262\u12eb","YE":"\u12e8\u1218\u1295","MP":"\u12e8\u1230\u121c\u1293\u12ca \u121b\u122a\u12eb\u1293 \u12f0\u1234\u1276\u127d","IO":"\u12e8\u1265\u122a\u1273\u1292\u12eb \u1205\u1295\u12f5 \u12cd\u1242\u12eb\u1296\u1235 \u130d\u12db\u1275","AE":"\u12e8\u1270\u1263\u1260\u1229\u1275 \u12d3\u1228\u1265 \u12a4\u121d\u122c\u1275\u1235","TC":"\u12e8\u1271\u122d\u12ae\u127d\u1293 \u12e8\u12ab\u12a2\u12ae\u1235 \u12f0\u1234\u1276\u127d","AX":"\u12e8\u12a0\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d","AS":"\u12e8\u12a0\u121c\u122a\u12ab \u1233\u121e\u12a0","VI":"\u12e8\u12a0\u121c\u122a\u12ab \u1268\u122d\u1302\u1295 \u12f0\u1234\u1276\u127d","VG":"\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1268\u122d\u1302\u1295 \u12f0\u1234\u1276\u127d","BQ":"\u12e8\u12ab\u122a\u1262\u12eb\u1295 \u1294\u12d8\u122d\u120b\u1295\u12f5\u1235","UM":"\u12e8\u12e9 \u12a4\u1235 \u1320\u1228\u134d \u120b\u12ed \u12eb\u1209 \u12f0\u1234\u1276\u127d","TF":"\u12e8\u1348\u1228\u1295\u1233\u12ed \u12f0\u1261\u1263\u12ca \u130d\u12db\u1276\u127d","GF":"\u12e8\u1348\u1228\u1295\u1233\u12ed \u1309\u12ca\u12a0\u1293","PF":"\u12e8\u1348\u1228\u1295\u1233\u12ed \u1356\u120a\u1294\u12e2\u12eb","FO":"\u12e8\u134b\u122e \u12f0\u1234\u1276\u127d","PS":"\u12e8\u134d\u120d\u1235\u1324\u121d \u130d\u12db\u1275","FK":"\u12e8\u134e\u12ad\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d","US":"\u12e9\u1293\u12ed\u1275\u12f5 \u1235\u1274\u1275\u1235","GB":"\u12e9\u1293\u12ed\u1275\u12f5 \u12aa\u1295\u130d\u12f0\u121d","UA":"\u12e9\u12ad\u122c\u1295","UG":"\u12e9\u130b\u1295\u12f3","SS":"\u12f0\u1261\u1265 \u1231\u12f3\u1295","ZA":"\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab","KR":"\u12f0\u1261\u1265 \u12ae\u122a\u12eb","GS":"\u12f0\u1261\u1265 \u1306\u122d\u1302\u12eb \u12a5\u1293 \u12e8\u12f0\u1261\u1265 \u1233\u1295\u12f5\u12ca\u127d \u12f0\u1234\u1276\u127d","DK":"\u12f4\u1295\u121b\u122d\u12ad","DO":"\u12f6\u1218\u1292\u12ab\u1295 \u122a\u1351\u1265\u120a\u12ad","DM":"\u12f6\u121a\u1292\u12ab","DE":"\u1300\u122d\u1218\u1295","JE":"\u1300\u122d\u1232","DJ":"\u1302\u1261\u1272","GI":"\u1302\u1265\u122b\u120d\u1270\u122d","JM":"\u1303\u121b\u12ed\u12ab","JP":"\u1303\u1353\u1295","JO":"\u1306\u122d\u12f3\u1295","GE":"\u1306\u122d\u1302\u12eb","GG":"\u1309\u122d\u1290\u1232","GU":"\u1309\u12cb\u121d","GT":"\u1309\u12cb\u1272\u121b\u120b","GP":"\u1309\u12cb\u12f0\u1209\u1355","GY":"\u1309\u12eb\u1293","GN":"\u130a\u1292","GW":"\u130a\u1292 \u1262\u1233\u12a6","GM":"\u130b\u121d\u1262\u12eb","GA":"\u130b\u1266\u1295","GH":"\u130b\u1293","GL":"\u130d\u122a\u1295\u120b\u1295\u12f5","GR":"\u130d\u122a\u12ad","GD":"\u130d\u122c\u1293\u12f3","EG":"\u130d\u1265\u133d","IT":"\u1323\u120a\u12eb\u1295","FR":"\u1348\u1228\u1295\u1233\u12ed","PH":"\u134a\u120a\u1352\u1295\u1235","FI":"\u134a\u1295\u120b\u1295\u12f5","FJ":"\u134a\u1302","PN":"\u1352\u1275\u12ab\u12a2\u122d\u1295 \u12a0\u12ed\u1235\u120b\u1295\u12f5","PW":"\u1353\u120b\u12cd","PY":"\u1353\u122b\u1313\u12ed","PA":"\u1353\u1293\u121b","PK":"\u1353\u12aa\u1235\u1273\u1295","PG":"\u1353\u1351\u12cb \u1292\u12cd \u130a\u1292","PE":"\u1354\u1229","PL":"\u1356\u120b\u1295\u12f5","PT":"\u1356\u122d\u1271\u130b\u120d","PR":"\u1356\u122d\u1273 \u122a\u12ae"}
\ No newline at end of file
diff --git a/public/intl/country/si-LK.json b/public/intl/country/si-LK.json
new file mode 100644
index 00000000..7b65c7ca
--- /dev/null
+++ b/public/intl/country/si-LK.json
@@ -0,0 +1 @@
+{"IE":"\u0d85\u0dba\u0dbb\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","IM":"\u0d85\u0dba\u0dd2\u0dbd\u0dca \u0d94\u0dc6\u0dca \u0db8\u0dd1\u0db1\u0dca","IS":"\u0d85\u0dba\u0dd2\u0dc3\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","AW":"\u0d85\u0dbb\u0dd6\u0db6\u0dcf","AZ":"\u0d85\u0dc3\u0dbb\u0dca\u0db6\u0dba\u0dd2\u0da2\u0dcf\u0db1\u0dba","AR":"\u0d86\u0dbb\u0dca\u0da2\u0dd9\u0db1\u0dca\u0da7\u0dd2\u0db1\u0dcf\u0dc0","AM":"\u0d86\u0dbb\u0dca\u0db8\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","AI":"\u0d87\u0db1\u0dca\u0d9c\u0dd4\u0dba\u0dd2\u0dbd\u0dcf\u0dc0","AO":"\u0d87\u0db1\u0dca\u0d9c\u0ddd\u0dbd\u0dcf\u0dc0","AQ":"\u0d87\u0db1\u0dca\u0da7\u0dcf\u0d9a\u0dca\u0da7\u0dd2\u0d9a\u0dcf\u0dc0","AG":"\u0d87\u0db1\u0dca\u0da7\u0dd2\u0d9c\u0dd4\u0dc0\u0dcf \u0dc3\u0dc4 \u0db6\u0dcf\u0db6\u0dd2\u0dba\u0dd4\u0da9\u0dcf\u0dc0","AD":"\u0d87\u0db1\u0dca\u0da9\u0ddd\u0dbb\u0dcf\u0dc0","VI":"\u0d87\u0db8\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0dc0\u0dbb\u0dca\u0da2\u0dd2\u0db1\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","AS":"\u0d87\u0db8\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0dc3\u0dd0\u0db8\u0ddd\u0dc0\u0dcf","DZ":"\u0d87\u0dbd\u0dca\u0da2\u0dd3\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","AL":"\u0d87\u0dbd\u0dca\u0db6\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","AF":"\u0d87\u0dc6\u0dca\u0d9c\u0db1\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db1\u0dba","EC":"\u0d89\u0d9a\u0dca\u0dc0\u0daf\u0ddd\u0dbb\u0dba","IT":"\u0d89\u0dad\u0dcf\u0dbd\u0dd2\u0dba","ET":"\u0d89\u0dad\u0dd2\u0dba\u0ddd\u0db4\u0dd2\u0dba\u0dcf\u0dc0","IN":"\u0d89\u0db1\u0dca\u0daf\u0dd2\u0dba\u0dcf\u0dc0","ID":"\u0d89\u0db1\u0dca\u0daf\u0dd4\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","IQ":"\u0d89\u0dbb\u0dcf\u0d9a\u0dba","IR":"\u0d89\u0dbb\u0dcf\u0db1\u0dba","EG":"\u0d8a\u0da2\u0dd2\u0db4\u0dca\u0dad\u0dd4\u0dc0","IL":"\u0d8a\u0dc1\u0dca\u200d\u0dbb\u0dcf\u0dba\u0dbd\u0dba","UG":"\u0d8b\u0d9c\u0db1\u0dca\u0da9\u0dcf\u0dc0","KP":"\u0d8b\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0ddc\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","MP":"\u0d8b\u0dad\u0dd4\u0dbb\u0dd4 \u0db8\u0dbb\u0dd2\u0dba\u0dcf\u0db1\u0dcf \u0daf\u0dd6\u0db4\u0dad\u0dca","MK":"\u0d8b\u0dad\u0dd4\u0dbb\u0dd4 \u0db8\u0dd0\u0dc3\u0dd2\u0da9\u0ddd\u0db1\u0dd2\u0dba\u0dcf\u0dc0","UY":"\u0d8b\u0dbb\u0dd4\u0d9c\u0dd4\u0dc0\u0dda","UZ":"\u0d8b\u0dc3\u0dca\u0db6\u0dd9\u0d9a\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db1\u0dba","AE":"\u0d91\u0d9a\u0dca\u0dc3\u0dad\u0dca \u0d85\u0dbb\u0dcf\u0db6\u0dd2 \u0d91\u0db8\u0dd2\u0dbb\u0dca \u0dbb\u0dcf\u0da2\u0dca\u200d\u0dba\u0dba","UM":"\u0d91\u0d9a\u0dca\u0dc3\u0dad\u0dca \u0da2\u0db1\u0db4\u0daf \u0d88\u0dad \u0daf\u0dd6\u0db4\u0dad\u0dca","US":"\u0d91\u0d9a\u0dca\u0dc3\u0dad\u0dca \u0da2\u0db1\u0db4\u0daf\u0dba","GB":"\u0d91\u0d9a\u0dca\u0dc3\u0dad\u0dca \u0dbb\u0dcf\u0da2\u0db0\u0dcf\u0db1\u0dd2\u0dba","ER":"\u0d91\u0dbb\u0dd2\u0dad\u0dca\u200d\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","SV":"\u0d91\u0dbd\u0dca \u0dc3\u0dd0\u0dbd\u0dca\u0dc0\u0daf\u0ddd\u0dbb\u0dba","EE":"\u0d91\u0dc3\u0dca\u0dad\u0ddd\u0db1\u0dd2\u0dba\u0dcf\u0dc0","SZ":"\u0d91\u0dc3\u0dca\u0dc0\u0dcf\u0da7\u0dd2\u0db1\u0dd2","AT":"\u0d94\u0dc3\u0dca\u0da7\u0dca\u200d\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","OM":"\u0d95\u0db8\u0dcf\u0db1\u0dba","AX":"\u0d95\u0dbd\u0db1\u0dca\u0da9\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","AU":"\u0d95\u0dc3\u0dca\u0da7\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dd2\u0dba\u0dcf\u0dc0","QA":"\u0d9a\u0da7\u0dcf\u0dbb\u0dca","KZ":"\u0d9a\u0dc3\u0d9a\u0dc3\u0dca\u0dad\u0dcf\u0db1\u0dba","KH":"\u0d9a\u0dcf\u0db8\u0dca\u0db6\u0ddd\u0da2\u0dba","CA":"\u0d9a\u0dd0\u0db1\u0da9\u0dcf\u0dc0","CM":"\u0d9a\u0dd0\u0db8\u0dbb\u0dd6\u0db1\u0dca","BQ":"\u0d9a\u0dd0\u0dbb\u0dd2\u0db6\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0db1\u0dd9\u0daf\u0dbb\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","CU":"\u0d9a\u0dd2\u0dba\u0dd4\u0db6\u0dcf\u0dc0","KI":"\u0d9a\u0dd2\u0dbb\u0dd2\u0db6\u0dad\u0dd2","KG":"\u0d9a\u0dd2\u0dbb\u0dca\u0d9c\u0dd2\u0dc3\u0dca\u0dad\u0dcf\u0db1\u0dba","CK":"\u0d9a\u0dd4\u0d9a\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","CW":"\u0d9a\u0dd4\u0dbb\u0d9a\u0dcf\u0dc0\u0ddd","KW":"\u0d9a\u0dd4\u0dc0\u0dda\u0da7\u0dba","KE":"\u0d9a\u0dd9\u0db1\u0dca\u0dba\u0dcf\u0dc0","CV":"\u0d9a\u0dda\u0db4\u0dca \u0dc0\u0dbb\u0dca\u0da9\u0dca","KY":"\u0d9a\u0dda\u0db8\u0db1\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","CG":"\u0d9a\u0ddc\u0d82\u0d9c\u0ddc - \u0db6\u0dca\u200d\u0dbb\u0dc3\u0dcf\u0dc0\u0dd2\u0dbd\u0dca","CD":"\u0d9a\u0ddc\u0d82\u0d9c\u0ddd\u0dc0 (\u0da9\u0dd3\u0d86\u0dbb\u0dca\u0dc3\u0dd3)","CC":"\u0d9a\u0ddc\u0d9a\u0ddd\u0dc3\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","KM":"\u0d9a\u0ddc\u0db8\u0ddc\u0dbb\u0ddd\u0dc3\u0dca","CR":"\u0d9a\u0ddc\u0dc3\u0dca\u0da7\u0dbb\u0dd2\u0d9a\u0dcf\u0dc0","CO":"\u0d9a\u0ddc\u0dc5\u0ddc\u0db8\u0dca\u0db6\u0dd2\u0dba\u0dcf\u0dc0","CI":"\u0d9a\u0ddd\u0da7\u0dca \u0daf\u0dd2 \u0d85\u0dba\u0dd2\u0dc0\u0dbb\u0dd2","CX":"\u0d9a\u0dca\u200d\u0dbb\u0dd2\u0dc3\u0dca\u0db8\u0dc3\u0dca \u0daf\u0dd6\u0db4\u0dad","HR":"\u0d9a\u0dca\u200d\u0dbb\u0ddc\u0d92\u0dc2\u0dd2\u0dba\u0dcf\u0dc0","GY":"\u0d9c\u0dba\u0db1\u0dcf\u0dc0","GG":"\u0d9c\u0dbb\u0dca\u0db1\u0dca\u0dc3\u0dd2\u0dba","GA":"\u0d9c\u0dd0\u0db6\u0ddc\u0db1\u0dca","GM":"\u0d9c\u0dd0\u0db8\u0dca\u0db6\u0dd2\u0dba\u0dcf\u0dc0","GN":"\u0d9c\u0dd2\u0dab\u0dd2\u0dba\u0dcf\u0dc0","GW":"\u0d9c\u0dd2\u0db1\u0dd2 \u0db6\u0dd2\u0dc3\u0dc0\u0dca","GU":"\u0d9c\u0dd4\u0dc0\u0dcf\u0db8\u0dca","GT":"\u0d9c\u0ddd\u0dad\u0db8\u0dcf\u0dbd\u0dcf\u0dc0","GD":"\u0d9c\u0dca\u200d\u0dbb\u0dd0\u0db1\u0da9\u0dcf\u0dc0","GL":"\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0db1\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","GR":"\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2\u0dba","GP":"\u0d9c\u0dca\u0dc0\u0ddd\u0da9\u0dbd\u0ddd\u0db4\u0dca","GH":"\u0d9d\u0dcf\u0db1\u0dcf\u0dc0","TD":"\u0da0\u0dd0\u0da0\u0dca","CL":"\u0da0\u0dd2\u0dbd\u0dd3","CN":"\u0da0\u0dd3\u0db1\u0dba","CZ":"\u0da0\u0dd9\u0da0\u0dd2\u0dba\u0dcf\u0dc0","JP":"\u0da2\u0db4\u0dcf\u0db1\u0dba","DE":"\u0da2\u0dbb\u0dca\u0db8\u0db1\u0dd2\u0dba","JE":"\u0da2\u0dbb\u0dca\u0dc3\u0dd2","JM":"\u0da2\u0dd0\u0db8\u0dd9\u0dba\u0dd2\u0d9a\u0dcf\u0dc0","DJ":"\u0da2\u0dd2\u0db6\u0dd4\u0da7\u0dd2","GI":"\u0da2\u0dd2\u0db6\u0dca\u200d\u0dbb\u0ddd\u0dbd\u0dca\u0da7\u0dcf\u0dc0","GE":"\u0da2\u0ddd\u0dbb\u0dca\u0da2\u0dd2\u0dba\u0dcf\u0dc0","JO":"\u0da2\u0ddd\u0dbb\u0dca\u0daf\u0dcf\u0db1\u0dba","TJ":"\u0da7\u0da2\u0dd2\u0d9a\u0dd2\u0dc3\u0dca\u0dad\u0dcf\u0db1\u0dba","TM":"\u0da7\u0dbb\u0dca\u0d9a\u0dca\u0db8\u0dd9\u0db1\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db1\u0dba","TC":"\u0da7\u0dbb\u0dca\u0d9a\u0dca\u0dc3\u0dca \u0dc3\u0dc4 \u0d9a\u0dba\u0dd2\u0d9a\u0ddc\u0dc3\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","TZ":"\u0da7\u0dd0\u0db1\u0dca\u0dc3\u0dcf\u0db1\u0dd2\u0dba\u0dcf\u0dc0","TL":"\u0da7\u0dd2\u0db8\u0ddd\u0dbb\u0dca - \u0dbd\u0dd9\u0dc3\u0dca\u0dad\u0dca","TN":"\u0da7\u0dd2\u0dba\u0dd4\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","TV":"\u0da7\u0dd4\u0dc0\u0dcf\u0dbd\u0dd6","TO":"\u0da7\u0ddc\u0d82\u0d9c\u0dcf","TK":"\u0da7\u0ddc\u0d9a\u0dbd\u0dcf\u0dc0\u0dd4","TG":"\u0da7\u0ddc\u0d9c\u0ddd","TT":"\u0da7\u0dca\u200d\u0dbb\u0dd2\u0db1\u0dd2\u0da9\u0dd1\u0da9\u0dca \u0dc3\u0dc4 \u0da7\u0ddc\u0db6\u0dd0\u0d9c\u0ddd","DK":"\u0da9\u0dd9\u0db1\u0dca\u0db8\u0dcf\u0dbb\u0dca\u0d9a\u0dba","DO":"\u0da9\u0ddc\u0db8\u0dd2\u0db1\u0dd2\u0d9a\u0dcf \u0da2\u0db1\u0dbb\u0da2\u0dba","DM":"\u0da9\u0ddc\u0db8\u0dd2\u0db1\u0dd2\u0d9a\u0dcf\u0dc0","TH":"\u0dad\u0dcf\u0dba\u0dd2\u0dbd\u0db1\u0dca\u0dad\u0dba","TW":"\u0dad\u0dcf\u0dba\u0dd2\u0dc0\u0dcf\u0db1\u0dba","TR":"\u0dad\u0dd4\u0dbb\u0dca\u0d9a\u0dd2\u0dba","ZA":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0d85\u0db4\u0dca\u200d\u0dbb\u0dd2\u0d9a\u0dcf\u0dc0","KR":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0d9a\u0ddc\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","GS":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0da2\u0ddd\u0dbb\u0dca\u0da2\u0dd2\u0dba\u0dcf\u0dc0 \u0dc3\u0dc4 \u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0dc3\u0dd0\u0db1\u0dca\u0da9\u0dca\u0dc0\u0dd2\u0da0\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","TF":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1 \u0daf\u0dd6\u0db4\u0dad\u0dca \u0dc3\u0db8\u0dd6\u0dc4\u0dba","SS":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0dc3\u0dd4\u0da9\u0dcf\u0db1\u0dba","NE":"\u0db1\u0dba\u0dd2\u0da2\u0dbb\u0dca","NG":"\u0db1\u0dba\u0dd2\u0da2\u0dd3\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","NC":"\u0db1\u0dc0 \u0d9a\u0dd0\u0dbd\u0dd2\u0da9\u0ddd\u0db1\u0dd2\u0dba\u0dcf\u0dc0","NZ":"\u0db1\u0dc0\u0dc3\u0dd3\u0dbd\u0db1\u0dca\u0dad\u0dba","NR":"\u0db1\u0dcf\u0dc0\u0dd4\u0dbb\u0dd4","NA":"\u0db1\u0dd0\u0db8\u0dd3\u0db6\u0dd2\u0dba\u0dcf\u0dc0","NI":"\u0db1\u0dd2\u0d9a\u0dbb\u0d9c\u0dd4\u0dc0\u0dcf\u0dc0","NU":"\u0db1\u0dd2\u0dba\u0dd6","NL":"\u0db1\u0dd9\u0daf\u0dbb\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","NP":"\u0db1\u0dda\u0db4\u0dcf\u0dbd\u0dba","NO":"\u0db1\u0ddd\u0dbb\u0dca\u0dc0\u0dda","NF":"\u0db1\u0ddd\u0dc6\u0ddd\u0d9a\u0dca \u0daf\u0dd6\u0db4\u0dad","PS":"\u0db4\u0dbd\u0dc3\u0dca\u0dad\u0dd3\u0db1 \u0dbb\u0dcf\u0da2\u0dca\u200d\u0dba\u0dba","PW":"\u0db4\u0dbd\u0dcf\u0dc0\u0dd4","PK":"\u0db4\u0dcf\u0d9a\u0dd2\u0dc3\u0dca\u0dad\u0dcf\u0db1\u0dba","PA":"\u0db4\u0dd0\u0db1\u0db8\u0dcf\u0dc0","PG":"\u0db4\u0dd0\u0db4\u0dd4\u0dc0\u0dcf \u0db1\u0dd2\u0dc0\u0dca \u0d9c\u0dd2\u0db1\u0dd2\u0dba\u0dcf\u0dc0","PY":"\u0db4\u0dd0\u0dbb\u0d9c\u0dd4\u0dc0\u0dda","PN":"\u0db4\u0dd2\u0da7\u0dca\u0d9a\u0dd9\u0dba\u0dca\u0db1\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","PH":"\u0db4\u0dd2\u0dbd\u0dd2\u0db4\u0dd3\u0db1\u0dba","PR":"\u0db4\u0dd4\u0dc0\u0dbb\u0dca\u0da7\u0ddd \u0dbb\u0dd2\u0d9a\u0ddd","PT":"\u0db4\u0dd8\u0dad\u0dd4\u0d9c\u0dcf\u0dbd\u0dba","PE":"\u0db4\u0dda\u0dbb\u0dd4","PL":"\u0db4\u0ddd\u0dbd\u0db1\u0dca\u0dad\u0dba","GF":"\u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1 \u0d9c\u0dba\u0db1\u0dcf\u0dc0","PF":"\u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1 \u0db4\u0ddc\u0dbd\u0dd2\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","FR":"\u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1\u0dba","BD":"\u0db6\u0d82\u0d9c\u0dca\u0dbd\u0dcf\u0daf\u0dda\u0dc1\u0dba","EH":"\u0db6\u0da7\u0dc4\u0dd2\u0dbb \u0dc3\u0dc4\u0dbb\u0dcf\u0dc0","BF":"\u0db6\u0dbb\u0dca\u0d9a\u0dd2\u0db1\u0dcf \u0dc6\u0dcf\u0dc3\u0ddd","BM":"\u0db6\u0dbb\u0dca\u0db8\u0dd2\u0dba\u0dd4\u0da9\u0dcf","BG":"\u0db6\u0dbd\u0dca\u0d9c\u0dda\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","BS":"\u0db6\u0dc4\u0db8\u0dcf\u0dc3\u0dca","BH":"\u0db6\u0dc4\u0dbb\u0dda\u0db1\u0dca","BB":"\u0db6\u0dcf\u0db6\u0da9\u0ddd\u0dc3\u0dca","BI":"\u0db6\u0dd4\u0dbb\u0dd4\u0db1\u0dca\u0daf\u0dd2","BV":"\u0db6\u0dd4\u0dc0\u0da7\u0dca \u0daf\u0dd4\u0db4\u0dad\u0dca","BN":"\u0db6\u0df2\u0db1\u0dcf\u0dba\u0dd2","BJ":"\u0db6\u0dd9\u0db1\u0dd2\u0db1\u0dca","BY":"\u0db6\u0dd9\u0dbd\u0dbb\u0dd4\u0dc3\u0dca","BZ":"\u0db6\u0dd9\u0dbd\u0dd3\u0dc3\u0dca","BE":"\u0db6\u0dd9\u0dbd\u0dca\u0da2\u0dd2\u0dba\u0db8","BW":"\u0db6\u0ddc\u0da7\u0dca\u0dc3\u0dca\u0dc0\u0dcf\u0db1\u0dcf","BO":"\u0db6\u0ddc\u0dbd\u0dd3\u0dc0\u0dd2\u0dba\u0dcf\u0dc0","BA":"\u0db6\u0ddc\u0dc3\u0dca\u0db1\u0dd2\u0dba\u0dcf\u0dc0 \u0dc3\u0dc4 \u0dc4\u0dbb\u0dca\u0dc3\u0d9c\u0ddc\u0dc0\u0dd3\u0db1\u0dcf\u0dc0","BR":"\u0db6\u0dca\u200d\u0dbb\u0dc3\u0dd3\u0dbd\u0dba","IO":"\u0db6\u0dca\u200d\u0dbb\u0dd2\u0dad\u0dcf\u0db1\u0dca\u200d\u0dba \u0d89\u0db1\u0dca\u0daf\u0dd3\u0dba \u0dc3\u0dcf\u0d9c\u0dbb \u0db6\u0dbd \u0db4\u0dca\u200d\u0dbb\u0daf\u0dda\u0dc1\u0dba","VG":"\u0db6\u0dca\u200d\u0dbb\u0dd2\u0dad\u0dcf\u0db1\u0dca\u200d\u0dba \u0dc0\u0dbb\u0dca\u0da2\u0dd2\u0db1\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","BT":"\u0db7\u0dd6\u0dad\u0dcf\u0db1\u0dba","MO":"\u0db8\u0d9a\u0dcf\u0dc0\u0dd4 \u0d91\u0dc3\u0dca\u0d92\u0d86\u0dbb\u0dca","CF":"\u0db8\u0db0\u0dca\u200d\u0dba\u0db8 \u0d85\u0db4\u0dca\u200d\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0da2\u0db1\u0dbb\u0da2\u0dba","FM":"\u0db8\u0dba\u0dd2\u0d9a\u0dca\u200d\u0dbb\u0ddc\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","YT":"\u0db8\u0dba\u0ddd\u0da7\u0dca","MQ":"\u0db8\u0dbb\u0dca\u0da7\u0dd2\u0db1\u0dd2\u0d9a\u0dca","MW":"\u0db8\u0dbd\u0dcf\u0dc0\u0dd2","MV":"\u0db8\u0dcf\u0dbd \u0daf\u0dd2\u0dc0\u0dba\u0dd2\u0db1","ML":"\u0db8\u0dcf\u0dbd\u0dd2","MH":"\u0db8\u0dcf\u0dc2\u0dbd\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","MG":"\u0db8\u0dd0\u0da9\u0d9c\u0dc3\u0dca\u0d9a\u0dbb\u0dba","MY":"\u0db8\u0dd0\u0dbd\u0dda\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","MM":"\u0db8\u0dd2\u0dba\u0db1\u0dca\u0db8\u0dcf\u0dbb\u0dba (\u0db6\u0dd4\u0dbb\u0dd4\u0db8\u0dba)","MU":"\u0db8\u0dd4\u0dbb\u0dd4\u0dc3\u0dd2\u0dba","MX":"\u0db8\u0dd9\u0d9a\u0dca\u0dc3\u0dd2\u0d9a\u0ddd\u0dc0","MC":"\u0db8\u0ddc\u0db1\u0dcf\u0d9a\u0ddd\u0dc0","MN":"\u0db8\u0ddc\u0db1\u0dca\u0d9c\u0ddd\u0dbd\u0dd2\u0dba\u0dcf\u0dc0","ME":"\u0db8\u0ddc\u0db1\u0dca\u0da7\u0dd9\u0db1\u0dd3\u0d9c\u0dca\u200d\u0dbb\u0ddd","MS":"\u0db8\u0ddc\u0db1\u0dca\u0dc3\u0dd9\u0dbb\u0dcf\u0da7\u0dca","MR":"\u0db8\u0ddc\u0dbb\u0dd2\u0da7\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","MA":"\u0db8\u0ddc\u0dbb\u0ddc\u0d9a\u0dca\u0d9a\u0ddd\u0dc0","MD":"\u0db8\u0ddc\u0dbd\u0dca\u0da9\u0ddd\u0dc0\u0dcf\u0dc0","MZ":"\u0db8\u0ddc\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dd2\u0d9a\u0dca","MT":"\u0db8\u0ddd\u0dbd\u0dca\u0da7\u0dcf\u0dc0","UA":"\u0dba\u0dd4\u0d9a\u0dca\u0dbb\u0dda\u0db1\u0dba","YE":"\u0dba\u0dda\u0db8\u0db1\u0dba","RE":"\u0dbb\u0dd3\u0dba\u0dd4\u0db1\u0dd2\u0dba\u0db1\u0dca","RO":"\u0dbb\u0dd4\u0db8\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","RW":"\u0dbb\u0dd4\u0dc0\u0db1\u0dca\u0da9\u0dcf\u0dc0","RU":"\u0dbb\u0dd4\u0dc3\u0dd2\u0dba\u0dcf\u0dc0","LU":"\u0dbd\u0d9a\u0dca\u0dc1\u0db8\u0dca\u0db6\u0dbb\u0dca\u0d9c\u0dca","LR":"\u0dbd\u0dba\u0dd2\u0db6\u0dd3\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","LA":"\u0dbd\u0dcf\u0d95\u0dc3\u0dba","LV":"\u0dbd\u0dd0\u0da7\u0dca\u0dc0\u0dd2\u0dba\u0dcf\u0dc0","LI":"\u0dbd\u0dd2\u0d9a\u0dca\u0da7\u0db1\u0dca\u0dc3\u0dca\u0da7\u0dba\u0dd2\u0db1\u0dca","LT":"\u0dbd\u0dd2\u0dad\u0dd4\u0dc0\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","LY":"\u0dbd\u0dd2\u0db6\u0dd2\u0dba\u0dcf\u0dc0","LB":"\u0dbd\u0dd9\u0db6\u0db1\u0db1\u0dba","LS":"\u0dbd\u0dd9\u0dc3\u0dad\u0ddd","VA":"\u0dc0\u0dad\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0db1\u0d9c\u0dbb\u0dba","VU":"\u0dc0\u0db1\u0dd4\u0dc0\u0dcf\u0da7\u0dd4","WF":"\u0dc0\u0dd0\u0dbd\u0dd2\u0dc3\u0dca \u0dc3\u0dc4 \u0dc6\u0dd4\u0da7\u0dd4\u0db1\u0dcf","VN":"\u0dc0\u0dd2\u0dba\u0da7\u0dca\u0db1\u0dcf\u0db8\u0dba","VE":"\u0dc0\u0dd9\u0db1\u0dd2\u0dc3\u0dd2\u0dba\u0dd4\u0dbd\u0dcf\u0dc0","KN":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0d9a\u0dd2\u0da7\u0dca\u0dc3\u0dca \u0dc3\u0dc4 \u0db1\u0dda\u0dc0\u0dd2\u0dc3\u0dca","PM":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0db4\u0dd2\u0dba\u0dbb\u0dda \u0dc3\u0dc4 \u0db8\u0dd0\u0d9a\u0ddd\u0dbd\u0db1\u0dca","BL":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0db6\u0dbb\u0dca\u0dad\u0dbd\u0dd9\u0db8\u0dd2","MF":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0db8\u0dcf\u0dbb\u0dca\u0da7\u0dd2\u0db1\u0dca","SX":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0db8\u0dcf\u0dbb\u0dca\u0da7\u0dd9\u0db1\u0dca","LC":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0dbd\u0dd4\u0dc3\u0dd2\u0dba\u0dcf","VC":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0dc0\u0dd2\u0db1\u0dca\u0dc3\u0db1\u0dca\u0da7\u0dca \u0dc3\u0dc4 \u0d9c\u0dca\u200d\u0dbb\u0dd9\u0db1\u0da9\u0dd2\u0db1\u0dca\u0dc3\u0dca","SH":"\u0dc1\u0dcf\u0db1\u0dca\u0dad \u0dc4\u0dd9\u0dbd\u0dda\u0db1\u0dcf","LK":"\u0dc1\u0dca\u200d\u0dbb\u0dd3 \u0dbd\u0d82\u0d9a\u0dcf\u0dc0","GQ":"\u0dc3\u0db8\u0d9a \u0d9c\u0dd2\u0db1\u0dd2\u0dba\u0dcf\u0dc0","CY":"\u0dc3\u0dba\u0dd2\u0db4\u0dca\u200d\u0dbb\u0dc3\u0dba","RS":"\u0dc3\u0dbb\u0dca\u0db6\u0dd2\u0dba\u0dcf\u0dc0","ST":"\u0dc3\u0dcf\u0d95 \u0dad\u0ddd\u0db8\u0dca \u0dc3\u0dc4 \u0db4\u0dca\u200d\u0dbb\u0dd2\u0db1\u0dca\u0dc3\u0dd2\u0db4\u0dca","SM":"\u0dc3\u0dd0\u0db1\u0dca \u0db8\u0dd0\u0dbb\u0dd2\u0db1\u0ddd","WS":"\u0dc3\u0dd0\u0db8\u0ddd\u0dc0\u0dcf","ZM":"\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dd2\u0dba\u0dcf\u0dc0","SG":"\u0dc3\u0dd2\u0d82\u0d9c\u0db4\u0dca\u0db4\u0dd6\u0dbb\u0dd4\u0dc0","ZW":"\u0dc3\u0dd2\u0db8\u0dca\u0db6\u0dcf\u0db6\u0dca\u0dc0\u0dda","SL":"\u0dc3\u0dd2\u0dba\u0dbb\u0dcf\u0dbd\u0dd2\u0dba\u0ddd\u0db1\u0dca","SY":"\u0dc3\u0dd2\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","SC":"\u0dc3\u0dd3\u0dc1\u0dd9\u0dbd\u0dca\u0dc3\u0dca","SR":"\u0dc3\u0dd4\u0dbb\u0dd2\u0db1\u0dcf\u0db8\u0dba","SD":"\u0dc3\u0dd6\u0da9\u0dcf\u0db1\u0dba","SN":"\u0dc3\u0dd9\u0db1\u0d9c\u0dcf\u0dbd\u0dba","SB":"\u0dc3\u0ddc\u0dbd\u0db8\u0db1\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","SO":"\u0dc3\u0ddd\u0db8\u0dcf\u0dbd\u0dd2\u0dba\u0dcf\u0dc0","SA":"\u0dc3\u0dde\u0daf\u0dd2 \u0d85\u0dbb\u0dcf\u0db6\u0dd2\u0dba","ES":"\u0dc3\u0dca\u0db4\u0dcf\u0da4\u0dca\u0da4\u0dba","SK":"\u0dc3\u0dca\u0dbd\u0ddd\u0dc0\u0dd0\u0d9a\u0dd2\u0dba\u0dcf\u0dc0","SI":"\u0dc3\u0dca\u0dbd\u0ddd\u0dc0\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0dc0","CH":"\u0dc3\u0dca\u0dc0\u0dd2\u0dc3\u0dca\u0da7\u0dbb\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","SE":"\u0dc3\u0dca\u0dc0\u0dd3\u0da9\u0db1\u0dba","SJ":"\u0dc3\u0dca\u0dc0\u0dd9\u0dbd\u0dca\u0db6\u0dbb\u0dca\u0da9\u0dca \u0dc3\u0dc4 \u0da2\u0dda\u0db1\u0dca \u0db8\u0dba\u0dda\u0db1\u0dca","HU":"\u0dc4\u0db1\u0dca\u0d9c\u0dda\u0dbb\u0dd2\u0dba\u0dcf\u0dc0","HT":"\u0dc4\u0dba\u0dd2\u0da7\u0dd2","HM":"\u0dc4\u0dbb\u0dca\u0da9\u0dca \u0daf\u0dd6\u0db4\u0dad \u0dc3\u0dc4 \u0db8\u0dd0\u0d9a\u0dca\u0da9\u0ddc\u0db1\u0dbd\u0dca\u0da9\u0dca \u0daf\u0dd6\u0db4\u0dad\u0dca","HK":"\u0dc4\u0ddc\u0d82\u0d9a\u0ddc\u0d82 \u0da0\u0dd3\u0db1 \u0dc0\u0dd2\u0dc1\u0dda\u0dc2 \u0db4\u0dbb\u0dd2\u0db4\u0dcf\u0dbd\u0db1 \u0d9a\u0dbd\u0dcf\u0db4\u0dba","HN":"\u0dc4\u0ddc\u0db1\u0dca\u0da9\u0dd4\u0dbb\u0dcf\u0dc3\u0dca","FO":"\u0dc6\u0dd0\u0dbb\u0ddd \u0daf\u0dd6\u0db4\u0dad\u0dca","FI":"\u0dc6\u0dd2\u0db1\u0dca\u0dbd\u0db1\u0dca\u0dad\u0dba","FJ":"\u0dc6\u0dd3\u0da2\u0dd3","FK":"\u0dc6\u0ddd\u0d9a\u0dca\u0dbd\u0db1\u0dca\u0dad \u0daf\u0dd6\u0db4\u0dad\u0dca"}
\ No newline at end of file
diff --git a/public/intl/language/am-ET.json b/public/intl/language/am-ET.json
new file mode 100644
index 00000000..0bed39c3
--- /dev/null
+++ b/public/intl/language/am-ET.json
@@ -0,0 +1 @@
+{"hu":"\u1200\u1295\u130b\u122a\u129b","haw":"\u1203\u12ca\u12eb\u129b","ha":"\u1203\u12cd\u1233\u129b","ht":"\u1203\u12ed\u1275\u129b","smj":"\u1209\u120c \u1233\u121a","lu":"\u1209\u1263 \u12ab\u1273\u1295\u130b","lua":"\u1209\u1263-\u1209\u120f","lt":"\u1209\u1274\u1295\u12eb\u1295\u129b","luo":"\u1209\u12a6","lb":"\u1209\u12ad\u12d8\u121d\u1260\u122d\u1308\u122d\u129b","luy":"\u1209\u12ea\u12eb","ln":"\u120a\u1295\u130b\u120b\u129b","la":"\u120b\u1272\u1295\u129b","lv":"\u120b\u1275\u126a\u12eb\u1295","lag":"\u120b\u1295\u130a","lkt":"\u120b\u12ae\u1273","lo":"\u120b\u12cd\u1235\u129b","sq":"\u120d\u1264\u1292\u129b","loz":"\u120e\u12da\u129b","hi":"\u1212\u1295\u12f1\u129b","tzm":"\u1218\u12ab\u12a8\u1208\u129b \u12a0\u1275\u120b\u1235 \u1273\u121b\u12da\u130d\u1275","zgh":"\u1218\u12f0\u1260\u129b \u12e8\u121e\u122e\u12ae \u1273\u121b\u12da\u130d\u1275","mua":"\u1219\u1295\u12f3\u1295\u130d","ml":"\u121b\u120b\u12eb\u120b\u121d\u129b","ms":"\u121b\u120b\u12ed\u129b","mg":"\u121b\u120b\u130b\u1235\u129b","mt":"\u121b\u120d\u1272\u1235\u129b","mr":"\u121b\u122b\u1272\u129b","mas":"\u121b\u1233\u12ed","mk":"\u121b\u1234\u12f6\u1295\u129b","jmc":"\u121b\u127b\u121c\u129b","gv":"\u121b\u1295\u12ad\u1235\u129b","mgh":"\u121b\u12a9\u12cb \u121c\u1276","kde":"\u121b\u12ae\u1295\u12f4","mi":"\u121b\u12ee\u122a\u129b","arn":"\u121b\u1351\u127c","mer":"\u121c\u1229","mgo":"\u121c\u1273","moh":"\u121e\u1203\u12cd\u12ad","ro_MD":"\u121e\u120d\u12f3\u126b\u12ca\u1293","mfe":"\u121e\u122a\u1232\u12e8\u129b","mn":"\u121e\u1295\u130e\u120b\u12ca\u129b","rn":"\u1229\u1295\u12f2\u129b","ru":"\u122b\u123d\u129b","rwk":"\u122d\u12cb","ro":"\u122e\u121b\u1292\u12eb\u1295","rm":"\u122e\u121b\u1295\u123d","rof":"\u122e\u121d\u1266","se":"\u1230\u121c\u1293\u12ca \u1233\u121a","nso":"\u1230\u121c\u1293\u12ca \u1236\u1276","nd":"\u1230\u121c\u1295 \u1295\u12f4\u1265\u120c","sr":"\u1230\u122d\u1262\u129b","so":"\u1231\u121b\u120d\u129b","su":"\u1231\u12f3\u1295\u129b","ii":"\u1232\u1279\u1295\u12ea\u129b","si":"\u1232\u1295\u1203\u120d\u129b","sd":"\u1232\u1295\u12f5\u1202\u129b","sid":"\u1232\u12f3\u121d\u129b","saq":"\u1233\u121d\u1261\u1229","sm":"\u1233\u121e\u12a0\u129b","sa":"\u1233\u1295\u1235\u12ad\u122a\u1275\u129b","sbp":"\u1233\u1295\u1309","sg":"\u1233\u1295\u130e\u129b","seh":"\u1234\u1293","sl":"\u1235\u120e\u126a\u129b","sk":"\u1235\u120e\u126b\u12ad\u129b","sms":"\u1235\u12ae\u120d\u1275 \u1233\u121a","sv":"\u1235\u12ca\u12f5\u1295\u129b","sw":"\u1235\u12cb\u1202\u120a\u129b","ss":"\u1235\u12cb\u1272\u129b","es":"\u1235\u1353\u1292\u123d","st":"\u1236\u12de\u129b","xog":"\u1236\u130b","ksb":"\u123b\u121d\u1263\u120b","sn":"\u123e\u1293\u129b","zh_Hans":"\u1240\u1208\u120d \u12eb\u1208 \u127b\u12ed\u1295\u129b","zxx":"\u124b\u1295\u124b\u12ca \u12ed\u12d8\u1275 \u12a0\u12ed\u12f0\u1208\u121d","bg":"\u1261\u120d\u130b\u122a\u129b","my":"\u1261\u122d\u121b\u129b","bi":"\u1262\u1235\u120b\u121d\u129b","zh_Hant":"\u1263\u1205\u120b\u12ca \u127b\u12ed\u1295\u129b","bm":"\u1263\u121d\u1263\u122d\u129b","ba":"\u1263\u1235\u12aa\u122d\u129b","eu":"\u1263\u1235\u12ad\u129b","ksf":"\u1263\u134a\u12eb","be":"\u1264\u120b\u122b\u123b\u129b","bem":"\u1264\u121d\u1263","bez":"\u1264\u1293","bn":"\u1264\u1295\u130b\u120a\u129b","byn":"\u1265\u120a\u1295","br":"\u1265\u122c\u1276\u1295\u129b","bs":"\u1266\u1235\u1292\u12eb\u1295\u129b","brx":"\u1266\u12f6","vun":"\u1269\u1295\u1306","vi":"\u126a\u1275\u1293\u121d\u129b","vai":"\u126b\u12ed","ve":"\u126c\u1295\u12f3","vo":"\u126e\u120b\u1351\u12ad\u129b","te":"\u1270\u1209\u1309\u129b","tum":"\u1271\u121d\u1261\u12ab","tk":"\u1271\u122d\u12ad\u1218\u1295\u129b","tr":"\u1271\u122d\u12ad\u129b","bo":"\u1272\u1264\u1273\u1295\u129b","ty":"\u1273\u1202\u1273\u1295\u129b","ta":"\u1273\u121a\u120d\u129b","twq":"\u1273\u1233\u12cb\u1245","tt":"\u1273\u1273\u122d\u129b","shi":"\u1273\u127c\u120d\u1202\u1275","dav":"\u1273\u12ed\u1273\u129b","th":"\u1273\u12ed\u129b","tg":"\u1273\u1302\u12aa\u129b","tl":"\u1273\u130b\u120e\u1308\u129b","teo":"\u1274\u1236","tet":"\u1274\u1270\u121d","tw":"\u1275\u12ca\u129b","tig":"\u1275\u130d\u1228","ti":"\u1275\u130d\u122d\u129b","to":"\u1276\u1295\u130b\u129b","tpi":"\u1276\u12ad \u1352\u1232\u1295","cgg":"\u127a\u130b\u129b","zh":"\u127b\u12ed\u1295\u129b","chr":"\u127c\u122e\u12ac\u129b","cs":"\u127c\u12ad\u129b","nus":"\u1291\u12cc\u122d","nyn":"\u1292\u12eb\u1295\u12ae\u120d\u129b","naq":"\u1293\u121b","na":"\u1293\u12a1\u1229","ne":"\u1294\u1353\u120a\u129b","nqo":"\u1295\u12ae","ny":"\u1295\u12eb\u1295\u1303","jgo":"\u1295\u130e\u1263\u129b","no":"\u1296\u122d\u12cc\u1302\u12eb\u1295","am":"\u12a0\u121b\u122d\u129b","hy":"\u12a0\u122d\u1218\u1293\u12ca","asa":"\u12a0\u1231","as":"\u12a0\u1233\u121c\u12db\u12ca","ab":"\u12a0\u1265\u1210\u12da\u129b","ak":"\u12a0\u12ab\u1295\u129b","ach":"\u12a0\u12ae\u120a\u129b","az":"\u12a0\u12d8\u122d\u1263\u1303\u1295\u129b","ay":"\u12a0\u12eb\u121b\u122d\u129b","ga":"\u12a0\u12ed\u122a\u123d","is":"\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b","agq":"\u12a0\u1308\u121d","aa":"\u12a0\u134b\u122d\u129b","af":"\u12a0\u134d\u122a\u12ab\u1295\u129b","ur":"\u12a1\u122d\u12f1\u129b","ug":"\u12a1\u12ca\u130d\u1201\u122d\u129b","uz":"\u12a1\u12dd\u1264\u12ad\u129b","et":"\u12a2\u1235\u1276\u1292\u12eb\u1295\u129b","ebu":"\u12a2\u1266\u129b","smn":"\u12a2\u1293\u122a \u1233\u121a","ia":"\u12a2\u1295\u1274\u122d\u120a\u1295\u1313","id":"\u12a2\u1295\u12f6\u1294\u12e5\u129b","ee":"\u12a2\u12ca","ig":"\u12a2\u130d\u1266\u129b","eo":"\u12a4\u1235\u1350\u122b\u1295\u1276","efi":"\u12a4\u134a\u12ad","gd":"\u12a5\u1235\u12ae\u1275\u1235 \u130c\u120d\u12ad\u129b","iu":"\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b","ik":"\u12a5\u1291\u1352\u12eb\u1245\u129b","ie":"\u12a5\u1295\u1270\u122d\u120a\u1295\u130d\u12c8","en":"\u12a5\u1295\u130d\u120a\u12dd\u129b","or":"\u12a6\u122a\u12eb\u129b","om":"\u12a6\u122e\u121e\u129b","os":"\u12a6\u1234\u1272\u12ad","oc":"\u12a6\u12aa\u1273\u1295\u129b","ku":"\u12a9\u122d\u12f5\u123d\u129b","ky":"\u12aa\u122d\u130a\u12dd\u129b","quc":"\u12aa\u127c","rw":"\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b","ki":"\u12aa\u12a9\u12e9","kln":"\u12ab\u1208\u1295\u1302\u1295","kl":"\u12ab\u120b\u120a\u1231\u1275\u129b","kam":"\u12ab\u121d\u1263","ks":"\u12ab\u123d\u121a\u122d\u129b","kea":"\u12ab\u1261\u1268\u122d\u12f2\u12eb\u1291","kab":"\u12ab\u1265\u12ed\u120d","ca":"\u12ab\u1273\u120b\u1295\u129b","kn":"\u12ab\u1293\u12f3\u129b","kk":"\u12ab\u12db\u12ad\u129b","tlh":"\u12ad\u120a\u1295\u130e\u1295\u129b","km":"\u12ad\u1218\u122d\u129b \u121b\u12a5\u12a8\u120b\u12ca","hr":"\u12ad\u122e\u123d\u12eb\u1295\u129b","nmg":"\u12ad\u12cb\u1232\u12ee","koi":"\u12ae\u121a \u1354\u122d\u121d\u12eb\u12ad","ko":"\u12ae\u122a\u12eb\u129b","co":"\u12ae\u122d\u1232\u12ab\u129b","kw":"\u12ae\u122d\u1292\u123d","swc":"\u12ae\u1295\u130e \u1235\u12cb\u1202\u120a","kg":"\u12ae\u1295\u130e\u129b","kok":"\u12ae\u12ab\u1292","khq":"\u12ae\u12ed\u122b \u127a\u1292","ses":"\u12ae\u12ed\u122b\u1266\u122e \u1234\u1292","qu":"\u12b5\u127f\u129b","cy":"\u12c8\u120d\u123d","wo":"\u12ce\u120e\u134d\u129b","ar":"\u12d3\u1228\u1265\u129b","he":"\u12d5\u1265\u122b\u1235\u1325","ar_001":"\u12d8\u1218\u1293\u12ca \u1218\u12f0\u1260\u129b \u12d3\u1228\u1265\u129b","zu":"\u12d9\u1209\u129b","dje":"\u12db\u122d\u121b\u129b","xh":"\u12de\u1233\u129b","za":"\u12e1\u12cb\u1295\u130d\u129b","es_419":"\u12e8\u120b\u1272\u1295 \u12a0\u121c\u122a\u12ab \u1235\u1353\u1292\u123d","hsb":"\u12e8\u120b\u12ed\u129b\u12cd \u1236\u122d\u1262\u12eb\u1295\u129b","fy":"\u12e8\u121d\u12d5\u122b\u1265 \u134d\u122a\u1235\u129b","de_CH":"\u12e8\u1235\u12ca\u12dd \u12a8\u134d\u1270\u129b \u1300\u122d\u1218\u1295\u129b","gsw":"\u12e8\u1235\u12ca\u12dd \u1300\u122d\u1218\u1295","fr_CH":"\u12e8\u1235\u12ca\u12dd \u1348\u1228\u1295\u1233\u12ed\u129b","ckb":"\u12e8\u1236\u122b\u1292 \u12a9\u122d\u12f5\u129b","en_GB":"\u12e8\u1265\u122a\u1272\u123d \u12a5\u1295\u130d\u120a\u12dd\u129b","pt_BR":"\u12e8\u1265\u122b\u12da\u120d \u1356\u122d\u1279\u130b\u120d\u129b","dsb":"\u12e8\u1273\u127d\u129b\u12cd \u1236\u122d\u1262\u12eb\u1295\u129b","nb":"\u12e8\u1296\u122d\u12cc\u12ed \u1266\u12ad\u121b\u120d","nn":"\u12e8\u1296\u122d\u12cc\u12ed \u1293\u12ed\u1296\u122d\u1235\u12ad","en_US":"\u12e8\u12a0\u121c\u122a\u12ab \u12a5\u1295\u130d\u120a\u12dd\u129b","es_ES":"\u12e8\u12a0\u12cd\u122e\u1353 \u12a5\u1235\u1353\u1295\u129b","pt_PT":"\u12e8\u12a0\u12cd\u122e\u1353 \u1356\u122d\u1279\u130b\u120d\u129b","en_AU":"\u12e8\u12a0\u12cd\u1235\u1275\u122b\u120a\u12eb \u12a5\u1295\u130d\u120a\u12dd\u129b","de_AT":"\u12e8\u12a6\u1235\u1275\u122a\u12eb \u1300\u122d\u1218\u1295","en_CA":"\u12e8\u12ab\u1293\u12f3 \u12a5\u1295\u130d\u120a\u12dd\u129b","fr_CA":"\u12e8\u12ab\u1293\u12f3 \u1348\u1228\u1295\u1233\u12ed\u129b","uk":"\u12e9\u12ad\u122c\u1295\u129b","und":"\u12eb\u120d\u1273\u12c8\u1240 \u124b\u1295\u124b","yi":"\u12ed\u12f2\u123d\u129b","yo":"\u12ee\u1229\u1263\u12ca\u129b","sma":"\u12f0\u1261\u1263\u12ca \u1233\u121a","nl":"\u12f0\u127d","dua":"\u12f1\u12cb\u120b\u129b","dv":"\u12f2\u126c\u1205","da":"\u12f4\u1292\u123d","dz":"\u12f5\u12de\u1295\u130d\u12bb\u129b","de":"\u1300\u122d\u1218\u1295","jv":"\u1303\u126b\u1295\u129b","ja":"\u1303\u1353\u1295\u129b","dyo":"\u1306\u120b \u134e\u1295\u12eb\u129b","ka":"\u1306\u122d\u1302\u12eb\u1295","guz":"\u1309\u1235\u120a\u129b","gu":"\u1309\u1303\u122d\u1272\u129b","gaa":"\u130b","gl":"\u130b\u120a\u123a\u12eb","lg":"\u130b\u1295\u12f3\u129b","gag":"\u130b\u1309\u12dd\u129b","el":"\u130d\u122a\u12ad\u129b","gez":"\u130d\u12d5\u12dd\u129b","gn":"\u1313\u122b\u1292\u129b","it":"\u1323\u120a\u12eb\u1295\u129b","tn":"\u133d\u12cb\u1293\u12ca\u129b","ts":"\u133e\u1295\u130b\u129b","fr":"\u1348\u1228\u1295\u1233\u12ed\u129b","fil":"\u134a\u120a\u1352\u1295\u129b","fi":"\u134a\u1292\u123d","fj":"\u134a\u1302\u129b","fo":"\u134b\u122e\u129b","nl_BE":"\u134d\u120c\u121a\u123d","fa":"\u1350\u122d\u123a\u12eb\u129b","pa":"\u1351\u1295\u1303\u1265\u129b","ps":"\u1353\u123d\u1276\u129b","pl":"\u1356\u120a\u123d\u129b","pt":"\u1356\u122d\u1279\u130b\u120d\u129b","ace":"Achinese","ada":"Adangme","ady":"Adyghe","afh":"Afrihili","ain":"Ainu","akk":"Akkadian","bss":"Akoose","akz":"Alabama","ale":"Aleut","arq":"Algerian Arabic","ase":"American Sign Language","egy":"Ancient Egyptian","grc":"Ancient Greek","anp":"Angika","njo":"Ao Naga","an":"Aragonese","arc":"Aramaic","aro":"Araona","arp":"Arapaho","arw":"Arawak","rup":"Aromanian","frp":"Arpitan","ast":"Asturian","cch":"Atsam","av":"Avaric","ae":"Avestan","awa":"Awadhi","bfq":"Badaga","bfd":"Bafut","bqi":"Bakhtiari","ban":"Balinese","bal":"Baluchi","bax":"Bamun","bjn":"Banjar","bas":"Basaa","bbc":"Batak Toba","bar":"Bavarian","bej":"Beja","bew":"Betawi","bho":"Bhojpuri","bik":"Bikol","bin":"Bini","bpy":"Bishnupriya","zbl":"Blissymbols","brh":"Brahui","bra":"Braj","bug":"Buginese","bum":"Bulu","bua":"Buriat","cad":"Caddo","frc":"Cajun French","yue":"Cantonese","cps":"Capiznon","car":"Carib","cay":"Cayuga","ceb":"Cebuano","dtp":"Central Dusun","esu":"Central Yupik","shu":"Chadian Arabic","chg":"Chagatai","ch":"Chamorro","ce":"Chechen","chy":"Cheyenne","chb":"Chibcha","qug":"Chimborazo Highland Quichua","chn":"Chinook Jargon","chp":"Chipewyan","cho":"Choctaw","cu":"Church Slavic","chk":"Chuukese","cv":"Chuvash","nwc":"Classical Newari","syc":"Classical Syriac","ksh":"Colognian","swb":"Comorian","cop":"Coptic","cr":"Cree","mus":"Creek","crh":"Crimean Turkish","dak":"Dakota","dar":"Dargwa","dzg":"Dazaga","del":"Delaware","din":"Dinka","doi":"Dogri","dgr":"Dogrib","dyu":"Dyula","frs":"Eastern Frisian","arz":"Egyptian Arabic","eka":"Ekajuk","elx":"Elamite","egl":"Emilian","myv":"Erzya","ewo":"Ewondo","ext":"Extremaduran","fan":"Fang","fat":"Fanti","hif":"Fiji Hindi","fon":"Fon","gur":"Frafra","fur":"Friulian","ff":"Fulah","gan":"Gan Chinese","gay":"Gayo","gba":"Gbaya","aln":"Gheg Albanian","bbj":"Ghomala","glk":"Gilaki","gil":"Gilbertese","gom":"Goan Konkani","gon":"Gondi","gor":"Gorontalo","got":"Gothic","grb":"Grebo","gwi":"Gwich\u02bcin","hai":"Haida","hak":"Hakka Chinese","hz":"Herero","hil":"Hiligaynon","ho":"Hiri Motu","hit":"Hittite","hmn":"Hmong","hup":"Hupa","iba":"Iban","ibb":"Ibibio","io":"Ido","ilo":"Iloko","izh":"Ingrian","inh":"Ingush","jam":"Jamaican Creole English","kaj":"Jju","jrb":"Judeo-Arabic","jpr":"Judeo-Persian","jut":"Jutish","kbd":"Kabardian","kac":"Kachin","kgp":"Kaingang","kkj":"Kako","xal":"Kalmyk","kbl":"Kanembu","kr":"Kanuri","kaa":"Kara-Kalpak","krc":"Karachay-Balkar","krl":"Karelian","csb":"Kashubian","kaw":"Kawi","ken":"Kenyang","kha":"Khasi","kho":"Khotanese","khw":"Khowar","kmb":"Kimbundu","krj":"Kinaray-a","kiu":"Kirmanjki","bkm":"Kom","kv":"Komi","kfo":"Koro","kos":"Kosraean","avk":"Kotava","kpe":"Kpelle","kri":"Krio","kj":"Kuanyama","kum":"Kumyk","kru":"Kurukh","kut":"Kutenai","lad":"Ladino","lah":"Lahnda","lam":"Lamba","ltg":"Latgalian","lzz":"Laz","lez":"Lezghian","lij":"Ligurian","li":"Limburgish","lfn":"Lingua Franca Nova","lzh":"Literary Chinese","liv":"Livonian","jbo":"Lojban","lmo":"Lombard","nds":"Low German","sli":"Lower Silesian","lui":"Luiseno","lun":"Lunda","mde":"Maba","mad":"Madurese","maf":"Mafa","mag":"Magahi","vmf":"Main-Franconian","mai":"Maithili","mak":"Makasar","mnc":"Manchu","mdr":"Mandar","man":"Mandingo","mni":"Manipuri","chm":"Mari","mh":"Marshallese","mwr":"Marwari","mzn":"Mazanderani","byv":"Medumba","men":"Mende","mwv":"Mentawai","es_MX":"Mexican Spanish","mic":"Micmac","dum":"Middle Dutch","enm":"Middle English","frm":"Middle French","gmh":"Middle High German","mga":"Middle Irish","nan":"Min Nan Chinese","min":"Minangkabau","xmf":"Mingrelian","mwl":"Mirandese","lus":"Mizo","mdf":"Moksha","lol":"Mongo","ary":"Moroccan Arabic","mos":"Mossi","mul":"Multiple Languages","ttt":"Muslim Tat","mye":"Myene","nv":"Navajo","ng":"Ndonga","nap":"Neapolitan","new":"Newari","sba":"Ngambay","nnh":"Ngiemboon","yrl":"Nheengatu","nia":"Nias","niu":"Niuean","nog":"Nogai","frr":"Northern Frisian","nov":"Novial","nym":"Nyamwezi","tog":"Nyasa Tonga","nyo":"Nyoro","nzi":"Nzima","oj":"Ojibwa","ang":"Old English","fro":"Old French","goh":"Old High German","sga":"Old Irish","non":"Old Norse","peo":"Old Persian","pro":"Old Proven\u00e7al","osa":"Osage","ota":"Ottoman Turkish","pal":"Pahlavi","pfl":"Palatine German","pau":"Palauan","pi":"Pali","pam":"Pampanga","pag":"Pangasinan","pap":"Papiamento","pdc":"Pennsylvania German","phn":"Phoenician","pcd":"Picard","pms":"Piedmontese","pdt":"Plautdietsch","pon":"Pohnpeian","pnt":"Pontic","prg":"Prussian","raj":"Rajasthani","rap":"Rapanui","rar":"Rarotongan","rif":"Riffian","rgn":"Romagnol","rom":"Romany","root":"Root","rtm":"Rotuman","rug":"Roviana","rue":"Rusyn","ssy":"Saho","sah":"Sakha","sam":"Samaritan Aramaic","sgs":"Samogitian","sad":"Sandawe","sat":"Santali","sc":"Sardinian","sas":"Sasak","sdc":"Sassarese Sardinian","stq":"Saterland Frisian","saz":"Saurashtra","sco":"Scots","sly":"Selayar","sel":"Selkup","see":"Seneca","sh":"Serbo-Croatian","srr":"Serer","sei":"Seri","shn":"Shan","scn":"Sicilian","bla":"Siksika","szl":"Silesian","den":"Slave","sog":"Sogdien","snk":"Soninke","azb":"South Azerbaijani","nr":"South Ndebele","alt":"Southern Altai","srn":"Sranan Tongo","suk":"Sukuma","sux":"Sumerian","sus":"Susu","syr":"Syriac","tly":"Talysh","tmh":"Tamashek","trv":"Taroko","ter":"Tereno","tem":"Timne","tiv":"Tiv","tli":"Tlingit","tkl":"Tokelau","fit":"Tornedalen Finnish","tkr":"Tsakhur","tsd":"Tsakonian","tsi":"Tsimshian","tcy":"Tulu","aeb":"Tunisian Arabic","tru":"Turoyo","tvl":"Tuvalu","tyv":"Tuvinian","kcg":"Tyap","udm":"Udmurt","uga":"Ugaritic","umb":"Umbundu","vec":"Venetian","vep":"Veps","vro":"V\u00f5ro","vot":"Votic","wa":"Walloon","wae":"Walser","war":"Waray","wbp":"Warlpiri","was":"Washo","guc":"Wayuu","vls":"West Flemish","mrj":"Western Mari","wal":"Wolaytta","wuu":"Wu Chinese","hsn":"Xiang Chinese","yav":"Yangben","yao":"Yao","yap":"Yapese","ybb":"Yemba","zap":"Zapotec","zza":"Zaza","zea":"Zeelandic","zen":"Zenaga","gbz":"Zoroastrian Dari","zun":"Zuni"}
\ No newline at end of file
diff --git a/public/intl/language/si-LK.json b/public/intl/language/si-LK.json
new file mode 100644
index 00000000..79ac4000
--- /dev/null
+++ b/public/intl/language/si-LK.json
@@ -0,0 +1 @@
+{"ak":"\u0d85\u0d9a\u0dcf\u0db1\u0dca","af":"\u0d85\u0db4\u0dca\u200d\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4","ga":"\u0d85\u0dba\u0dbb\u0dca\u0dbd\u0db1\u0dca\u0dad","is":"\u0d85\u0dba\u0dd2\u0dc3\u0dca\u0dbd\u0db1\u0dca\u0dad","ar":"\u0d85\u0dbb\u0dcf\u0db6\u0dd2","az":"\u0d85\u0dc3\u0dbb\u0dca\u0db6\u0dba\u0dd2\u0da2\u0dcf\u0db1\u0dca","asa":"\u0d85\u0dc3\u0dd4","hy":"\u0d86\u0dbb\u0dca\u0db8\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","agq":"\u0d87\u0d9c\u0db8\u0dca","ab":"\u0d87\u0db6\u0dca\u0d9a\u0dcf\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","en_US":"\u0d87\u0db8\u0dd9\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0d89\u0d82\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2","am":"\u0d87\u0db8\u0dca\u0dc4\u0dcf\u0dbb\u0dd2\u0d9a\u0dca","sq":"\u0d87\u0dbd\u0dca\u0db6\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","as":"\u0d87\u0dc3\u0db8\u0dd2\u0dba\u0dcf\u0db1\u0dd4","en":"\u0d89\u0d82\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2","ig":"\u0d89\u0d9c\u0dca\u0db6\u0ddd","it":"\u0d89\u0dad\u0dcf\u0dbd\u0dd2","smn":"\u0d89\u0db1\u0dcf\u0dbb\u0dd2 \u0dc3\u0dcf\u0db8\u0dd2","iu":"\u0d89\u0db1\u0dd4\u0d9a\u0dca\u0da7\u0dd2\u0da7\u0dd4\u0da7\u0dca","id":"\u0d89\u0db1\u0dca\u0daf\u0dd4\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ee":"\u0d89\u0dc0\u0dca","hsb":"\u0d89\u0dc4\u0dc5 \u0dc3\u0ddd\u0db6\u0dd2\u0dba\u0dcf\u0db1\u0dd4","nd":"\u0d8b\u0dad\u0dd4\u0dbb\u0dd4 \u0d91\u0db1\u0dca\u0da9\u0dd2\u0db6\u0dd9\u0dbd\u0dd9","se":"\u0d8b\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dcf\u0db8\u0dd2","ug":"\u0d8b\u0dba\u0dd2\u0d9c\u0dbb\u0dca","ur":"\u0d8b\u0dbb\u0dca\u0daf\u0dd4","uz":"\u0d8b\u0dc3\u0dca\u0db6\u0dd9\u0d9a\u0dca","nqo":"\u0d91\u0db1\u0dca\u2018\u0d9a\u0ddd","ebu":"\u0d91\u0db8\u0dca\u0db6\u0dd4","et":"\u0d91\u0dc3\u0dca\u0dad\u0ddd\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","eo":"\u0d91\u0dc3\u0dca\u0db4\u0dd0\u0dbb\u0db1\u0dca\u0da7\u0ddd","or":"\u0d94\u0dbb\u0dd2\u0dba\u0dcf","om":"\u0d94\u0dbb\u0ddc\u0db8\u0ddd","de_AT":"\u0d94\u0dc3\u0dca\u0da7\u0dca\u200d\u0dbb\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0da2\u0dbb\u0dca\u0db8\u0db1\u0dca","en_AU":"\u0d95\u0dc3\u0dca\u0da7\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0d89\u0d82\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2","kn":"\u0d9a\u0dab\u0dca\u0dab\u0da9","kea":"\u0d9a\u0db6\u0dd4\u0dc0\u0dd9\u0dbb\u0dca\u0da9\u0dd2\u0dba\u0dcf\u0db1\u0ddd","km":"\u0d9a\u0db8\u0dbb\u0dca","kl":"\u0d9a\u0dbd\u0dcf\u0dbd\u0dd2\u0dc3\u0da7\u0dca","kln":"\u0d9a\u0dbd\u0dd9\u0db1\u0dca\u0da2\u0db1\u0dca","kk":"\u0d9a\u0dc3\u0dcf\u0d9b\u0dca","ks":"\u0d9a\u0dcf\u0dc2\u0dca\u0db8\u0dd3\u0dbb\u0dca","ca":"\u0d9a\u0dd0\u0da7\u0dbd\u0db1\u0dca","en_CA":"\u0d9a\u0dd0\u0db1\u0dda\u0da9\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0d89\u0d82\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2","fr_CA":"\u0d9a\u0dd0\u0db1\u0dda\u0da9\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1","kab":"\u0d9a\u0dd0\u0db6\u0dbd\u0dcf","kam":"\u0d9a\u0dd0\u0db8\u0dca\u0db6\u0dcf","ki":"\u0d9a\u0dd2\u0d9a\u0dd4\u0dba\u0dd4","rw":"\u0d9a\u0dd2\u0db1\u0dca\u0dba\u0dbb\u0dca\u0dc0\u0db1\u0dca\u0da9\u0dcf","quc":"\u0d9a\u0dd2\u0dba\u0dd2\u0da0\u0dda","ky":"\u0d9a\u0dd2\u0dbb\u0dca\u0d9c\u0dd2\u0dc3\u0dca","ku":"\u0d9a\u0dd4\u0dbb\u0dca\u0daf\u0dd2","nmg":"\u0d9a\u0dd4\u0dc0\u0dcf\u0dc3\u0dd2\u0d94","kok":"\u0d9a\u0ddc\u0db1\u0dca\u0d9a\u0db1\u0dd2","swc":"\u0d9a\u0ddc\u0db1\u0dca\u0d9c\u0ddd \u0dc3\u0dca\u0dc0\u0dcf\u0dc4\u0dd2\u0dbd\u0dd2","koi":"\u0d9a\u0ddc\u0db8\u0dd2-\u0db4\u0dbb\u0dca\u0db8\u0dd2\u0dba\u0dcf\u0d9a\u0dca","khq":"\u0d9a\u0ddc\u0dba\u0dd2\u0dbb\u0dcf \u0da0\u0dd2\u0db1\u0dd2","ko":"\u0d9a\u0ddc\u0dbb\u0dd2\u0dba\u0dcf\u0db1\u0dd4","kw":"\u0d9a\u0ddd\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ses":"\u0d9a\u0ddd\u0dba\u0dd2\u0dbb\u0dcf\u0db6\u0ddc\u0dbb\u0ddc \u0dc3\u0dd9\u0db1\u0dca\u0db1\u0dd2","co":"\u0d9a\u0dca\u200d\u0dbb\u0ddc\u0d91\u0dc1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","hr":"\u0d9a\u0dca\u200d\u0dbb\u0ddd\u0dba\u0dda\u0dc1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","qu":"\u0d9a\u0dca\u0dc0\u0dd3\u0da0\u0dd4\u0dc0\u0dcf","gag":"\u0d9c\u0d9c\u0dcf\u0dc3\u0dca","lg":"\u0d9c\u0db1\u0dca\u0da9\u0dcf","gl":"\u0d9c\u0dd0\u0dbd\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","gu":"\u0d9c\u0dd4\u0da2\u0dbb\u0dcf\u0da7\u0dd2","gn":"\u0d9c\u0dd4\u0dc0\u0dcf\u0dbb\u0db1\u0dd2","guz":"\u0d9c\u0dd4\u0dc3\u0dd3","el":"\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0d9a","cgg":"\u0da0\u0dd2\u0d9c\u0dcf","zh":"\u0da0\u0dd3\u0db1","cs":"\u0da0\u0dd9\u0dad\u0dca","chr":"\u0da0\u0dd9\u0dbb\u0ddc\u0d9a\u0dd3","pa":"\u0da2\u0db1\u0dca\u0da2\u0dcf\u0db6\u0dd2","ja":"\u0da2\u0db4\u0db1\u0dca","de":"\u0da2\u0dbb\u0dca\u0db8\u0db1\u0dca","jv":"\u0da2\u0dcf\u0dc0\u0dcf","dyo":"\u0da2\u0ddc\u0dbd-\u0dc6\u0ddd\u0db1\u0dd2\u0dba\u0dd2","ka":"\u0da2\u0ddd\u0dbb\u0dca\u0da2\u0dd2\u0dba\u0dcf\u0db1\u0dd4","shi":"\u0da7\u0da0\u0dda\u0dbd\u0dca\u0dc4\u0dd2\u0da7\u0dca","tg":"\u0da7\u0da2\u0dd2\u0d9a\u0dca","dav":"\u0da7\u0dba\u0dd2\u0da7\u0dcf","tk":"\u0da7\u0dbb\u0dca\u0d9a\u0dca\u0db8\u0dd9\u0db1\u0dca","twq":"\u0da7\u0dc3\u0dc0\u0dcf\u0d9a\u0dca","tt":"\u0da7\u0dcf\u0da7\u0dbb\u0dca","ti":"\u0da7\u0dd2\u0d9c\u0dca\u200d\u0dbb\u0dd2\u0db1\u0dca\u0dba\u0dcf","bo":"\u0da7\u0dd2\u0db6\u0dd9\u0da7\u0dca","aeb":"\u0da7\u0dd2\u0dba\u0dd4\u0db1\u0dd2\u0dc3\u0dd2\u0dba\u0db1\u0dd4 \u0d85\u0dbb\u0dcf\u0db6\u0dd2","teo":"\u0da7\u0dd9\u0dc3\u0ddd","to":"\u0da7\u0ddc\u0d82\u0d9c\u0dcf","da":"\u0da9\u0dd0\u0db1\u0dd2\u0dc1\u0dca","dz":"\u0da9\u0dd2\u0dc3\u0ddc\u0db1\u0dca\u0d9a\u0dcf","dua":"\u0da9\u0dd4\u0d86\u0dbd\u0dcf","th":"\u0dad\u0dcf\u0dba\u0dd2","tr":"\u0dad\u0dd4\u0dbb\u0dca\u0d9a\u0dd2","te":"\u0dad\u0dd9\u0dc5\u0dd2\u0d9f\u0dd4","sma":"\u0daf\u0d9a\u0dd4\u0dab\u0dd4 \u0dc3\u0dcf\u0db8\u0dd2","dv":"\u0daf\u0dd2\u0dc0\u0dd9\u0dc4\u0dd2","ta":"\u0daf\u0dd9\u0db8\u0dc5","nyn":"\u0db1\u0dba\u0db1\u0dca\u0d9a\u0ddc\u0dc5\u0dda","ar_001":"\u0db1\u0dc0\u0dd3\u0db1 \u0dc3\u0db8\u0dca\u0db8\u0dad \u0d85\u0dbb\u0dcf\u0db6\u0dd2","naq":"\u0db1\u0dcf\u0db8\u0dcf","ne":"\u0db1\u0dda\u0db4\u0dcf\u0dbd","und":"\u0db1\u0ddc\u0daf\u0db1\u0dca\u0db1\u0dcf \u0db7\u0dcf\u0dc2\u0dcf\u0dc0","jgo":"\u0db1\u0ddc\u0db8\u0dca\u0db6\u0dcf","nus":"\u0db1\u0ddc\u0dba\u0dbb\u0dca","nn":"\u0db1\u0ddc\u0dc0\u0dda\u0dbb\u0dca\u0da2\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0db1\u0dba\u0dd2\u0db1\u0ddd\u0dbb\u0dca\u0dc3\u0dca\u0d9a\u0dca","nb":"\u0db1\u0ddd\u0dc0\u0dda\u0da2\u0dd2\u0dba\u0dcf\u0db1\u0dd4 \u0db6\u0ddc\u0d9a\u0dca\u0db8\u0dcf\u0dbd\u0dca","fa":"\u0db4\u0dbb\u0dca\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ps":"\u0db4\u0dc2\u0dca\u0da7\u0ddc","dsb":"\u0db4\u0dc4\u0dc5 \u0dc3\u0ddd\u0db6\u0dd2\u0dba\u0dcf\u0db1\u0dd4","fil":"\u0db4\u0dd2\u0dbd\u0dd2\u0db4\u0dd3\u0db1","pt":"\u0db4\u0dd8\u0dad\u0dd4\u0d9c\u0dd3\u0dc3\u0dd2","pl":"\u0db4\u0ddd\u0dbd\u0db1\u0dca\u0dad","fr":"\u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1","fy":"\u0db6\u0da7\u0dc4\u0dd2\u0dbb \u0dc6\u0dca\u200d\u0dbb\u0dd2\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","bm":"\u0db6\u0db8\u0dca\u0db6\u0dbb\u0dcf","bg":"\u0db6\u0dbd\u0dca\u0d9c\u0dda\u0dbb\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ba":"\u0db6\u0dcf\u0dc2\u0dca\u0d9a\u0dd2\u0dbb\u0dca","ksf":"\u0db6\u0dcf\u0dc6\u0dd2\u0dba\u0dcf","my":"\u0db6\u0dd4\u0dbb\u0dd4\u0db8","bn":"\u0db6\u0dd9\u0d82\u0d9c\u0dcf\u0dbd\u0dd2","bez":"\u0db6\u0dd9\u0db1\u0dcf","bem":"\u0db6\u0dd9\u0db8\u0dca\u0db6\u0dcf","be":"\u0db6\u0dd9\u0dbd\u0dbb\u0dd4\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","brx":"\u0db6\u0ddc\u0da9\u0ddc","eu":"\u0db6\u0ddc\u0dc3\u0dca\u0d9a\u0ddd","bs":"\u0db6\u0ddc\u0dc3\u0dca\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","pt_BR":"\u0db6\u0dca\u200d\u0dbb\u0dc3\u0dd3\u0dbd \u0db4\u0dd8\u0dad\u0dd4\u0d9c\u0dd3\u0dc3\u0dd2","en_GB":"\u0db6\u0dca\u200d\u0dbb\u0dd2\u0dad\u0dcf\u0db1\u0dca\u200d\u0dba \u0d89\u0d82\u0d9c\u0dca\u200d\u0dbb\u0dd3\u0dc3\u0dd2","br":"\u0db6\u0dca\u200d\u0dbb\u0dda\u0da7\u0ddc\u0db1\u0dca","mgh":"\u0db8\u0d9b\u0dd4\u0dc0\u0dcf-\u0db8\u0dd3\u0da7\u0ddd","tzm":"\u0db8\u0db0\u0dca\u200d\u0dba\u0db8 \u0d87\u0da7\u0dca\u0dbd\u0dc3\u0dca \u0da7\u0db8\u0dc3\u0dd2\u0da7\u0dca","arn":"\u0db8\u0db4\u0dd4\u0da0\u0dd9","mr":"\u0db8\u0dbb\u0dcf\u0dad\u0dd2","mg":"\u0db8\u0dbd\u0d9c\u0dcf\u0dc3\u0dd2","ml":"\u0db8\u0dbd\u0dba\u0dcf\u0dbd\u0db8\u0dca","mas":"\u0db8\u0dc3\u0dcf\u0dba\u0dd2","mi":"\u0db8\u0dcf\u0dc0\u0ddc\u0dbb\u0dd2","jmc":"\u0db8\u0dd0\u0d9a\u0dcf\u0db8\u0dd3","kde":"\u0db8\u0dd0\u0d9a\u0ddc\u0db1\u0dca\u0da9\u0dca","gv":"\u0db8\u0dd0\u0db1\u0dca\u0d9a\u0dca\u0dc3\u0dca","ms":"\u0db8\u0dd0\u0dbd\u0dda","mk":"\u0db8\u0dd0\u0dc3\u0dd2\u0da9\u0ddd\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","mua":"\u0db8\u0dd4\u0db1\u0dca\u0da9\u0db1\u0dca","es_MX":"\u0db8\u0dd9\u0d9a\u0dca\u0dc3\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0dc3\u0dca\u0db4\u0dcf\u0da4\u0dca\u0da4","mgo":"\u0db8\u0dd9\u0da7\u0dcf","mer":"\u0db8\u0dd9\u0dbb\u0dd4","mn":"\u0db8\u0ddc\u0d82\u0d9c\u0ddd\u0dbd\u0dd2\u0dba\u0dcf\u0db1\u0dd4","mfe":"\u0db8\u0ddc\u0dbb\u0dd2\u0dc3\u0dca\u0dba\u0dd9\u0db8\u0dca","mt":"\u0db8\u0ddc\u0dbd\u0dca\u0da7\u0dd2\u0dc3\u0dca","moh":"\u0db8\u0ddc\u0dc4\u0ddc\u0dc0\u0dca\u0d9a\u0dca","uk":"\u0dba\u0dd4\u0d9a\u0dca\u0dbb\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","pt_PT":"\u0dba\u0dd4\u0dbb\u0ddd\u0db4\u0dd3\u0dba \u0db4\u0dd8\u0dad\u0dd4\u0d9c\u0dd3\u0dc3\u0dd2","es_ES":"\u0dba\u0dd4\u0dbb\u0ddd\u0db4\u0dd3\u0dba \u0dc3\u0dca\u0db4\u0dcf\u0da4\u0dca\u0da4","yo":"\u0dba\u0ddc\u0dbb\u0dd6\u0db6\u0dcf","rn":"\u0dbb\u0dd4\u0db1\u0dca\u0da9\u0dd2","ru":"\u0dbb\u0dd4\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","rm":"\u0dbb\u0ddc\u0db8\u0dd1\u0db1\u0dca\u0dc1\u0dca","ro":"\u0dbb\u0ddc\u0db8\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","rof":"\u0dbb\u0ddd\u0db8\u0dca\u0db6\u0ddd","rwk":"\u0dbb\u0dca\u0dc0\u0dcf","lag":"\u0dbd\u0d82\u0d9c\u0dd2","lkt":"\u0dbd\u0d9a\u0ddc\u0da7","lb":"\u0dbd\u0d9a\u0dca\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u0d9c\u0dca","la":"\u0dbd\u0dad\u0dd2\u0db1\u0dca","es_419":"\u0dbd\u0dad\u0dd2\u0db1\u0dca \u0d87\u0db8\u0dbb\u0dd2\u0d9a\u0dcf\u0db1\u0dd4 \u0dc3\u0dca\u0db4\u0dcf\u0da4\u0dca\u0da4","nl":"\u0dbd\u0db1\u0dca\u0daf\u0dda\u0dc3\u0dd2","lo":"\u0dbd\u0dcf\u0d95","lv":"\u0dbd\u0dd0\u0da7\u0dca\u0dc0\u0dd2\u0dba\u0dcf\u0db1\u0dd4","lt":"\u0dbd\u0dd2\u0dad\u0dd4\u0dc0\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ln":"\u0dbd\u0dd2\u0db1\u0dca\u0d9c\u0dbd\u0dcf","lu":"\u0dbd\u0dd4","luo":"\u0dbd\u0dd4\u0d94","luy":"\u0dbd\u0dd4\u0dba\u0dd2\u0dba\u0dcf","smj":"\u0dbd\u0dd4\u0dbd\u0dda \u0dc3\u0dcf\u0db8\u0dd2","vai":"\u0dc0\u0dba\u0dd2","zxx":"\u0dc0\u0dcf\u0d9c\u0dca \u0dc0\u0dd2\u0daf\u0dca\u200d\u0dba\u0dcf \u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0d9c\u0dad\u0dba\u0d9a\u0dca \u0db1\u0dd0\u0dad","vi":"\u0dc0\u0dd2\u0dba\u0da7\u0dca\u0db1\u0dcf\u0db8\u0dca","vun":"\u0dc0\u0dd4\u0db1\u0dca\u0da2\u0ddd","cy":"\u0dc0\u0dda\u0dbd\u0dca\u0dc3\u0dca","wo":"\u0dc0\u0ddc\u0dbd\u0ddc\u0dc6\u0dca","ksb":"\u0dc1\u0dcf\u0db8\u0dca\u0db6\u0dbd\u0dcf","sn":"\u0dc1\u0ddd\u0db1\u0dcf","xh":"\u0dc1\u0ddd\u0dc3\u0dcf","sbp":"\u0dc3\u0d82\u0d9c\u0dd4","sa":"\u0dc3\u0d82\u0dc3\u0dca\u0d9a\u0dd8\u0dad","sg":"\u0dc3\u0db1\u0dca\u0d9c\u0dca\u200d\u0dbb\u0ddd","su":"\u0dc3\u0db1\u0dca\u0da9\u0db1\u0dd3\u0dc3\u0dd2\u0dba\u0dcf\u0db1\u0dd4","saq":"\u0dc3\u0db8\u0dca\u0db6\u0dd4\u0dbb\u0dd4","zgh":"\u0dc3\u0db8\u0dca\u0db8\u0dad \u0db8\u0ddc\u0dbb\u0ddc\u0d9a\u0dca\u0d9a\u0ddd \u0da7\u0db8\u0dc3\u0dd2\u0d9c\u0dca\u0dad\u0dca","sr":"\u0dc3\u0dbb\u0dca\u0db6\u0dd2\u0dba\u0dcf\u0db1\u0dd4","zh_Hant":"\u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dca\u200d\u0dbb\u0daf\u0dcf\u0dba\u0dd2\u0d9a \u0da0\u0dd3\u0db1","si":"\u0dc3\u0dd2\u0d82\u0dc4\u0dbd","ii":"\u0dc3\u0dd2\u0da0\u0dd4\u0d86\u0db1\u0dca \u0dba\u0dd3","sd":"\u0dc3\u0dd2\u0db1\u0dca\u0db0\u0dd2","zu":"\u0dc3\u0dd4\u0dbd\u0dd4","zh_Hans":"\u0dc3\u0dd4\u0dc5\u0dd4\u0d9a\u0dc5 \u0da0\u0dd3\u0db1","seh":"\u0dc3\u0dd9\u0db1\u0dcf","xog":"\u0dc3\u0ddc\u0d9c\u0dcf","ckb":"\u0dc3\u0ddc\u0dbb\u0dcf\u0db1\u0dd2 \u0d9a\u0dd4\u0dbb\u0dca\u0daf\u0dd2\u0dc2\u0dca","so":"\u0dc3\u0ddd\u0db8\u0dcf\u0dbd\u0dd2","sms":"\u0dc3\u0dca\u0d9a\u0ddc\u0dbd\u0dca\u0da7\u0dca \u0dc3\u0dcf\u0db8\u0dd2","es":"\u0dc3\u0dca\u0db4\u0dcf\u0da4\u0dca\u0da4","sk":"\u0dc3\u0dca\u0dbd\u0ddd\u0dc0\u0dd0\u0d9a\u0dca","sl":"\u0dc3\u0dca\u0dbd\u0ddd\u0dc0\u0dda\u0db1\u0dd2\u0dba\u0dcf\u0db1\u0dd4","sw":"\u0dc3\u0dca\u0dc0\u0dcf\u0dc4\u0dd2\u0dbd\u0dd2","de_CH":"\u0dc3\u0dca\u0dc0\u0dd2\u0dc3\u0dca \u0d8b\u0dc3\u0dc3\u0dca \u0da2\u0dbb\u0dca\u0db8\u0db1\u0dca","gsw":"\u0dc3\u0dca\u0dc0\u0dd2\u0dc3\u0dca \u0da2\u0dbb\u0dca\u0db8\u0db1\u0dd2","fr_CH":"\u0dc3\u0dca\u0dc0\u0dd2\u0dc3\u0dca \u0db4\u0dca\u200d\u0dbb\u0d82\u0dc1","sv":"\u0dc3\u0dca\u0dc0\u0dd3\u0da9\u0db1\u0dca","hu":"\u0dc4\u0db1\u0dca\u0d9c\u0dda\u0dbb\u0dd2\u0dba\u0dcf\u0db1\u0dd4","ht":"\u0dc4\u0dba\u0dd2\u0da7\u0dd2","haw":"\u0dc4\u0dc0\u0dcf\u0dba\u0dd2","hi":"\u0dc4\u0dd2\u0db1\u0dca\u0daf\u0dd2","he":"\u0dc4\u0dd3\u0db6\u0df2","ha":"\u0dc4\u0ddd\u0dc3\u0dcf","dje":"\u0dc6\u0dbb\u0dca\u0db8\u0dcf","fo":"\u0dc6\u0dcf\u0dbb\u0ddd\u0dc3\u0dca","fi":"\u0dc6\u0dd2\u0db1\u0dca\u0dbd\u0db1\u0dca\u0dad","fj":"\u0dc6\u0dd3\u0da2\u0dd2","nl_BE":"\u0dc6\u0dca\u0dbd\u0dd9\u0db8\u0dd2\u0dc1\u0dca","ace":"Achinese","ach":"Acoli","ada":"Adangme","ady":"Adyghe","aa":"Afar","afh":"Afrihili","ain":"Ainu","akk":"Akkadian","bss":"Akoose","akz":"Alabama","ale":"Aleut","arq":"Algerian Arabic","ase":"American Sign Language","egy":"Ancient Egyptian","grc":"Ancient Greek","anp":"Angika","njo":"Ao Naga","an":"Aragonese","arc":"Aramaic","aro":"Araona","arp":"Arapaho","arw":"Arawak","rup":"Aromanian","frp":"Arpitan","ast":"Asturian","cch":"Atsam","av":"Avaric","ae":"Avestan","awa":"Awadhi","ay":"Aymara","bfq":"Badaga","bfd":"Bafut","bqi":"Bakhtiari","ban":"Balinese","bal":"Baluchi","bax":"Bamun","bjn":"Banjar","bas":"Basaa","bbc":"Batak Toba","bar":"Bavarian","bej":"Beja","bew":"Betawi","bho":"Bhojpuri","bik":"Bikol","bin":"Bini","bpy":"Bishnupriya","bi":"Bislama","byn":"Blin","zbl":"Blissymbols","brh":"Brahui","bra":"Braj","bug":"Buginese","bum":"Bulu","bua":"Buriat","cad":"Caddo","frc":"Cajun French","yue":"Cantonese","cps":"Capiznon","car":"Carib","cay":"Cayuga","ceb":"Cebuano","dtp":"Central Dusun","esu":"Central Yupik","shu":"Chadian Arabic","chg":"Chagatai","ch":"Chamorro","ce":"Chechen","chy":"Cheyenne","chb":"Chibcha","qug":"Chimborazo Highland Quichua","chn":"Chinook Jargon","chp":"Chipewyan","cho":"Choctaw","cu":"Church Slavic","chk":"Chuukese","cv":"Chuvash","nwc":"Classical Newari","syc":"Classical Syriac","ksh":"Colognian","swb":"Comorian","cop":"Coptic","cr":"Cree","mus":"Creek","crh":"Crimean Turkish","dak":"Dakota","dar":"Dargwa","dzg":"Dazaga","del":"Delaware","din":"Dinka","doi":"Dogri","dgr":"Dogrib","dyu":"Dyula","frs":"Eastern Frisian","efi":"Efik","arz":"Egyptian Arabic","eka":"Ekajuk","elx":"Elamite","egl":"Emilian","myv":"Erzya","ewo":"Ewondo","ext":"Extremaduran","fan":"Fang","fat":"Fanti","hif":"Fiji Hindi","fon":"Fon","gur":"Frafra","fur":"Friulian","ff":"Fulah","gaa":"Ga","gan":"Gan Chinese","gay":"Gayo","gba":"Gbaya","gez":"Geez","aln":"Gheg Albanian","bbj":"Ghomala","glk":"Gilaki","gil":"Gilbertese","gom":"Goan Konkani","gon":"Gondi","gor":"Gorontalo","got":"Gothic","grb":"Grebo","gwi":"Gwich\u02bcin","hai":"Haida","hak":"Hakka Chinese","hz":"Herero","hil":"Hiligaynon","ho":"Hiri Motu","hit":"Hittite","hmn":"Hmong","hup":"Hupa","iba":"Iban","ibb":"Ibibio","io":"Ido","ilo":"Iloko","izh":"Ingrian","inh":"Ingush","ia":"Interlingua","ie":"Interlingue","ik":"Inupiaq","jam":"Jamaican Creole English","kaj":"Jju","jrb":"Judeo-Arabic","jpr":"Judeo-Persian","jut":"Jutish","kbd":"Kabardian","kac":"Kachin","kgp":"Kaingang","kkj":"Kako","xal":"Kalmyk","kbl":"Kanembu","kr":"Kanuri","kaa":"Kara-Kalpak","krc":"Karachay-Balkar","krl":"Karelian","csb":"Kashubian","kaw":"Kawi","ken":"Kenyang","kha":"Khasi","kho":"Khotanese","khw":"Khowar","kmb":"Kimbundu","krj":"Kinaray-a","kiu":"Kirmanjki","tlh":"Klingon","bkm":"Kom","kv":"Komi","kg":"Kongo","kfo":"Koro","kos":"Kosraean","avk":"Kotava","kpe":"Kpelle","kri":"Krio","kj":"Kuanyama","kum":"Kumyk","kru":"Kurukh","kut":"Kutenai","lad":"Ladino","lah":"Lahnda","lam":"Lamba","ltg":"Latgalian","lzz":"Laz","lez":"Lezghian","lij":"Ligurian","li":"Limburgish","lfn":"Lingua Franca Nova","lzh":"Literary Chinese","liv":"Livonian","jbo":"Lojban","lmo":"Lombard","nds":"Low German","sli":"Lower Silesian","loz":"Lozi","lua":"Luba-Lulua","lui":"Luiseno","lun":"Lunda","mde":"Maba","mad":"Madurese","maf":"Mafa","mag":"Magahi","vmf":"Main-Franconian","mai":"Maithili","mak":"Makasar","mnc":"Manchu","mdr":"Mandar","man":"Mandingo","mni":"Manipuri","chm":"Mari","mh":"Marshallese","mwr":"Marwari","mzn":"Mazanderani","byv":"Medumba","men":"Mende","mwv":"Mentawai","mic":"Micmac","dum":"Middle Dutch","enm":"Middle English","frm":"Middle French","gmh":"Middle High German","mga":"Middle Irish","nan":"Min Nan Chinese","min":"Minangkabau","xmf":"Mingrelian","mwl":"Mirandese","lus":"Mizo","mdf":"Moksha","ro_MD":"Moldavian","lol":"Mongo","ary":"Moroccan Arabic","mos":"Mossi","mul":"Multiple Languages","ttt":"Muslim Tat","mye":"Myene","na":"Nauru","nv":"Navajo","ng":"Ndonga","nap":"Neapolitan","new":"Newari","sba":"Ngambay","nnh":"Ngiemboon","yrl":"Nheengatu","nia":"Nias","niu":"Niuean","nog":"Nogai","frr":"Northern Frisian","nso":"Northern Sotho","no":"Norwegian","nov":"Novial","nym":"Nyamwezi","ny":"Nyanja","tog":"Nyasa Tonga","nyo":"Nyoro","nzi":"Nzima","oc":"Occitan","oj":"Ojibwa","ang":"Old English","fro":"Old French","goh":"Old High German","sga":"Old Irish","non":"Old Norse","peo":"Old Persian","pro":"Old Proven\u00e7al","osa":"Osage","os":"Ossetic","ota":"Ottoman Turkish","pal":"Pahlavi","pfl":"Palatine German","pau":"Palauan","pi":"Pali","pam":"Pampanga","pag":"Pangasinan","pap":"Papiamento","pdc":"Pennsylvania German","phn":"Phoenician","pcd":"Picard","pms":"Piedmontese","pdt":"Plautdietsch","pon":"Pohnpeian","pnt":"Pontic","prg":"Prussian","raj":"Rajasthani","rap":"Rapanui","rar":"Rarotongan","rif":"Riffian","rgn":"Romagnol","rom":"Romany","root":"Root","rtm":"Rotuman","rug":"Roviana","rue":"Rusyn","ssy":"Saho","sah":"Sakha","sam":"Samaritan Aramaic","sm":"Samoan","sgs":"Samogitian","sad":"Sandawe","sat":"Santali","sc":"Sardinian","sas":"Sasak","sdc":"Sassarese Sardinian","stq":"Saterland Frisian","saz":"Saurashtra","sco":"Scots","gd":"Scottish Gaelic","sly":"Selayar","sel":"Selkup","see":"Seneca","sh":"Serbo-Croatian","srr":"Serer","sei":"Seri","shn":"Shan","scn":"Sicilian","sid":"Sidamo","bla":"Siksika","szl":"Silesian","den":"Slave","sog":"Sogdien","snk":"Soninke","azb":"South Azerbaijani","nr":"South Ndebele","alt":"Southern Altai","st":"Southern Sotho","srn":"Sranan Tongo","suk":"Sukuma","sux":"Sumerian","sus":"Susu","ss":"Swati","syr":"Syriac","tl":"Tagalog","ty":"Tahitian","tly":"Talysh","tmh":"Tamashek","trv":"Taroko","ter":"Tereno","tet":"Tetum","tig":"Tigre","tem":"Timne","tiv":"Tiv","tli":"Tlingit","tpi":"Tok Pisin","tkl":"Tokelau","fit":"Tornedalen Finnish","tkr":"Tsakhur","tsd":"Tsakonian","tsi":"Tsimshian","ts":"Tsonga","tn":"Tswana","tcy":"Tulu","tum":"Tumbuka","tru":"Turoyo","tvl":"Tuvalu","tyv":"Tuvinian","tw":"Twi","kcg":"Tyap","udm":"Udmurt","uga":"Ugaritic","umb":"Umbundu","ve":"Venda","vec":"Venetian","vep":"Veps","vo":"Volap\u00fck","vro":"V\u00f5ro","vot":"Votic","wa":"Walloon","wae":"Walser","war":"Waray","wbp":"Warlpiri","was":"Washo","guc":"Wayuu","vls":"West Flemish","mrj":"Western Mari","wal":"Wolaytta","wuu":"Wu Chinese","hsn":"Xiang Chinese","yav":"Yangben","yao":"Yao","yap":"Yapese","ybb":"Yemba","yi":"Yiddish","zap":"Zapotec","zza":"Zaza","zea":"Zeelandic","zen":"Zenaga","za":"Zhuang","gbz":"Zoroastrian Dari","zun":"Zuni"}
\ No newline at end of file
diff --git a/public/intl/messages/am-ET.json b/public/intl/messages/am-ET.json
new file mode 100644
index 00000000..d1ff296c
--- /dev/null
+++ b/public/intl/messages/am-ET.json
@@ -0,0 +1,854 @@
+{
+ "label.accounts": [
+ {
+ "type": 0,
+ "value": "Accounts"
+ }
+ ],
+ "label.add-account": [
+ {
+ "type": 0,
+ "value": "Add account"
+ }
+ ],
+ "label.add-column": [
+ {
+ "type": 0,
+ "value": "Add column"
+ }
+ ],
+ "label.add-filter": [
+ {
+ "type": 0,
+ "value": "Add filter"
+ }
+ ],
+ "label.add-website": [
+ {
+ "type": 0,
+ "value": "Add website"
+ }
+ ],
+ "label.administrator": [
+ {
+ "type": 0,
+ "value": "Administrator"
+ }
+ ],
+ "label.all": [
+ {
+ "type": 0,
+ "value": "All"
+ }
+ ],
+ "label.all-time": [
+ {
+ "type": 0,
+ "value": "All time"
+ }
+ ],
+ "label.all-websites": [
+ {
+ "type": 0,
+ "value": "All websites"
+ }
+ ],
+ "label.back": [
+ {
+ "type": 0,
+ "value": "Back"
+ }
+ ],
+ "label.cancel": [
+ {
+ "type": 0,
+ "value": "Cancel"
+ }
+ ],
+ "label.change-password": [
+ {
+ "type": 0,
+ "value": "Change password"
+ }
+ ],
+ "label.confirm-password": [
+ {
+ "type": 0,
+ "value": "Confirm password"
+ }
+ ],
+ "label.copy-to-clipboard": [
+ {
+ "type": 0,
+ "value": "Copy to clipboard"
+ }
+ ],
+ "label.current-password": [
+ {
+ "type": 0,
+ "value": "Current password"
+ }
+ ],
+ "label.custom-range": [
+ {
+ "type": 0,
+ "value": "Custom range"
+ }
+ ],
+ "label.dashboard": [
+ {
+ "type": 0,
+ "value": "Dashboard"
+ }
+ ],
+ "label.date-range": [
+ {
+ "type": 0,
+ "value": "Date range"
+ }
+ ],
+ "label.default-date-range": [
+ {
+ "type": 0,
+ "value": "Default date range"
+ }
+ ],
+ "label.delete": [
+ {
+ "type": 0,
+ "value": "Delete"
+ }
+ ],
+ "label.delete-account": [
+ {
+ "type": 0,
+ "value": "Delete account"
+ }
+ ],
+ "label.delete-website": [
+ {
+ "type": 0,
+ "value": "Delete website"
+ }
+ ],
+ "label.dismiss": [
+ {
+ "type": 0,
+ "value": "Dismiss"
+ }
+ ],
+ "label.domain": [
+ {
+ "type": 0,
+ "value": "Domain"
+ }
+ ],
+ "label.edit": [
+ {
+ "type": 0,
+ "value": "Edit"
+ }
+ ],
+ "label.edit-account": [
+ {
+ "type": 0,
+ "value": "Edit account"
+ }
+ ],
+ "label.edit-website": [
+ {
+ "type": 0,
+ "value": "Edit website"
+ }
+ ],
+ "label.enable-share-url": [
+ {
+ "type": 0,
+ "value": "Enable share URL"
+ }
+ ],
+ "label.event-data": [
+ {
+ "type": 0,
+ "value": "Event Data"
+ }
+ ],
+ "label.field-name": [
+ {
+ "type": 0,
+ "value": "Field Name"
+ }
+ ],
+ "label.invalid": [
+ {
+ "type": 0,
+ "value": "Invalid"
+ }
+ ],
+ "label.invalid-domain": [
+ {
+ "type": 0,
+ "value": "Invalid domain"
+ }
+ ],
+ "label.language": [
+ {
+ "type": 0,
+ "value": "Language"
+ }
+ ],
+ "label.last-days": [
+ {
+ "type": 0,
+ "value": "Last "
+ },
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " days"
+ }
+ ],
+ "label.last-hours": [
+ {
+ "type": 0,
+ "value": "Last "
+ },
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " hours"
+ }
+ ],
+ "label.logged-in-as": [
+ {
+ "type": 0,
+ "value": "Logged in as "
+ },
+ {
+ "type": 1,
+ "value": "username"
+ }
+ ],
+ "label.login": [
+ {
+ "type": 0,
+ "value": "Login"
+ }
+ ],
+ "label.logout": [
+ {
+ "type": 0,
+ "value": "Logout"
+ }
+ ],
+ "label.more": [
+ {
+ "type": 0,
+ "value": "More"
+ }
+ ],
+ "label.name": [
+ {
+ "type": 0,
+ "value": "Name"
+ }
+ ],
+ "label.new-password": [
+ {
+ "type": 0,
+ "value": "New password"
+ }
+ ],
+ "label.none": [
+ {
+ "type": 0,
+ "value": "None"
+ }
+ ],
+ "label.owner": [
+ {
+ "type": 0,
+ "value": "Owner"
+ }
+ ],
+ "label.password": [
+ {
+ "type": 0,
+ "value": "Password"
+ }
+ ],
+ "label.passwords-dont-match": [
+ {
+ "type": 0,
+ "value": "Passwords don't match"
+ }
+ ],
+ "label.profile": [
+ {
+ "type": 0,
+ "value": "Profile"
+ }
+ ],
+ "label.realtime": [
+ {
+ "type": 0,
+ "value": "Realtime"
+ }
+ ],
+ "label.realtime-logs": [
+ {
+ "type": 0,
+ "value": "Realtime logs"
+ }
+ ],
+ "label.refresh": [
+ {
+ "type": 0,
+ "value": "Refresh"
+ }
+ ],
+ "label.required": [
+ {
+ "type": 0,
+ "value": "Required"
+ }
+ ],
+ "label.reset": [
+ {
+ "type": 0,
+ "value": "Reset"
+ }
+ ],
+ "label.reset-website": [
+ {
+ "type": 0,
+ "value": "Reset statistics"
+ }
+ ],
+ "label.save": [
+ {
+ "type": 0,
+ "value": "Save"
+ }
+ ],
+ "label.search": [
+ {
+ "type": 0,
+ "value": "Search"
+ }
+ ],
+ "label.settings": [
+ {
+ "type": 0,
+ "value": "Settings"
+ }
+ ],
+ "label.share-url": [
+ {
+ "type": 0,
+ "value": "Share URL"
+ }
+ ],
+ "label.single-day": [
+ {
+ "type": 0,
+ "value": "Single day"
+ }
+ ],
+ "label.theme": [
+ {
+ "type": 0,
+ "value": "Theme"
+ }
+ ],
+ "label.this-month": [
+ {
+ "type": 0,
+ "value": "This month"
+ }
+ ],
+ "label.this-week": [
+ {
+ "type": 0,
+ "value": "This week"
+ }
+ ],
+ "label.this-year": [
+ {
+ "type": 0,
+ "value": "This year"
+ }
+ ],
+ "label.timezone": [
+ {
+ "type": 0,
+ "value": "Timezone"
+ }
+ ],
+ "label.today": [
+ {
+ "type": 0,
+ "value": "Today"
+ }
+ ],
+ "label.tracking-code": [
+ {
+ "type": 0,
+ "value": "Tracking code"
+ }
+ ],
+ "label.type": [
+ {
+ "type": 0,
+ "value": "Type"
+ }
+ ],
+ "label.unknown": [
+ {
+ "type": 0,
+ "value": "Unknown"
+ }
+ ],
+ "label.username": [
+ {
+ "type": 0,
+ "value": "Username"
+ }
+ ],
+ "label.value": [
+ {
+ "type": 0,
+ "value": "Value"
+ }
+ ],
+ "label.view-details": [
+ {
+ "type": 0,
+ "value": "View details"
+ }
+ ],
+ "label.websites": [
+ {
+ "type": 0,
+ "value": "Websites"
+ }
+ ],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Yesterday"
+ }
+ ],
+ "message.active-users": [
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " current "
+ },
+ {
+ "offset": 0,
+ "options": {
+ "one": {
+ "value": [
+ {
+ "type": 0,
+ "value": "visitor"
+ }
+ ]
+ },
+ "other": {
+ "value": [
+ {
+ "type": 0,
+ "value": "visitors"
+ }
+ ]
+ }
+ },
+ "pluralType": "cardinal",
+ "type": 6,
+ "value": "x"
+ }
+ ],
+ "message.confirm-delete": [
+ {
+ "type": 0,
+ "value": "Are you sure you want to delete "
+ },
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": "?"
+ }
+ ],
+ "message.confirm-reset": [
+ {
+ "type": 0,
+ "value": "Are you sure you want to reset "
+ },
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": "'s statistics?"
+ }
+ ],
+ "message.copied": [
+ {
+ "type": 0,
+ "value": "Copied!"
+ }
+ ],
+ "message.delete-warning": [
+ {
+ "type": 0,
+ "value": "All associated data will be deleted as well."
+ }
+ ],
+ "message.edit-dashboard": [
+ {
+ "type": 0,
+ "value": "Edit dashboard"
+ }
+ ],
+ "message.failure": [
+ {
+ "type": 0,
+ "value": "Something went wrong."
+ }
+ ],
+ "message.get-share-url": [
+ {
+ "type": 0,
+ "value": "Get share URL"
+ }
+ ],
+ "message.get-tracking-code": [
+ {
+ "type": 0,
+ "value": "Get tracking code"
+ }
+ ],
+ "message.go-to-settings": [
+ {
+ "type": 0,
+ "value": "Go to settings"
+ }
+ ],
+ "message.incorrect-username-password": [
+ {
+ "type": 0,
+ "value": "Incorrect username/password."
+ }
+ ],
+ "message.log.visitor": [
+ {
+ "type": 0,
+ "value": "Visitor from "
+ },
+ {
+ "type": 1,
+ "value": "country"
+ },
+ {
+ "type": 0,
+ "value": " using "
+ },
+ {
+ "type": 1,
+ "value": "browser"
+ },
+ {
+ "type": 0,
+ "value": " on "
+ },
+ {
+ "type": 1,
+ "value": "os"
+ },
+ {
+ "type": 0,
+ "value": " "
+ },
+ {
+ "type": 1,
+ "value": "device"
+ }
+ ],
+ "message.new-version-available": [
+ {
+ "type": 0,
+ "value": "A new version of umami "
+ },
+ {
+ "type": 1,
+ "value": "version"
+ },
+ {
+ "type": 0,
+ "value": " is available!"
+ }
+ ],
+ "message.no-data-available": [
+ {
+ "type": 0,
+ "value": "No data available."
+ }
+ ],
+ "message.no-websites-configured": [
+ {
+ "type": 0,
+ "value": "You don't have any websites configured."
+ }
+ ],
+ "message.page-not-found": [
+ {
+ "type": 0,
+ "value": "Page not found."
+ }
+ ],
+ "message.powered-by": [
+ {
+ "type": 0,
+ "value": "Powered by "
+ },
+ {
+ "type": 1,
+ "value": "name"
+ }
+ ],
+ "message.reset-warning": [
+ {
+ "type": 0,
+ "value": "All statistics for this website will be deleted, but your tracking code will remain intact."
+ }
+ ],
+ "message.save-success": [
+ {
+ "type": 0,
+ "value": "Saved successfully."
+ }
+ ],
+ "message.share-url": [
+ {
+ "type": 0,
+ "value": "This is the publicly shared URL for "
+ },
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": "."
+ }
+ ],
+ "message.toggle-charts": [
+ {
+ "type": 0,
+ "value": "Toggle charts"
+ }
+ ],
+ "message.track-stats": [
+ {
+ "type": 0,
+ "value": "To track stats for "
+ },
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": ", place the following code in the "
+ },
+ {
+ "type": 1,
+ "value": "head"
+ },
+ {
+ "type": 0,
+ "value": " section of your website."
+ }
+ ],
+ "message.type-delete": [
+ {
+ "type": 0,
+ "value": "Type "
+ },
+ {
+ "type": 1,
+ "value": "delete"
+ },
+ {
+ "type": 0,
+ "value": " in the box below to confirm."
+ }
+ ],
+ "message.type-reset": [
+ {
+ "type": 0,
+ "value": "Type "
+ },
+ {
+ "type": 1,
+ "value": "reset"
+ },
+ {
+ "type": 0,
+ "value": " in the box below to confirm."
+ }
+ ],
+ "metrics.actions": [
+ {
+ "type": 0,
+ "value": "Actions"
+ }
+ ],
+ "metrics.average-visit-time": [
+ {
+ "type": 0,
+ "value": "Average visit time"
+ }
+ ],
+ "metrics.bounce-rate": [
+ {
+ "type": 0,
+ "value": "Bounce rate"
+ }
+ ],
+ "metrics.browsers": [
+ {
+ "type": 0,
+ "value": "Browsers"
+ }
+ ],
+ "metrics.countries": [
+ {
+ "type": 0,
+ "value": "Countries"
+ }
+ ],
+ "metrics.device.desktop": [
+ {
+ "type": 0,
+ "value": "Desktop"
+ }
+ ],
+ "metrics.device.laptop": [
+ {
+ "type": 0,
+ "value": "Laptop"
+ }
+ ],
+ "metrics.device.mobile": [
+ {
+ "type": 0,
+ "value": "Mobile"
+ }
+ ],
+ "metrics.device.tablet": [
+ {
+ "type": 0,
+ "value": "Tablet"
+ }
+ ],
+ "metrics.devices": [
+ {
+ "type": 0,
+ "value": "Devices"
+ }
+ ],
+ "metrics.events": [
+ {
+ "type": 0,
+ "value": "Events"
+ }
+ ],
+ "metrics.filter.combined": [
+ {
+ "type": 0,
+ "value": "Combined"
+ }
+ ],
+ "metrics.filter.raw": [
+ {
+ "type": 0,
+ "value": "Raw"
+ }
+ ],
+ "metrics.languages": [
+ {
+ "type": 0,
+ "value": "Languages"
+ }
+ ],
+ "metrics.operating-systems": [
+ {
+ "type": 0,
+ "value": "Operating systems"
+ }
+ ],
+ "metrics.page-views": [
+ {
+ "type": 0,
+ "value": "Page views"
+ }
+ ],
+ "metrics.pages": [
+ {
+ "type": 0,
+ "value": "Pages"
+ }
+ ],
+ "metrics.query-parameters": [
+ {
+ "type": 0,
+ "value": "Query parameters"
+ }
+ ],
+ "metrics.referrers": [
+ {
+ "type": 0,
+ "value": "Referrers"
+ }
+ ],
+ "metrics.screens": [
+ {
+ "type": 0,
+ "value": "Screens"
+ }
+ ],
+ "metrics.unique-visitors": [
+ {
+ "type": 0,
+ "value": "Unique visitors"
+ }
+ ],
+ "metrics.views": [
+ {
+ "type": 0,
+ "value": "Views"
+ }
+ ],
+ "metrics.visitors": [
+ {
+ "type": 0,
+ "value": "Visitors"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/public/intl/messages/hr-HR.json b/public/intl/messages/hr-HR.json
index b41aa9e6..e9bec50f 100644
--- a/public/intl/messages/hr-HR.json
+++ b/public/intl/messages/hr-HR.json
@@ -164,7 +164,7 @@
"label.enable-share-url": [
{
"type": 0,
- "value": "Omogući dijeljenje URL-a"
+ "value": "Omogući dijeljenje poveznice"
}
],
"label.event-data": [
@@ -182,7 +182,7 @@
"label.invalid": [
{
"type": 0,
- "value": "Nesipravno"
+ "value": "Neispravno"
}
],
"label.invalid-domain": [
@@ -286,7 +286,7 @@
"label.passwords-dont-match": [
{
"type": 0,
- "value": "Lozinka nije točna"
+ "value": "Lozinke se ne podudaraju"
}
],
"label.profile": [
@@ -352,7 +352,7 @@
"label.share-url": [
{
"type": 0,
- "value": "Podijeli URL"
+ "value": "Podijeli poveznicu"
}
],
"label.single-day": [
@@ -461,7 +461,7 @@
"value": [
{
"type": 0,
- "value": "visitor"
+ "value": "posjetitelj"
}
]
},
@@ -469,7 +469,7 @@
"value": [
{
"type": 0,
- "value": "visitors"
+ "value": "posjetitelja"
}
]
}
@@ -516,7 +516,7 @@
"message.delete-warning": [
{
"type": 0,
- "value": "Izbrisat će se svi povezani podaci."
+ "value": "Izbrisat će se svi povezani podaci."
}
],
"message.edit-dashboard": [
@@ -534,7 +534,7 @@
"message.get-share-url": [
{
"type": 0,
- "value": "Dohvati URL za dijeljenje"
+ "value": "Dohvati poveznicu za dijeljenje"
}
],
"message.get-tracking-code": [
@@ -624,7 +624,7 @@
"message.powered-by": [
{
"type": 0,
- "value": "Powered by "
+ "value": "Pokreće "
},
{
"type": 1,
@@ -646,7 +646,7 @@
"message.share-url": [
{
"type": 0,
- "value": "Ovo je javno dijeljeni URL za "
+ "value": "Ovo je javno dijeljena poveznica za "
},
{
"type": 1,
diff --git a/public/intl/messages/lt-LT.json b/public/intl/messages/lt-LT.json
index c37ca777..5ecfac6d 100644
--- a/public/intl/messages/lt-LT.json
+++ b/public/intl/messages/lt-LT.json
@@ -502,6 +502,12 @@
"value": "Svetainės"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Vakar"
+ }
+ ],
"message.active-users": [
{
"offset": 0,
diff --git a/public/intl/messages/si-LK.json b/public/intl/messages/si-LK.json
new file mode 100644
index 00000000..82898fbd
--- /dev/null
+++ b/public/intl/messages/si-LK.json
@@ -0,0 +1,842 @@
+{
+ "label.accounts": [
+ {
+ "type": 0,
+ "value": "ගිණුම්"
+ }
+ ],
+ "label.add-account": [
+ {
+ "type": 0,
+ "value": "ගිණුම එකතු කරන්න"
+ }
+ ],
+ "label.add-column": [
+ {
+ "type": 0,
+ "value": "තීරුව එක් කරන්න"
+ }
+ ],
+ "label.add-filter": [
+ {
+ "type": 0,
+ "value": "පෙරහන එකතු කරන්න"
+ }
+ ],
+ "label.add-website": [
+ {
+ "type": 0,
+ "value": "වෙබ් අඩවිය එක් කරන්න"
+ }
+ ],
+ "label.administrator": [
+ {
+ "type": 0,
+ "value": "පරිපාලක"
+ }
+ ],
+ "label.all": [
+ {
+ "type": 0,
+ "value": "සියල්ල"
+ }
+ ],
+ "label.all-time": [
+ {
+ "type": 0,
+ "value": "හැම වෙලාවෙම"
+ }
+ ],
+ "label.all-websites": [
+ {
+ "type": 0,
+ "value": "සියලුම වෙබ් අඩවි"
+ }
+ ],
+ "label.back": [
+ {
+ "type": 0,
+ "value": "ආපසු"
+ }
+ ],
+ "label.cancel": [
+ {
+ "type": 0,
+ "value": "අවලංගු කරන්න"
+ }
+ ],
+ "label.change-password": [
+ {
+ "type": 0,
+ "value": "මුරපදය වෙනස් කරන්න"
+ }
+ ],
+ "label.confirm-password": [
+ {
+ "type": 0,
+ "value": "මුරපදය සත්යාපනය කරන්න"
+ }
+ ],
+ "label.copy-to-clipboard": [
+ {
+ "type": 0,
+ "value": "පසුරු පුවරුවට පිටපත් කරන්න"
+ }
+ ],
+ "label.current-password": [
+ {
+ "type": 0,
+ "value": "වත්මන් මුරපදය"
+ }
+ ],
+ "label.custom-range": [
+ {
+ "type": 0,
+ "value": "අභිරුචි පරාසය"
+ }
+ ],
+ "label.dashboard": [
+ {
+ "type": 0,
+ "value": "උපකරණ පුවරුව"
+ }
+ ],
+ "label.date-range": [
+ {
+ "type": 0,
+ "value": "දින පරාසය"
+ }
+ ],
+ "label.default-date-range": [
+ {
+ "type": 0,
+ "value": "පෙරනිමි දින පරාසය"
+ }
+ ],
+ "label.delete": [
+ {
+ "type": 0,
+ "value": "මකන්න"
+ }
+ ],
+ "label.delete-account": [
+ {
+ "type": 0,
+ "value": "ගිණුම මකන්න"
+ }
+ ],
+ "label.delete-website": [
+ {
+ "type": 0,
+ "value": "වෙබ් අඩවිය මකන්න"
+ }
+ ],
+ "label.dismiss": [
+ {
+ "type": 0,
+ "value": "මගහරින්න"
+ }
+ ],
+ "label.domain": [
+ {
+ "type": 0,
+ "value": "වසම"
+ }
+ ],
+ "label.edit": [
+ {
+ "type": 0,
+ "value": "සංස්කරණය කරන්න"
+ }
+ ],
+ "label.edit-account": [
+ {
+ "type": 0,
+ "value": "ගිණුම සංස්කරණය කරන්න"
+ }
+ ],
+ "label.edit-website": [
+ {
+ "type": 0,
+ "value": "වෙබ් අඩවිය සංස්කරණය කරන්න"
+ }
+ ],
+ "label.enable-share-url": [
+ {
+ "type": 0,
+ "value": "බෙදාගැනීමේ URL සබල කරන්න"
+ }
+ ],
+ "label.event-data": [
+ {
+ "type": 0,
+ "value": "සිදුවීම් දත්ත"
+ }
+ ],
+ "label.field-name": [
+ {
+ "type": 0,
+ "value": "ක්ෂේත්ර නාම"
+ }
+ ],
+ "label.invalid": [
+ {
+ "type": 0,
+ "value": "වලංගු නැත"
+ }
+ ],
+ "label.invalid-domain": [
+ {
+ "type": 0,
+ "value": "වලංගු නොවන වසමක්"
+ }
+ ],
+ "label.language": [
+ {
+ "type": 0,
+ "value": "භාෂාව"
+ }
+ ],
+ "label.last-days": [
+ {
+ "type": 0,
+ "value": "අන්තිම "
+ },
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " දින"
+ }
+ ],
+ "label.last-hours": [
+ {
+ "type": 0,
+ "value": "අන්තිම "
+ },
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " පැය"
+ }
+ ],
+ "label.logged-in-as": [
+ {
+ "type": 0,
+ "value": "ලොග් වී ඇත්තේ "
+ },
+ {
+ "type": 1,
+ "value": "username"
+ }
+ ],
+ "label.login": [
+ {
+ "type": 0,
+ "value": "ලොග් වෙන්න"
+ }
+ ],
+ "label.logout": [
+ {
+ "type": 0,
+ "value": "පිටවීම"
+ }
+ ],
+ "label.more": [
+ {
+ "type": 0,
+ "value": "තවත්"
+ }
+ ],
+ "label.name": [
+ {
+ "type": 0,
+ "value": "නම"
+ }
+ ],
+ "label.new-password": [
+ {
+ "type": 0,
+ "value": "අලුත් මුරපදය"
+ }
+ ],
+ "label.none": [
+ {
+ "type": 0,
+ "value": "කිසිවක් නැත"
+ }
+ ],
+ "label.owner": [
+ {
+ "type": 0,
+ "value": "හිමිකරු"
+ }
+ ],
+ "label.password": [
+ {
+ "type": 0,
+ "value": "මුරපදය"
+ }
+ ],
+ "label.passwords-dont-match": [
+ {
+ "type": 0,
+ "value": "මුරපද නොගැලපේ"
+ }
+ ],
+ "label.profile": [
+ {
+ "type": 0,
+ "value": "පැතිකඩ"
+ }
+ ],
+ "label.realtime": [
+ {
+ "type": 0,
+ "value": "තත්ය කාල"
+ }
+ ],
+ "label.realtime-logs": [
+ {
+ "type": 0,
+ "value": "තත්ය කාලීන ලොග්"
+ }
+ ],
+ "label.refresh": [
+ {
+ "type": 0,
+ "value": "නැවුම් කරන්න"
+ }
+ ],
+ "label.required": [
+ {
+ "type": 0,
+ "value": "අවශ්යයි"
+ }
+ ],
+ "label.reset": [
+ {
+ "type": 0,
+ "value": "යළි පිහිටුවන්න"
+ }
+ ],
+ "label.reset-website": [
+ {
+ "type": 0,
+ "value": "සංඛ්යා ලේඛන නැවත සකසන්න"
+ }
+ ],
+ "label.save": [
+ {
+ "type": 0,
+ "value": "සුරකින්න"
+ }
+ ],
+ "label.search": [
+ {
+ "type": 0,
+ "value": "සෙවීම"
+ }
+ ],
+ "label.settings": [
+ {
+ "type": 0,
+ "value": "සැකසුම්"
+ }
+ ],
+ "label.share-url": [
+ {
+ "type": 0,
+ "value": "බෙදාගැනීමේ URL"
+ }
+ ],
+ "label.single-day": [
+ {
+ "type": 0,
+ "value": "තනි දවස"
+ }
+ ],
+ "label.theme": [
+ {
+ "type": 0,
+ "value": "තේමාව"
+ }
+ ],
+ "label.this-month": [
+ {
+ "type": 0,
+ "value": "මෙ මාසය"
+ }
+ ],
+ "label.this-week": [
+ {
+ "type": 0,
+ "value": "මේ සතිය"
+ }
+ ],
+ "label.this-year": [
+ {
+ "type": 0,
+ "value": "මේ අවුරුද්ද"
+ }
+ ],
+ "label.timezone": [
+ {
+ "type": 0,
+ "value": "වේලා කලාපය"
+ }
+ ],
+ "label.today": [
+ {
+ "type": 0,
+ "value": "අද"
+ }
+ ],
+ "label.tracking-code": [
+ {
+ "type": 0,
+ "value": "ලුහුබැඳීමේ කේතය"
+ }
+ ],
+ "label.type": [
+ {
+ "type": 0,
+ "value": "වර්ගය"
+ }
+ ],
+ "label.unknown": [
+ {
+ "type": 0,
+ "value": "නොදනී"
+ }
+ ],
+ "label.username": [
+ {
+ "type": 0,
+ "value": "පරිශීලක නාමය"
+ }
+ ],
+ "label.value": [
+ {
+ "type": 0,
+ "value": "වටිනාකම"
+ }
+ ],
+ "label.view-details": [
+ {
+ "type": 0,
+ "value": "තොරතුරු පෙන්වන්න"
+ }
+ ],
+ "label.websites": [
+ {
+ "type": 0,
+ "value": "වෙබ් අඩවි"
+ }
+ ],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "ඊයේ"
+ }
+ ],
+ "message.active-users": [
+ {
+ "type": 1,
+ "value": "x"
+ },
+ {
+ "type": 0,
+ "value": " දැන් "
+ },
+ {
+ "offset": 0,
+ "options": {
+ "one": {
+ "value": [
+ {
+ "type": 0,
+ "value": "අමුත්තා"
+ }
+ ]
+ },
+ "other": {
+ "value": [
+ {
+ "type": 0,
+ "value": "අමුත්තන්"
+ }
+ ]
+ }
+ },
+ "pluralType": "cardinal",
+ "type": 6,
+ "value": "x"
+ }
+ ],
+ "message.confirm-delete": [
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": " මකා දැමීම ගැන විශ්වාසද?"
+ }
+ ],
+ "message.confirm-reset": [
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": " ට අදාල සංඛ්යාලේඛන නැවත පිහිටුවීමට අවශ්යද?"
+ }
+ ],
+ "message.copied": [
+ {
+ "type": 0,
+ "value": "පිටපත් කරගත්තා!"
+ }
+ ],
+ "message.delete-warning": [
+ {
+ "type": 0,
+ "value": "සියලුම ආශ්රිත දත්ත ද මකා දැමෙනු ඇත."
+ }
+ ],
+ "message.edit-dashboard": [
+ {
+ "type": 0,
+ "value": "උපකරණ පුවරුව සංස්කරණය කරන්න"
+ }
+ ],
+ "message.failure": [
+ {
+ "type": 0,
+ "value": "යම් ගැටලුවක් මතු වී ඇත."
+ }
+ ],
+ "message.get-share-url": [
+ {
+ "type": 0,
+ "value": "බෙදාගැනීමේ URL ලබා ගන්න"
+ }
+ ],
+ "message.get-tracking-code": [
+ {
+ "type": 0,
+ "value": "ලුහුබැඳීමේ කේතය ලබා ගන්න"
+ }
+ ],
+ "message.go-to-settings": [
+ {
+ "type": 0,
+ "value": "සැකසීම් වෙත යන්න"
+ }
+ ],
+ "message.incorrect-username-password": [
+ {
+ "type": 0,
+ "value": "වැරදි පරිශීලක නාමය/මුරපදය."
+ }
+ ],
+ "message.log.visitor": [
+ {
+ "type": 1,
+ "value": "country"
+ },
+ {
+ "type": 0,
+ "value": " වලින් පැමිණි අමුත්තකු "
+ },
+ {
+ "type": 1,
+ "value": "device"
+ },
+ {
+ "type": 0,
+ "value": " එකේ, මේ "
+ },
+ {
+ "type": 1,
+ "value": "os"
+ },
+ {
+ "type": 0,
+ "value": " එකේ, මේ "
+ },
+ {
+ "type": 1,
+ "value": "browser"
+ },
+ {
+ "type": 0,
+ "value": " එකෙන් ඉන්නවා"
+ }
+ ],
+ "message.new-version-available": [
+ {
+ "type": 0,
+ "value": "umami අලුත්ම "
+ },
+ {
+ "type": 1,
+ "value": "version"
+ },
+ {
+ "type": 0,
+ "value": " වන අනුවාදය නිකුත් උනා!"
+ }
+ ],
+ "message.no-data-available": [
+ {
+ "type": 0,
+ "value": "පෙන්වීමට දත්ත නොමැත."
+ }
+ ],
+ "message.no-websites-configured": [
+ {
+ "type": 0,
+ "value": "ඔබට වින්යාස කර ඇති වෙබ් අඩවි කිසිවක් නොමැත."
+ }
+ ],
+ "message.page-not-found": [
+ {
+ "type": 0,
+ "value": "පිටුව හමු නොවීය."
+ }
+ ],
+ "message.powered-by": [
+ {
+ "type": 0,
+ "value": "බල ගැන්වුයේ "
+ },
+ {
+ "type": 1,
+ "value": "name"
+ }
+ ],
+ "message.reset-warning": [
+ {
+ "type": 0,
+ "value": "සියලුම සංඛ්යාලේඛන මකා දමනු ඇත. නමුත් ඔබගේ නිරීක්ෂණ කේතය නොවෙනස්ව පවතිනු ඇත."
+ }
+ ],
+ "message.save-success": [
+ {
+ "type": 0,
+ "value": "සාර්තකව සුරැකිණි."
+ }
+ ],
+ "message.share-url": [
+ {
+ "type": 0,
+ "value": "මේ "
+ },
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": " සඳහා ප්රසිද්ධියේ බෙදාගත් URL එකයි."
+ }
+ ],
+ "message.toggle-charts": [
+ {
+ "type": 0,
+ "value": "ප්රස්ථාර ටොගල් කරන්න"
+ }
+ ],
+ "message.track-stats": [
+ {
+ "type": 1,
+ "value": "target"
+ },
+ {
+ "type": 0,
+ "value": " හි සංඛ්යාලේඛන බැලීම සදහා, පහත කේතය "
+ },
+ {
+ "type": 1,
+ "value": "head"
+ },
+ {
+ "type": 0,
+ "value": " කොටසට ඇතුලත් කරන්න."
+ }
+ ],
+ "message.type-delete": [
+ {
+ "type": 0,
+ "value": "සත්යාපනය සදහා "
+ },
+ {
+ "type": 1,
+ "value": "delete"
+ },
+ {
+ "type": 0,
+ "value": " ලෙස පහල කොටුවේ ටයිප් කරන්න"
+ }
+ ],
+ "message.type-reset": [
+ {
+ "type": 0,
+ "value": "සත්යාපනය සදහා "
+ },
+ {
+ "type": 1,
+ "value": "reset"
+ },
+ {
+ "type": 0,
+ "value": " ලෙස පහල කොටුවේ ටයිප් කරන්න"
+ }
+ ],
+ "metrics.actions": [
+ {
+ "type": 0,
+ "value": "ක්රියාවන්"
+ }
+ ],
+ "metrics.average-visit-time": [
+ {
+ "type": 0,
+ "value": "සාමාන්ය සංචාර කාලය"
+ }
+ ],
+ "metrics.bounce-rate": [
+ {
+ "type": 0,
+ "value": "හැරී යන ප්රමාණය"
+ }
+ ],
+ "metrics.browsers": [
+ {
+ "type": 0,
+ "value": "බ්රව්සර්"
+ }
+ ],
+ "metrics.countries": [
+ {
+ "type": 0,
+ "value": "රටවල්"
+ }
+ ],
+ "metrics.device.desktop": [
+ {
+ "type": 0,
+ "value": "ඩෙස්ක්ටොප්"
+ }
+ ],
+ "metrics.device.laptop": [
+ {
+ "type": 0,
+ "value": "ලැප්ටොප්"
+ }
+ ],
+ "metrics.device.mobile": [
+ {
+ "type": 0,
+ "value": "ජංගම"
+ }
+ ],
+ "metrics.device.tablet": [
+ {
+ "type": 0,
+ "value": "ටැබ්ලට්"
+ }
+ ],
+ "metrics.devices": [
+ {
+ "type": 0,
+ "value": "උපකරණ"
+ }
+ ],
+ "metrics.events": [
+ {
+ "type": 0,
+ "value": "සිද්ධීන්"
+ }
+ ],
+ "metrics.filter.combined": [
+ {
+ "type": 0,
+ "value": "ඒකාබද්ධ"
+ }
+ ],
+ "metrics.filter.raw": [
+ {
+ "type": 0,
+ "value": "අමු"
+ }
+ ],
+ "metrics.languages": [
+ {
+ "type": 0,
+ "value": "භාෂා"
+ }
+ ],
+ "metrics.operating-systems": [
+ {
+ "type": 0,
+ "value": "මෙහෙයුම් පද්ධති"
+ }
+ ],
+ "metrics.page-views": [
+ {
+ "type": 0,
+ "value": "පිටු බැලීම්"
+ }
+ ],
+ "metrics.pages": [
+ {
+ "type": 0,
+ "value": "පිටු"
+ }
+ ],
+ "metrics.query-parameters": [
+ {
+ "type": 0,
+ "value": "විමසුම් පරාමිතීන්"
+ }
+ ],
+ "metrics.referrers": [
+ {
+ "type": 0,
+ "value": "යොමු කරන්නන්"
+ }
+ ],
+ "metrics.screens": [
+ {
+ "type": 0,
+ "value": "තිර"
+ }
+ ],
+ "metrics.unique-visitors": [
+ {
+ "type": 0,
+ "value": "අලුත්ම අමුත්තන්"
+ }
+ ],
+ "metrics.views": [
+ {
+ "type": 0,
+ "value": "බැලූ ගණන"
+ }
+ ],
+ "metrics.visitors": [
+ {
+ "type": 0,
+ "value": "අමුත්තන්"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/public/intl/messages/th-TH.json b/public/intl/messages/th-TH.json
index 0d1bd0ec..27fd1747 100644
--- a/public/intl/messages/th-TH.json
+++ b/public/intl/messages/th-TH.json
@@ -11,6 +11,18 @@
"value": "เพิ่มบัญชี"
}
],
+ "label.add-column": [
+ {
+ "type": 0,
+ "value": "สร้างคอลัมน์"
+ }
+ ],
+ "label.add-filter": [
+ {
+ "type": 0,
+ "value": "สร้างตัวกรอง"
+ }
+ ],
"label.add-website": [
{
"type": 0,
@@ -284,7 +296,7 @@
"label.required": [
{
"type": 0,
- "value": "ต้องการ"
+ "value": "จำเป็น"
}
],
"label.reset": [
@@ -305,6 +317,12 @@
"value": "บันทึก"
}
],
+ "label.search": [
+ {
+ "type": 0,
+ "value": "ค้นหา"
+ }
+ ],
"label.settings": [
{
"type": 0,
@@ -389,6 +407,12 @@
"value": "เว็บไซต์"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "เมื่อวาน"
+ }
+ ],
"message.active-users": [
{
"type": 0,
@@ -444,7 +468,7 @@
"message.confirm-reset": [
{
"type": 0,
- "value": "คุณแน่ใจหรือไม่ว่าต้องการรีเซตข้อมูลสถิติของ "
+ "value": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตข้อมูลสถิติของ "
},
{
"type": 1,
@@ -470,7 +494,7 @@
"message.edit-dashboard": [
{
"type": 0,
- "value": "Edit dashboard"
+ "value": "แก้ไขแดชบอร์ด"
}
],
"message.failure": [
@@ -766,7 +790,7 @@
"metrics.query-parameters": [
{
"type": 0,
- "value": "Query parameters"
+ "value": "พารามิเตอร์ URL"
}
],
"metrics.referrers": [
diff --git a/queries/analytics/event/getEventData.js b/queries/analytics/event/getEventData.js
index 91302d30..08d7bc03 100644
--- a/queries/analytics/event/getEventData.js
+++ b/queries/analytics/event/getEventData.js
@@ -10,29 +10,44 @@ export async function getEventData(...args) {
}
async function relationalQuery(websiteId, { startDate, endDate, event_name, columns, filters }) {
- const { rawQuery, getEventDataColumnsQuery, getEventDataFilterQuery } = prisma;
- const params = [startDate, endDate];
+ const {
+ rawQuery,
+ getEventDataColumnsQuery,
+ getEventDataFilterQuery,
+ toUuid,
+ getSanitizedColumns,
+ } = prisma;
+ const sanitizedColumns = getSanitizedColumns(columns);
+ const params = [websiteId, startDate, endDate];
+
+ if (event_name) {
+ params.push(event_name);
+ }
+
+ const columnQuery = getEventDataColumnsQuery('event_data.event_data', sanitizedColumns, params);
+ const filterQuery =
+ Object.keys(filters).length > 0
+ ? `and ${getEventDataFilterQuery('event_data.event_data', filters, params)}`
+ : '';
return rawQuery(
`select
- ${getEventDataColumnsQuery('event_data.event_data', columns)}
+ ${columnQuery}
from event
join website
on event.website_id = website.website_id
join event_data
on event.event_id = event_data.event_id
- where website_uuid='${websiteId}'
- and event.created_at between $1 and $2
- ${event_name ? `and event_name = ${event_name}` : ''}
- ${
- Object.keys(filters).length > 0
- ? `and ${getEventDataFilterQuery('event_data.event_data', filters)}`
- : ''
- }`,
+ where website_uuid = $1${toUuid()}
+ and event.created_at between $2 and $3
+ ${event_name ? `and event_name = $4` : ''}
+ ${filterQuery}`,
params,
).then(results => {
- return Object.keys(results[0]).map(a => {
- return { x: a, y: results[0][`${a}`] };
+ const fields = Object.keys(sanitizedColumns);
+
+ return Object.keys(results[0]).map((a, i) => {
+ return { x: `${sanitizedColumns[fields[i]]}(${fields[i]})`, y: results[0][i] };
});
});
}
diff --git a/queries/analytics/event/getEventMetrics.js b/queries/analytics/event/getEventMetrics.js
index 605bb688..d40703d7 100644
--- a/queries/analytics/event/getEventMetrics.js
+++ b/queries/analytics/event/getEventMetrics.js
@@ -17,8 +17,8 @@ async function relationalQuery(
unit = 'day',
filters = {},
) {
- const { rawQuery, getDateQuery, getFilterQuery } = prisma;
- const params = [start_at, end_at];
+ const { rawQuery, getDateQuery, getFilterQuery, toUuid } = prisma;
+ const params = [websiteId, start_at, end_at];
return rawQuery(
`select
@@ -28,8 +28,8 @@ async function relationalQuery(
from event
join website
on event.website_id = website.website_id
- where website_uuid='${websiteId}'
- and event.created_at between $1 and $2
+ where website_uuid = $1${toUuid()}
+ and event.created_at between $2 and $3
${getFilterQuery('event', filters, params)}
group by 1, 2
order by 2`,
diff --git a/queries/analytics/pageview/getPageviewMetrics.js b/queries/analytics/pageview/getPageviewMetrics.js
index 69607d00..58c1e1b0 100644
--- a/queries/analytics/pageview/getPageviewMetrics.js
+++ b/queries/analytics/pageview/getPageviewMetrics.js
@@ -10,8 +10,8 @@ export async function getPageviewMetrics(...args) {
}
async function relationalQuery(websiteId, { startDate, endDate, column, table, filters = {} }) {
- const { rawQuery, parseFilters } = prisma;
- const params = [startDate, endDate];
+ const { rawQuery, parseFilters, toUuid } = prisma;
+ const params = [websiteId, startDate, endDate];
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
table,
column,
@@ -24,8 +24,8 @@ async function relationalQuery(websiteId, { startDate, endDate, column, table, f
from ${table}
${` join website on ${table}.website_id = website.website_id`}
${joinSession}
- where website.website_uuid='${websiteId}'
- and ${table}.created_at between $1 and $2
+ where website.website_uuid = $1${toUuid()}
+ and ${table}.created_at between $2 and $3
${pageviewQuery}
${joinSession && sessionQuery}
${eventQuery}
diff --git a/queries/analytics/pageview/getPageviewParams.js b/queries/analytics/pageview/getPageviewParams.js
index 5cdabfa3..2ccabe23 100644
--- a/queries/analytics/pageview/getPageviewParams.js
+++ b/queries/analytics/pageview/getPageviewParams.js
@@ -9,8 +9,8 @@ export async function getPageviewParams(...args) {
}
async function relationalQuery(websiteId, start_at, end_at, column, table, filters = {}) {
- const { parseFilters, rawQuery } = prisma;
- const params = [start_at, end_at];
+ const { parseFilters, rawQuery, toUuid } = prisma;
+ const params = [websiteId, start_at, end_at];
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
table,
column,
@@ -24,8 +24,8 @@ async function relationalQuery(websiteId, start_at, end_at, column, table, filte
from ${table}
${` join website on ${table}.website_id = website.website_id`}
${joinSession}
- where website.website_uuid='${websiteId}'
- and ${table}.created_at between $1 and $2
+ where website.website_uuid = $1${toUuid()}
+ and ${table}.created_at between $2 and $3
and ${table}.url like '%?%'
${pageviewQuery}
${joinSession && sessionQuery}
diff --git a/queries/analytics/pageview/getPageviewStats.js b/queries/analytics/pageview/getPageviewStats.js
index 5ec8339f..1f31d31b 100644
--- a/queries/analytics/pageview/getPageviewStats.js
+++ b/queries/analytics/pageview/getPageviewStats.js
@@ -21,8 +21,8 @@ async function relationalQuery(
sessionKey = 'session_id',
},
) {
- const { getDateQuery, parseFilters, rawQuery } = prisma;
- const params = [start_at, end_at];
+ const { getDateQuery, parseFilters, rawQuery, toUuid } = prisma;
+ const params = [websiteId, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
null,
@@ -37,8 +37,8 @@ async function relationalQuery(
join website
on pageview.website_id = website.website_id
${joinSession}
- where website.website_uuid='${websiteId}'
- and pageview.created_at between $1 and $2
+ where website.website_uuid = $1${toUuid()}
+ and pageview.created_at between $2 and $3
${pageviewQuery}
${sessionQuery}
group by 1`,
diff --git a/queries/analytics/session/getSessionMetrics.js b/queries/analytics/session/getSessionMetrics.js
index 020bddfb..bf9c8079 100644
--- a/queries/analytics/session/getSessionMetrics.js
+++ b/queries/analytics/session/getSessionMetrics.js
@@ -10,8 +10,8 @@ export async function getSessionMetrics(...args) {
}
async function relationalQuery(websiteId, { startDate, endDate, field, filters = {} }) {
- const { parseFilters, rawQuery } = prisma;
- const params = [startDate, endDate];
+ const { parseFilters, rawQuery, toUuid } = prisma;
+ const params = [websiteId, startDate, endDate];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(null, filters, params);
return rawQuery(
@@ -23,8 +23,8 @@ async function relationalQuery(websiteId, { startDate, endDate, field, filters =
join website
on pageview.website_id = website.website_id
${joinSession}
- where website.website_uuid='${websiteId}'
- and pageview.created_at between $1 and $2
+ where website.website_uuid = $1${toUuid()}
+ and pageview.created_at between $2 and $3
${pageviewQuery}
${sessionQuery}
)
diff --git a/queries/analytics/stats/getActiveVisitors.js b/queries/analytics/stats/getActiveVisitors.js
index 3a898d94..3cb525d2 100644
--- a/queries/analytics/stats/getActiveVisitors.js
+++ b/queries/analytics/stats/getActiveVisitors.js
@@ -11,16 +11,17 @@ export async function getActiveVisitors(...args) {
}
async function relationalQuery(websiteId) {
+ const { rawQuery, toUuid } = prisma;
const date = subMinutes(new Date(), 5);
- const params = [date];
+ const params = [websiteId, date];
- return prisma.rawQuery(
+ return rawQuery(
`select count(distinct session_id) x
from pageview
join website
on pageview.website_id = website.website_id
- where website.website_uuid = '${websiteId}'
- and pageview.created_at >= $1`,
+ where website.website_uuid = $1${toUuid()}
+ and pageview.created_at >= $2`,
params,
);
}
diff --git a/queries/analytics/stats/getWebsiteStats.js b/queries/analytics/stats/getWebsiteStats.js
index 134e1c3e..9a2452a9 100644
--- a/queries/analytics/stats/getWebsiteStats.js
+++ b/queries/analytics/stats/getWebsiteStats.js
@@ -10,8 +10,8 @@ export async function getWebsiteStats(...args) {
}
async function relationalQuery(websiteId, { start_at, end_at, filters = {} }) {
- const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
- const params = [start_at, end_at];
+ const { getDateQuery, getTimestampInterval, parseFilters, rawQuery, toUuid } = prisma;
+ const params = [websiteId, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
null,
@@ -33,8 +33,8 @@ async function relationalQuery(websiteId, { start_at, end_at, filters = {} }) {
join website
on pageview.website_id = website.website_id
${joinSession}
- where website.website_uuid='${websiteId}'
- and pageview.created_at between $1 and $2
+ where website.website_uuid = $1${toUuid()}
+ and pageview.created_at between $2 and $3
${pageviewQuery}
${sessionQuery}
group by 1, 2
diff --git a/styles/index.css b/styles/index.css
index b6006b43..cbd0566d 100644
--- a/styles/index.css
+++ b/styles/index.css
@@ -47,6 +47,10 @@ body {
'Times New Roman', serif !important;
}
+.si-LK {
+ font-family: 'Noto Sans Sinhala', Roboto, Noto, 'Times New Roman', sans-serif !important;
+}
+
.he-IL {
font-family: 'New Peninim MT', 'Arial Hebrew', Gisha, 'Times New Roman', Roboto, Noto,
'Noto Sans Hebrew', sans-serif !important;
diff --git a/yarn.lock b/yarn.lock
index 4b184365..3455bf70 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1555,37 +1555,37 @@
"@netlify/esbuild-windows-64" "0.14.39"
"@netlify/esbuild-windows-arm64" "0.14.39"
-"@netlify/functions@^1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.3.0.tgz#4305a3fb6b49caf56cd2be88d4b8534b1d5aff4f"
- integrity sha512-hN/Fgpz8XIOBfsBPLYUMxVKBlCopgeqGB0popayicnmkFLnvKByTTMYgF01wcF9DBtBQdV0H2h1kPFpMl34I8w==
+"@netlify/functions@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.4.0.tgz#027a2e5d54df5519ccbd14cf450231e97bbbf93a"
+ integrity sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==
dependencies:
is-promise "^4.0.0"
-"@netlify/ipx@^1.3.1":
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.1.tgz#0330e1e5025ea1a12c3e6fba6a3e0f0d0df741f3"
- integrity sha512-kjw26KYM1jLe+bGRnhqxWs0ACG8eg6kN6wV7uqUu1J8dE6QC73ksyVtCA6IAHl3/5qf5RyMUzquNCp0N0+lXEw==
+"@netlify/ipx@^1.3.3":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.3.tgz#db28352ee1ed86d0b991cb8236f64a4dfbe70b8c"
+ integrity sha512-2rDdCGPDPW7cyJr57rwfvpouOJx34CLDgfa2yfqTKvPzqCMOqkCi1PN/rHGuvJ/k5trZ8rxmWnnZyEbeQaZcqA==
dependencies:
- "@netlify/functions" "^1.3.0"
+ "@netlify/functions" "^1.4.0"
etag "^1.8.1"
- fs-extra "^10.0.0"
+ fs-extra "^11.0.0"
ipx "^0.9.11"
micromatch "^4.0.5"
mkdirp "^1.0.4"
murmurhash "^2.0.0"
node-fetch "^2.0.0"
- ufo "^0.8.0"
- unstorage "^0.6.0"
+ ufo "^1.0.0"
+ unstorage "^1.0.0"
"@netlify/plugin-nextjs@^4.27.3":
- version "4.28.3"
- resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.28.3.tgz#e1d3d413a75605efcedc2f3fc27501f9bc8a49e6"
- integrity sha512-fA+gOkIowfQVaL1YDF3t+3uCsZ7OEkandLpFIv0D1faA/6Fy7VxCWhAxowRQ6oV3SjYxsV259aRMT0LaRejLMw==
+ version "4.30.2"
+ resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.30.2.tgz#c783ecb0eb080a1f124fc331360c6403378fca68"
+ integrity sha512-hqvdHlQEMfpTXh+fM0jwvtKla/gUS4gVKEZeQEkJlCzAJO+8XT2bTFAGrusNHLQ53L081nLXVXx1c+HUo0LFfQ==
dependencies:
"@netlify/esbuild" "0.14.39"
- "@netlify/functions" "^1.3.0"
- "@netlify/ipx" "^1.3.1"
+ "@netlify/functions" "^1.4.0"
+ "@netlify/ipx" "^1.3.3"
"@vercel/node-bridge" "^2.1.0"
chalk "^4.1.2"
destr "^1.1.1"
@@ -1704,22 +1704,22 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@prisma/client@4.5.0":
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.5.0.tgz#f708549bee3da396d5741d846b4e4306b120210c"
- integrity sha512-B2cV0OPI1smhdYUxsJoLYQLoMlLH06MUxgFUWQnHodGMX98VRVXKmQE/9OcrTNkqtke5RC+YU24Szxd04tZA2g==
+"@prisma/client@4.9.0":
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.9.0.tgz#4a4068f3540732ea5723c008d49ed684d20f9340"
+ integrity sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==
dependencies:
- "@prisma/engines-version" "4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452"
+ "@prisma/engines-version" "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
-"@prisma/engines-version@4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452":
- version "4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452"
- resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452.tgz#5b7fae294ee9bd9790d0e7b7a0b0912e4222ac08"
- integrity sha512-o7LyVx8PPJBLrEzLl6lpxxk2D5VnlM4Fwmrbq0NoT6pr5aa1OuHD9ZG+WJY6TlR/iD9bhmo2LNcxddCMr5Rv2A==
+"@prisma/engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5":
+ version "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
+ resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5.tgz#9d817a5779fc05b107eb02f63d197ad296d60b3c"
+ integrity sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==
-"@prisma/engines@4.5.0":
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.5.0.tgz#82df347a893a5ae2a67707d44772ba181f4b9328"
- integrity sha512-4t9ir2SbQQr/wMCNU4YpHWp5hU14J2m3wHUZnGJPpmBF8YtkisxyVyQsKd1e6FyLTaGq8LOLhm6VLYHKqKNm+g==
+"@prisma/engines@4.9.0":
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.9.0.tgz#05a1411964e047c1bc43f777c7a1c69f86a2a26c"
+ integrity sha512-t1pt0Gsp+HcgPJrHFc+d/ZSAaKKWar2G/iakrE07yeKPNavDP3iVKPpfXP22OTCHZUWf7OelwKJxQgKAm5hkgw==
"@react-spring/animated@~9.5.2":
version "9.5.2"
@@ -2358,9 +2358,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
color-convert "^2.0.1"
anymatch@^3.1.2, anymatch@~3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
- integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
@@ -3272,10 +3272,10 @@ define-properties@^1.1.3, define-properties@^1.1.4:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
-defu@^6.0.0, defu@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.0.tgz#7a5411655da73335c7d933256911f17c74443e2d"
- integrity sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw==
+defu@^6.0.0, defu@^6.1.0, defu@^6.1.2:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c"
+ integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==
del@^6.0.0:
version "6.1.1"
@@ -3296,15 +3296,15 @@ delayed-stream@~1.0.0:
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-denque@^2.0.1:
+denque@^2.0.1, denque@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
-destr@^1.1.1, destr@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.0.tgz#8adb17fa3861b8032ea1bba92f60ba989a9ff119"
- integrity sha512-JG+cG4ZPB1L27sl2C2URg8MIOmIUtTbE5wEx02BpmrTCqg/hXxFKXsYsnODl5PdpqNRaS1KQGUQ56V8jk8XpYQ==
+destr@^1.1.1, destr@^1.2.0, destr@^1.2.1, destr@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.2.tgz#7ba9befcafb645a50e76b260449c63927b51e22f"
+ integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==
detect-browser@^5.2.0:
version "5.3.0"
@@ -3863,9 +3863,9 @@ fastest-levenshtein@^1.0.16:
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
fastq@^1.6.0:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
- integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
+ integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
dependencies:
reusify "^1.0.4"
@@ -3983,6 +3983,15 @@ fs-extra@10, fs-extra@^10.0.0, fs-extra@^10.0.1:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-extra@^11.0.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed"
+ integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^9.0.0:
version "9.1.0"
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
@@ -4066,6 +4075,11 @@ get-port-please@^2.6.1:
dependencies:
fs-memo "^1.2.0"
+get-port-please@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.0.1.tgz#a24953a41dc249f76869ac25e81d6623e61ab010"
+ integrity sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==
+
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -4187,15 +4201,15 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-h3@^0.8.1:
- version "0.8.6"
- resolved "https://registry.yarnpkg.com/h3/-/h3-0.8.6.tgz#8095ef998fe14769b87170b7c8b68ba9c54973d5"
- integrity sha512-CSWNOKa3QGo67rFU2PhbFTp0uPJtilNji2Z0pMiSRQt3+OkIW0u3E1WMJqIycLqaTgb9JyFqH/S4mcTyyGtvyQ==
+h3@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/h3/-/h3-1.1.0.tgz#ff10d590005711dfb41034b9b1496d165507b1ea"
+ integrity sha512-kx3u+RMzY963fU8NNT2ePWgsryAn9DNztPqbHia/M7HgA+rtXKjHjED9/uidcYPmImNwAfJsCachCzh2T3QH2A==
dependencies:
cookie-es "^0.5.0"
- destr "^1.2.0"
- radix3 "^0.2.1"
- ufo "^0.8.6"
+ destr "^1.2.2"
+ radix3 "^1.0.0"
+ ufo "^1.0.1"
har-schema@^2.0.0:
version "2.0.0"
@@ -4315,9 +4329,9 @@ ignore@^4.0.6:
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
- integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+ version "5.2.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
+ integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
image-meta@^0.1.1:
version "0.1.1"
@@ -4424,6 +4438,21 @@ ioredis@^5.2.3:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
+ioredis@^5.2.4:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.0.tgz#b5469f0fd374648ef074840c00c1d8eed42fca3f"
+ integrity sha512-Id9jKHhsILuIZpHc61QkagfVdUj2Rag5GzG1TGEvRNeM7dtTOjICgjC+tvqYxi//PuX2wjQ+Xjva2ONBuf92Pw==
+ dependencies:
+ "@ioredis/commands" "^1.1.1"
+ cluster-key-slot "^1.1.0"
+ debug "^4.3.4"
+ denque "^2.1.0"
+ lodash.defaults "^4.2.0"
+ lodash.isarguments "^3.1.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
+ standard-as-callback "^2.1.0"
+
ip-regex@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632"
@@ -4912,19 +4941,19 @@ listhen@^0.2.15:
selfsigned "^2.0.1"
ufo "^0.8.5"
-listhen@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.3.4.tgz#5bb0db65dae5f2204ffa7ee46b40f2330854cf7f"
- integrity sha512-cuzWWoIWF8JvsPLmIurTkUXi27owH4RRKnBsbPswRJvB82uTv15W01yOOLaPvjxY5mMlftmW2p1XnxB835AdRA==
+listhen@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.0.2.tgz#3332af0cf77dd914e12d125c70a9c6aed9537033"
+ integrity sha512-yXz0NIYfVJDBQK2vlCpD/OjSzYkur2mR44boUtlg0eES4holn7oYZf439y5JxP55EOzFtClZ8eZlMJ8a++FwlQ==
dependencies:
clipboardy "^3.0.0"
colorette "^2.0.19"
- defu "^6.1.0"
- get-port-please "^2.6.1"
+ defu "^6.1.2"
+ get-port-please "^3.0.1"
http-shutdown "^1.2.2"
ip-regex "^5.0.0"
node-forge "^1.3.1"
- ufo "^0.8.5"
+ ufo "^1.0.1"
listr2@^3.12.2:
version "3.14.0"
@@ -5184,9 +5213,9 @@ merge2@^1.3.0, merge2@^1.4.1:
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micro-memoize@^4.0.11:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.11.tgz#f664afc8bd8c11cb2838716a7306d6e1ec205d3a"
- integrity sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==
+ version "4.0.14"
+ resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.14.tgz#d1239ce2e5831125ac518509f5a23b54e7ca3e17"
+ integrity sha512-2tzWP1w2Hh+r7kCYa4f//jpBEA6dAueiuLco38NxfjF9Py3KCCI7wVOTdCvOhmTC043t+ulclVBdl3v+s+UJIQ==
micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
@@ -5280,9 +5309,9 @@ mmdb-lib@2.0.2:
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
moize@^6.1.0:
- version "6.1.3"
- resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.3.tgz#2e188a5ee02e4e3c06beaab39a4a3c92f92dd9aa"
- integrity sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==
+ version "6.1.5"
+ resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.5.tgz#e9a589685a3de4266eeb5f2bbfdfe1a173265f1a"
+ integrity sha512-Fu46qKV9F8DOi2vXimR3yRw/JAJfFRQEFZeclvOFnG92AEFERqwFtu4PIxETYFtCghHGlU1itKcvvNioKgWGIw==
dependencies:
fast-equals "^3.0.1"
micro-memoize "^4.0.11"
@@ -5380,16 +5409,16 @@ nice-try@^1.0.4:
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-abi@^3.3.0:
- version "3.28.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.28.0.tgz#b0df8b317e1c4f2f323756c5fc8ffccc5bca4718"
- integrity sha512-fRlDb4I0eLcQeUvGq7IY3xHrSb0c9ummdvDSYWfT9+LKP+3jCKw/tKoqaM7r1BAoiAC6GtwyjaGnOz6B3OtF+A==
+ version "3.31.0"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.31.0.tgz#dfb2ea3d01188eb80859f69bb4a4354090c1b355"
+ integrity sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==
dependencies:
semver "^7.3.5"
node-addon-api@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
- integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
+ integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
node-domexception@^1.0.0:
version "1.0.0"
@@ -5401,10 +5430,15 @@ node-fetch-native@^0.1.8:
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.8.tgz#19e2eaf6d86ac14e711ebd2612f40517c3468f2a"
integrity sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==
+node-fetch-native@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.1.tgz#1dfe78f57545d07e07016b7df4c0cb9d2ff416c7"
+ integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==
+
node-fetch@^2.0.0, node-fetch@^2.6.6:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
+ integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
dependencies:
whatwg-url "^5.0.0"
@@ -5556,15 +5590,24 @@ object.values@^1.1.5:
define-properties "^1.1.3"
es-abstract "^1.19.1"
-ohmyfetch@^0.4.18, ohmyfetch@^0.4.19:
- version "0.4.20"
- resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.20.tgz#735895d396c6d2fbf5705625db1196bd3f29be16"
- integrity sha512-+c3/l+X91owrT1reTos1R13rb2j8NGZpKi0bRWwrnxIHlr1FZ8NzghIsNBKpUvk9nsnFoNK4phw+nTnXrcALzA==
+ofetch@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.0.0.tgz#5a2604cdcb33349900e4f73ffe44de449a61101a"
+ integrity sha512-d40aof8czZFSQKJa4+F7Ch3UC5D631cK1TTUoK+iNEut9NoiCL+u0vykl/puYVUS2df4tIQl5upQcolIcEzQjQ==
dependencies:
- destr "^1.1.1"
+ destr "^1.2.1"
+ node-fetch-native "^1.0.1"
+ ufo "^1.0.0"
+
+ohmyfetch@^0.4.18:
+ version "0.4.21"
+ resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.21.tgz#6850db751fc7bbf08153aa8b11ff1ef45fcfd963"
+ integrity sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==
+ dependencies:
+ destr "^1.2.0"
node-fetch-native "^0.1.8"
ufo "^0.8.6"
- undici "^5.11.0"
+ undici "^5.12.0"
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
@@ -6095,12 +6138,12 @@ pretty-bytes@^5.6.0:
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
-prisma@4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.5.0.tgz#361ae3f4476d0821b97645e5da42975a7c2943bb"
- integrity sha512-9Aeg4qiKlv9Wsjz4NO8k2CzRzlvS3A4FYVJ5+28sBBZ0eEwbiVOE/Jj7v6rZC1tFW2s4GSICQOAyuOjc6WsNew==
+prisma@4.9.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.9.0.tgz#295954b2a89cd35a0e6bcf66b2b036dbf80c75ee"
+ integrity sha512-bS96oZ5oDFXYgoF2l7PJ3Mp1wWWfLOo8B/jAfbA2Pn0Wm5Z/owBHzaMQKS3i1CzVBDWWPVnOohmbJmjvkcHS5w==
dependencies:
- "@prisma/engines" "4.5.0"
+ "@prisma/engines" "4.9.0"
progress@^2.0.0:
version "2.0.3"
@@ -6167,10 +6210,10 @@ quick-lru@^4.0.1:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
-radix3@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/radix3/-/radix3-0.2.1.tgz#77e66a41c7ba5600a8bc137fd259ef661d314418"
- integrity sha512-FnhArTl5Tq7dodiLeSPKrDUyCQuJqEncP8cKdyy399g8F/cz7GH6FmzA3Rkosu2IZMkpswFFwXfb2ERSiL06pg==
+radix3@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.0.0.tgz#d1c760b850206a6bd5dfd26820c25903cb20eccc"
+ integrity sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==
raf-schd@^4.0.2:
version "4.0.3"
@@ -7421,11 +7464,16 @@ typescript@^4.5:
resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz"
integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
-ufo@^0.8.0, ufo@^0.8.5, ufo@^0.8.6:
+ufo@^0.8.5, ufo@^0.8.6:
version "0.8.6"
resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.6.tgz#c0ec89bc0e0c9fa59a683680feb0f28b55ec323b"
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
+ufo@^1.0.0, ufo@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29"
+ integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==
+
unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
@@ -7436,10 +7484,10 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
-undici@^5.11.0:
- version "5.12.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531"
- integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==
+undici@^5.12.0:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.16.0.tgz#6b64f9b890de85489ac6332bd45ca67e4f7d9943"
+ integrity sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==
dependencies:
busboy "^1.6.0"
@@ -7494,22 +7542,22 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unstorage@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.6.0.tgz#9a70d770d08ed8dbb87f4aa5fbf7700baf4a641d"
- integrity sha512-X05PIq28pVNA1BypX6Y00YNqAsHM25MGemvpjHeYvwJ8/wg936GoO1YD+VdWlqm3LmVX4fNJ5tlC7uhXsMPgeg==
+unstorage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.0.1.tgz#8cac09e435e727f68ac8ffdac10caa1a5b35883d"
+ integrity sha512-J1c4b8K2KeihHrQtdgl/ybIapArUbPaPb+TyJy/nGSauDwDYqciZsEKdkee568P3c8SSH4TIgnGRHDWMPGw+Lg==
dependencies:
anymatch "^3.1.2"
chokidar "^3.5.3"
- destr "^1.1.1"
- h3 "^0.8.1"
- ioredis "^5.2.3"
- listhen "^0.3.4"
+ destr "^1.2.1"
+ h3 "^1.0.1"
+ ioredis "^5.2.4"
+ listhen "^1.0.0"
mkdir "^0.0.2"
mri "^1.2.0"
- ohmyfetch "^0.4.19"
- ufo "^0.8.6"
- ws "^8.9.0"
+ ofetch "^1.0.0"
+ ufo "^1.0.0"
+ ws "^8.11.0"
update-browserslist-db@^1.0.9:
version "1.0.10"
@@ -7695,10 +7743,10 @@ write-json-file@^4.3.0:
sort-keys "^4.0.0"
write-file-atomic "^3.0.0"
-ws@^8.9.0:
- version "8.10.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51"
- integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==
+ws@^8.11.0:
+ version "8.12.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8"
+ integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==
xss@^1.0.14:
version "1.0.14"