Merge branch 'dev' into master

This commit is contained in:
Mike Cao 2024-04-10 11:32:21 -07:00 committed by GitHub
commit 8c3a48637a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
75 changed files with 1058 additions and 390 deletions

View File

@ -0,0 +1,57 @@
CREATE TABLE umami.event_data_new
(
website_id UUID,
session_id UUID,
event_id UUID,
url_path String,
event_name String,
data_key String,
string_value Nullable(String),
number_value Nullable(Decimal64(4)),
date_value Nullable(DateTime('UTC')),
data_type UInt32,
created_at DateTime('UTC'),
job_id Nullable(UUID)
)
engine = MergeTree
ORDER BY (website_id, event_id, data_key, created_at)
SETTINGS index_granularity = 8192;
INSERT INTO umami.event_data_new
SELECT website_id,
session_id,
event_id,
url_path,
event_name,
event_key,
string_value,
number_value,
date_value,
data_type,
created_at,
NULL
FROM umami.event_data;
CREATE TABLE umami.session_data
(
website_id UUID,
session_id UUID,
data_key String,
string_value Nullable(String),
number_value Nullable(Decimal64(4)),
date_value Nullable(DateTime('UTC')),
data_type UInt32,
created_at DateTime('UTC'),
job_id Nullable(UUID)
)
engine = MergeTree
ORDER BY (website_id, session_id, data_key, created_at)
SETTINGS index_granularity = 8192;
RENAME TABLE umami.event_data TO umami.event_data_old;
RENAME TABLE umami.event_data_new TO umami.event_data;
/*
DROP TABLE umami.event_data_old
*/

View File

@ -27,7 +27,7 @@ CREATE TABLE umami.website_event
event_type UInt32,
event_name String,
created_at DateTime('UTC'),
job_id UUID
job_id Nullable(UUID)
)
engine = MergeTree
ORDER BY (website_id, session_id, created_at)
@ -40,14 +40,30 @@ CREATE TABLE umami.event_data
event_id UUID,
url_path String,
event_name String,
event_key String,
data_key String,
string_value Nullable(String),
number_value Nullable(Decimal64(4)), --922337203685477.5625
number_value Nullable(Decimal64(4)),
date_value Nullable(DateTime('UTC')),
data_type UInt32,
created_at DateTime('UTC'),
job_id UUID
job_id Nullable(UUID)
)
engine = MergeTree
ORDER BY (website_id, event_id, event_key, created_at)
ORDER BY (website_id, event_id, data_key, created_at)
SETTINGS index_granularity = 8192;
CREATE TABLE umami.session_data
(
website_id UUID,
session_id UUID,
data_key String,
string_value Nullable(String),
number_value Nullable(Decimal64(4)),
date_value Nullable(DateTime('UTC')),
data_type UInt32,
created_at DateTime('UTC'),
job_id Nullable(UUID)
)
engine = MergeTree
ORDER BY (website_id, session_id, data_key, created_at)
SETTINGS index_granularity = 8192;

View File

@ -0,0 +1,20 @@
-- DropIndex
DROP INDEX `event_data_website_id_created_at_event_key_idx` ON `event_data`;
-- DropIndex
DROP INDEX `event_data_website_id_website_event_id_created_at_idx` ON `event_data`;
-- AlterTable
ALTER TABLE `event_data` RENAME COLUMN `event_key` TO `data_key`;
-- AlterTable
ALTER TABLE `session_data` RENAME COLUMN `event_key` TO `data_key`;
-- CreateIndex
CREATE INDEX `event_data_website_id_created_at_data_key_idx` ON `event_data`(`website_id`, `created_at`, `data_key`);
-- CreateIndex
CREATE INDEX `session_data_session_id_created_at_idx` ON `session_data`(`session_id`, `created_at`);
-- CreateIndex
CREATE INDEX `session_data_website_id_created_at_data_key_idx` ON `session_data`(`website_id`, `created_at`, `data_key`);

View File

@ -125,7 +125,7 @@ model EventData {
id String @id() @map("event_data_id") @db.VarChar(36)
websiteId String @map("website_id") @db.VarChar(36)
websiteEventId String @map("website_event_id") @db.VarChar(36)
eventKey String @map("event_key") @db.VarChar(500)
dataKey String @map("data_key") @db.VarChar(500)
stringValue String? @map("string_value") @db.VarChar(500)
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
dateValue DateTime? @map("date_value") @db.Timestamp(0)
@ -138,9 +138,8 @@ model EventData {
@@index([createdAt])
@@index([websiteId])
@@index([websiteEventId])
@@index([websiteId, websiteEventId, createdAt])
@@index([websiteId, createdAt])
@@index([websiteId, createdAt, eventKey])
@@index([websiteId, createdAt, dataKey])
@@map("event_data")
}
@ -148,7 +147,7 @@ model SessionData {
id String @id() @map("session_data_id") @db.VarChar(36)
websiteId String @map("website_id") @db.VarChar(36)
sessionId String @map("session_id") @db.VarChar(36)
eventKey String @map("event_key") @db.VarChar(500)
dataKey String @map("data_key") @db.VarChar(500)
stringValue String? @map("string_value") @db.VarChar(500)
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
dateValue DateTime? @map("date_value") @db.Timestamp(0)
@ -161,6 +160,8 @@ model SessionData {
@@index([createdAt])
@@index([websiteId])
@@index([sessionId])
@@index([sessionId, createdAt])
@@index([websiteId, createdAt, dataKey])
@@map("session_data")
}

View File

@ -0,0 +1,18 @@
-- DropIndex
DROP INDEX IF EXISTS "event_data_website_id_created_at_event_key_idx";
-- AlterTable
ALTER TABLE "event_data" RENAME COLUMN "event_key" TO "data_key";
-- AlterTable
ALTER TABLE "session_data" DROP COLUMN "deleted_at";
ALTER TABLE "session_data" RENAME COLUMN "session_key" TO "data_key";
-- CreateIndex
CREATE INDEX "event_data_website_id_created_at_data_key_idx" ON "event_data"("website_id", "created_at", "data_key");
-- CreateIndex
CREATE INDEX "session_data_session_id_created_at_idx" ON "session_data"("session_id", "created_at");
-- CreateIndex
CREATE INDEX "session_data_website_id_created_at_data_key_idx" ON "session_data"("website_id", "created_at", "data_key");

View File

@ -125,7 +125,7 @@ model EventData {
id String @id() @map("event_data_id") @db.Uuid
websiteId String @map("website_id") @db.Uuid
websiteEventId String @map("website_event_id") @db.Uuid
eventKey String @map("event_key") @db.VarChar(500)
dataKey String @map("data_key") @db.VarChar(500)
stringValue String? @map("string_value") @db.VarChar(500)
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
dateValue DateTime? @map("date_value") @db.Timestamptz(6)
@ -139,7 +139,7 @@ model EventData {
@@index([websiteId])
@@index([websiteEventId])
@@index([websiteId, createdAt])
@@index([websiteId, createdAt, eventKey])
@@index([websiteId, createdAt, dataKey])
@@map("event_data")
}
@ -147,13 +147,12 @@ model SessionData {
id String @id() @map("session_data_id") @db.Uuid
websiteId String @map("website_id") @db.Uuid
sessionId String @map("session_id") @db.Uuid
sessionKey String @map("session_key") @db.VarChar(500)
dataKey String @map("data_key") @db.VarChar(500)
stringValue String? @map("string_value") @db.VarChar(500)
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
dateValue DateTime? @map("date_value") @db.Timestamptz(6)
dataType Int @map("data_type") @db.Integer
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
deletedAt DateTime? @default(now()) @map("deleted_at") @db.Timestamptz(6)
website Website @relation(fields: [websiteId], references: [id])
session Session @relation(fields: [sessionId], references: [id])
@ -161,6 +160,8 @@ model SessionData {
@@index([createdAt])
@@index([websiteId])
@@index([sessionId])
@@index([sessionId, createdAt])
@@index([websiteId, createdAt, dataKey])
@@map("session_data")
}

View File

@ -1,6 +1,6 @@
{
"name": "umami",
"version": "2.11.0",
"version": "2.12.0",
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
"author": "Umami Software, Inc. <hello@umami.is>",
"license": "MIT",
@ -66,7 +66,7 @@
"dependencies": {
"@clickhouse/client": "^0.2.2",
"@fontsource/inter": "^4.5.15",
"@prisma/client": "5.11.0",
"@prisma/client": "5.12.1",
"@prisma/extension-read-replicas": "^0.3.0",
"@react-spring/web": "^9.7.3",
"@tanstack/react-query": "^5.28.6",
@ -102,7 +102,7 @@
"next-basics": "^0.39.0",
"node-fetch": "^3.2.8",
"npm-run-all": "^4.1.5",
"prisma": "5.11.0",
"prisma": "5.12.1",
"react": "^18.2.0",
"react-basics": "^0.123.0",
"react-beautiful-dnd": "^13.1.0",

View File

@ -75,8 +75,8 @@ export function EventDataParameters() {
{(close: () => void) => {
return (
<FieldAddForm
fields={data.map(({ eventKey, eventDataType }) => ({
name: eventKey,
fields={data.map(({ dataKey, eventDataType }) => ({
name: dataKey,
type: DATA_TYPES[eventDataType],
}))}
group={group}

View File

@ -15,7 +15,6 @@ export const labels = defineMessages({
username: { id: 'label.username', defaultMessage: 'Username' },
password: { id: 'label.password', defaultMessage: 'Password' },
role: { id: 'label.role', defaultMessage: 'Role' },
admin: { id: 'label.admin', defaultMessage: 'Admin' },
user: { id: 'label.user', defaultMessage: 'User' },
viewOnly: { id: 'label.view-only', defaultMessage: 'View only' },
manage: { id: 'label.manage', defaultMessage: 'Manage' },

View File

@ -66,7 +66,7 @@ export function FilterTags({
}
const label = fields.find(f => f.name === key)?.label;
const { operator, value } = parseParameterValue(params[key]);
const paramValue = isSearchOperator(operator) ? formatValue(value, key) : value;
const paramValue = isSearchOperator(operator) ? value : formatValue(value, key);
return (
<PopupTrigger key={key}>

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Add website",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Last {x} days",
"label.last-hours": "Last {x} hours",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Settings",
"label.share-url": "Share URL",
"label.single-day": "Single day",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unique visitors",
"label.unknown": "Unknown",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Username",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "View details",
"label.view-only": "View only",
"label.views": "Views",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitors",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "أضِف",
"label.add-description": "أضِف وصف",
"label.add-member": "أضِف عضو",
"label.add-step": "Add step",
"label.add-website": "إضافة موقع",
"label.admin": "مدير",
"label.after": "يعد",
@ -89,6 +90,7 @@
"label.laptop": "لابتوب",
"label.last-days": "آخر {x} يوم/ايام",
"label.last-hours": "آخر {x} ساعة",
"label.last-months": "Last {x} months",
"label.leave": "غادر",
"label.leave-team": "مغادرة المجموعة",
"label.less-than": "أقل مِن",
@ -150,6 +152,7 @@
"label.settings": "الإعدادات",
"label.share-url": "مشاركة الرابط",
"label.single-day": "يوم واحد",
"label.steps": "Steps",
"label.sum": "المجموع",
"label.tablet": "تابلت",
"label.team": "الفريق",
@ -179,17 +182,22 @@
"label.unique-visitors": "زائرون فريدون",
"label.unknown": "غير معروف",
"label.untitled": "بدون عنوان",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "المستخدم",
"label.username": "اسم المستخدم",
"label.users": "المستخدمين",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "القيمة",
"label.view": "عرض",
"label.view-details": "عرض التفاصيل",
"label.view-only": "عرض فقط",
"label.views": "المشاهدات",
"label.visitors": "زائر",
"label.views-per-visit": "Views per visit",
"label.visitors": "الزوار",
"label.visits": "Visits",
"label.website": "الموقع",
"label.website-id": "معرّف الموقع",
"label.websites": "المواقع",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Дадаць сайт",
"label.admin": "Адміністратар",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Ноўтбук",
"label.last-days": "Апошнія {x} дні",
"label.last-hours": "Апошнія {x} гадзіны",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Налады",
"label.share-url": "Падзяліцца спасылкай",
"label.single-day": "Адзін дзень",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Планшэт",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Унікальныя наведвальнікі",
"label.unknown": "Невядома",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Імя карыстальніка",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Пабачыць дэталі",
"label.view-only": "View only",
"label.views": "Прагляды",
"label.views-per-visit": "Views per visit",
"label.visitors": "Наведвальнікі",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Сайты",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "ওয়েবসাইট যুক্ত করুন",
"label.admin": "অ্যাডমিন",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "ল্যাপটপ",
"label.last-days": "শেষ {x} দিন",
"label.last-hours": "শেষ {x} ঘন্টা",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "সেটিংস",
"label.share-url": "ইউআরএল শেয়ার করুন",
"label.single-day": "একদিন",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "ট্যাবলেট",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "অনন্য ভিজিটর",
"label.unknown": "অজানা",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "ব্যবহারকারীর নাম",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "বিস্তারিত দেখুন",
"label.view-only": "View only",
"label.views": "ভিউস",
"label.views-per-visit": "Views per visit",
"label.visitors": "পরিদর্শনার্থী",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "সবগুলো ওয়েবসাইট",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Afegeix lloc web",
"label.admin": "Administrador",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Portàtil",
"label.last-days": "Últims {x} dies",
"label.last-hours": "Últimes {x} hores",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Configuració",
"label.share-url": "Enllaç per compartir",
"label.single-day": "Un sol dia",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tauleta",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitants únics",
"label.unknown": "Desconegut",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Nom d'usuari",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Veure els detalls",
"label.view-only": "View only",
"label.views": "Vistes",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitants",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Llocs web",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Přidat web",
"label.admin": "Administrátor",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Přenosný počítač",
"label.last-days": "Posledních {x} dnů",
"label.last-hours": "Posledních {x} hodin",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Nastavení",
"label.share-url": "Sdílet URL",
"label.single-day": "Jeden den",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Jedinečné návštěvy",
"label.unknown": "Neznámý",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Uživatelské jméno",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Zobrazit detaily",
"label.view-only": "View only",
"label.views": "Zobrazení",
"label.views-per-visit": "Views per visit",
"label.visitors": "Návštěvy",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Weby",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Tilføj hjemmeside",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Sidste {x} dage",
"label.last-hours": "Sidste {x} timer",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Indstillinger",
"label.share-url": "Del URL",
"label.single-day": "Enkelt dag",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unikke besøgende",
"label.unknown": "Ukendt",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Brugernavn",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Vis detajler",
"label.view-only": "View only",
"label.views": "Visninger",
"label.views-per-visit": "Views per visit",
"label.visitors": "Besøgende",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Hjemmesider",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Websiite hinzuefüege",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Letzti {x} Täg",
"label.last-hours": "Letzti {x} Stunde",
"label.last-months": "Last {x} months",
"label.leave": "Verlah",
"label.leave-team": "Team verlah",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Istellige",
"label.share-url": "Freigab-URL",
"label.single-day": "Ein Tag",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Eidütigi Bsuecher",
"label.unknown": "Unbekannt",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Benutzer",
"label.username": "Benutzername",
"label.users": "Benutzer",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "Azeige",
"label.view-details": "Details azeige",
"label.view-only": "View only",
"label.views": "Ufrüef",
"label.views-per-visit": "Views per visit",
"label.visitors": "Bsuecher",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Websiite ID",
"label.websites": "Websiite",

View File

@ -5,6 +5,7 @@
"label.add": "Hinzufügen",
"label.add-description": "Beschreibung hinzufügen",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Website hinzufügen",
"label.admin": "Administrator",
"label.after": "Nach",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Letzte {x} Tage",
"label.last-hours": "Letzte {x} Stunden",
"label.last-months": "Last {x} months",
"label.leave": "Verlassen",
"label.leave-team": "Team verlassen",
"label.less-than": "Kleiner als",
@ -150,6 +152,7 @@
"label.settings": "Einstellungen",
"label.share-url": "Freigabe-URL",
"label.single-day": "Ein Tag",
"label.steps": "Steps",
"label.sum": "Summe",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Eindeutige Besucher",
"label.unknown": "Unbekannt",
"label.untitled": "Unbenannt",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Benutzer",
"label.username": "Benutzername",
"label.users": "Benutzer",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Wert",
"label.view": "Anzeigen",
"label.view-details": "Details anzeigen",
"label.view-only": "Nur ansehen",
"label.views": "Aufrufe",
"label.views-per-visit": "Views per visit",
"label.visitors": "Besucher",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Προσθήκη ιστότοπου",
"label.admin": "Διαχειριστής",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Λάπτοπ",
"label.last-days": "Τελευταίες {x} ημέρες",
"label.last-hours": "Τελευταίες {x} ώρες",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Ρυθμίσεις",
"label.share-url": "Κοινοποίηση διεύθυνσης URL",
"label.single-day": "Ημερήσια",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Τάμπλετ",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Μοναδικοί επισκέπτες",
"label.unknown": "Άγνωστο",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Όνομα χρήστη",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Λεπτομέρειες",
"label.view-only": "View only",
"label.views": "Προβολές",
"label.views-per-visit": "Views per visit",
"label.visitors": "Επισκέπτες",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Ιστότοποι",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Add website",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Last {x} days",
"label.last-hours": "Last {x} hours",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Settings",
"label.share-url": "Share URL",
"label.single-day": "Single day",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unique visitors",
"label.unknown": "Unknown",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Username",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "View details",
"label.view-only": "View only",
"label.views": "Views",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitors",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Add website",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Last {x} days",
"label.last-hours": "Last {x} hours",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Settings",
"label.share-url": "Share URL",
"label.single-day": "Single day",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unique visitors",
"label.unknown": "Unknown",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Username",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "View details",
"label.view-only": "View only",
"label.views": "Views",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitors",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "Añadir",
"label.add-description": "Añadir descripción",
"label.add-member": "Añadir miembro",
"label.add-step": "Add step",
"label.add-website": "Nuevo sitio web",
"label.admin": "Administrador",
"label.after": "Después",
@ -89,6 +90,7 @@
"label.laptop": "Portátil",
"label.last-days": "Últimos {x} días",
"label.last-hours": "Últimas {x} horas",
"label.last-months": "Last {x} months",
"label.leave": "Abandonar",
"label.leave-team": "Abandonar equipo",
"label.less-than": "Menor que",
@ -150,6 +152,7 @@
"label.settings": "Ajustes",
"label.share-url": "Compartir URL",
"label.single-day": "Un solo día",
"label.steps": "Steps",
"label.sum": "Suma",
"label.tablet": "Tableta",
"label.team": "Equipo",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitantes únicos",
"label.unknown": "Desconocida",
"label.untitled": "Sin título",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Usuario",
"label.username": "Nombre de usuario",
"label.users": "Usuarios",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Valor",
"label.view": "Visualizar",
"label.view-details": "Ver detalles",
"label.view-only": "Ver sólo",
"label.views": "Vistas",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitantes",
"label.visits": "Visits",
"label.website": "Sitio web",
"label.website-id": "ID del sitio web",
"label.websites": "Sitios web",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "افزودن وب‌سایت",
"label.admin": "مدیر",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "لپ‌تاپ",
"label.last-days": "لیست {x} روز گذشته",
"label.last-hours": "لیست {x} ساعت گذشته",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "تنظیمات",
"label.share-url": "به اشتراک گذاری URL",
"label.single-day": "یک روز",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "تبلت",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "بازدیدکننده‌های یکتا",
"label.unknown": "ناشناخته",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "نام کاربری",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "مشاهده‌ی جزئیات",
"label.view-only": "View only",
"label.views": "بازدید",
"label.views-per-visit": "Views per visit",
"label.visitors": "بازدیدکننده",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "وب‌سایت‌ها",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Lisää verkkosivu",
"label.admin": "Järjestelmänvalvoja",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Kannettava tietokone",
"label.last-days": "Viimeisimmät {x} päivää",
"label.last-hours": "Viimeisimmät {x} tuntia",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Asetukset",
"label.share-url": "Jaa URL",
"label.single-day": "Yksi päivä",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tabletti",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Yksittäiset kävijät",
"label.unknown": "Tuntematon",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Käyttäjänimi",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Katso tiedot",
"label.view-only": "View only",
"label.views": "Näyttökerrat",
"label.views-per-visit": "Views per visit",
"label.visitors": "Vierailijat",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Verkkosivut",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Legg heimasíðu afturat",
"label.admin": "Fyrisitari",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Fartelda",
"label.last-days": "Seinastu {x} dagarnar",
"label.last-hours": "Seinastu {x} tímarnar",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Stillingar",
"label.share-url": "Deil leinku",
"label.single-day": "Einkultur dagur",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Teldil",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Einsýna vitjanir",
"label.unknown": "Ókent",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Brúkaranavn",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Vís frágreiðing",
"label.view-only": "View only",
"label.views": "Sýningar",
"label.views-per-visit": "Views per visit",
"label.visitors": "Vitjandi",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Heimasíður",

View File

@ -5,6 +5,7 @@
"label.add": "Ajouter",
"label.add-description": "Ajouter une description",
"label.add-member": "Ajouter un membre",
"label.add-step": "Ajouter une étape",
"label.add-website": "Ajouter un site",
"label.admin": "Administrateur",
"label.after": "Après",
@ -89,6 +90,7 @@
"label.laptop": "Portable",
"label.last-days": "{x} derniers jours",
"label.last-hours": "{x} dernières heures",
"label.last-months": "{x} derniers mois",
"label.leave": "Quitter",
"label.leave-team": "Quitter l'équipe",
"label.less-than": "Inférieur à",
@ -107,7 +109,7 @@
"label.name": "Nom",
"label.new-password": "Nouveau mot de passe",
"label.none": "Aucun",
"label.number-of-records": "{x} {x, plural, one {record} other {records}}",
"label.number-of-records": "{x} {x, plural, one {enregistrement} other {enregistrements}}",
"label.ok": "OK",
"label.os": "OS",
"label.overview": "Vue d'ensemble",
@ -136,7 +138,7 @@
"label.reset": "Réinitialiser",
"label.reset-website": "Réinitialiser les statistiques",
"label.retention": "Rétention",
"label.retention-description": "Mesure de l'atractivité du site en visualisant les taux d'utilisateurs qui reviennent.",
"label.retention-description": "Mesure de l'attractivité du site en visualisant les taux de visiteurs qui reviennent.",
"label.role": "Rôle",
"label.run-query": "Éxécuter la requête",
"label.save": "Enregistrer",
@ -150,6 +152,7 @@
"label.settings": "Paramètres",
"label.share-url": "URL de partage",
"label.single-day": "Journée",
"label.steps": "Étapes",
"label.sum": "Somme",
"label.tablet": "Tablette",
"label.team": "Équipe",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visiteurs uniques",
"label.unknown": "Inconnu",
"label.untitled": "Sans titre",
"label.update": "Modifier",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Utilisateur",
"label.username": "Nom d'utilisateur",
"label.users": "Utilisateurs",
"label.utm": "UTM",
"label.utm-description": "Suivi de campagnes via les paramètres UTM.",
"label.value": "Valeur",
"label.view": "Voir",
"label.view-details": "Voir les détails",
"label.view-only": "Consultation",
"label.views": "Vues",
"label.views-per-visit": "Vues par visite",
"label.visitors": "Visiteurs",
"label.visits": "Visites",
"label.website": "Site",
"label.website-id": "ID de site",
"label.websites": "Sites",
@ -230,7 +238,7 @@
"message.transfer-team-website-to-user": "Transférer ce site sur votre compte ?",
"message.transfer-user-website-to-team": "Choisir l'équipe à laquelle transférer ce site.",
"message.transfer-website": "Transférer la propriété du site sur votre compte ou à une autre équipe.",
"message.triggered-event": "Triggered event",
"message.triggered-event": "Évènement déclenché",
"message.user-deleted": "Utilisateur supprimé.",
"message.viewed-page": "Page vue",
"message.visitor-log": "Visiteur de {country} utilisant {browser} sur {os} {device}",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Engadir sitio web",
"label.admin": "Administradora",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Portátil",
"label.last-days": "Últimos {x} días",
"label.last-hours": "Últimas {x} horas",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Axustes",
"label.share-url": "Compartir URL",
"label.single-day": "Un só día",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tableta",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitas únicas",
"label.unknown": "Descoñecido",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Identificador",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Ver detalles",
"label.view-only": "View only",
"label.views": "Visualizacións",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitantes",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Sitios web",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "הוספת אתר",
"label.admin": "מנהל",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "לפטופ",
"label.last-days": "{x} ימים אחרונים",
"label.last-hours": "{x} שעות אחרונות",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "הגדרות",
"label.share-url": "שיתוף URL",
"label.single-day": "יום בודד",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "טאבלט",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "מבקרים ייחודיים",
"label.unknown": "לא ידוע",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "שם משתמש",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "פרטים נוספים",
"label.view-only": "View only",
"label.views": "צפיות",
"label.views-per-visit": "Views per visit",
"label.visitors": "מבקרים",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "אתרים",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "वेबसाइट",
"label.admin": "प्रशासक",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "लैपटॉप",
"label.last-days": "पिछले {x} दिन",
"label.last-hours": "पिछले {x} घंटे",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "समायोजन",
"label.share-url": "यूआरएल साझा करें",
"label.single-day": "एक दिन",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "टैबलेट",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "अद्वितीय आगंतुकों",
"label.unknown": "अज्ञात",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "उपयोगकर्ता नाम",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "विवरण देखें",
"label.view-only": "View only",
"label.views": "दृश्य",
"label.views-per-visit": "Views per visit",
"label.visitors": "आगंतुकों",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "वेबसाइटों",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Dodaj web stranicu",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Zadnjih {x} dana",
"label.last-hours": "Zadnjih {x} sati",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Postavke",
"label.share-url": "Podijeli poveznicu",
"label.single-day": "Jedan dan",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unique visitors",
"label.unknown": "Nepoznato",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Korisničko ime",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Pogledaj detalje",
"label.view-only": "View only",
"label.views": "Views",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitors",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Web stranice",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Weboldal hozzáadása",
"label.admin": "Adminisztrátor",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Legutóbbi {x} nap",
"label.last-hours": "Legutóbbi {x} óra",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Beállítások",
"label.share-url": "URL megosztása",
"label.single-day": "Egy nap",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Táblagép",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Egyedi látogatók",
"label.unknown": "Ismeretlen",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Felhasználónév",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Részletek",
"label.view-only": "View only",
"label.views": "Megtekintések",
"label.views-per-visit": "Views per visit",
"label.visitors": "Látogatók",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Weboldalak",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Tambah situs web",
"label.admin": "Pengelola",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "{x} hari terakhir",
"label.last-hours": "{x} jam terakhir",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Pengaturan",
"label.share-url": "Bagikan URL",
"label.single-day": "Sehari",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Pengunjung unik",
"label.unknown": "Tidak diketahui",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Nama pengguna",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Lihat Detil",
"label.view-only": "View only",
"label.views": "Tampilan",
"label.views-per-visit": "Views per visit",
"label.visitors": "Pengunjung",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Situs web",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Aggiungi sito",
"label.admin": "Amministratore",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Portatile",
"label.last-days": "Ultimi {x} giorni",
"label.last-hours": "Ultime {x} ore",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Impostazioni",
"label.share-url": "Condividi link",
"label.single-day": "Singolo giorno",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitatori unici",
"label.unknown": "Sconosciuto",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Nome utente",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Vedi dettagli",
"label.view-only": "View only",
"label.views": "Visualizzazioni",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitatori",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Siti web",

View File

@ -5,6 +5,7 @@
"label.add": "追加",
"label.add-description": "説明を追加",
"label.add-member": "メンバーの追加",
"label.add-step": "Add step",
"label.add-website": "Webサイトの追加",
"label.admin": "管理者",
"label.after": "直後",
@ -89,6 +90,7 @@
"label.laptop": "ートPC",
"label.last-days": "過去{x}日間",
"label.last-hours": "過去{x}時間",
"label.last-months": "Last {x} months",
"label.leave": "離脱",
"label.leave-team": "チームを離脱",
"label.less-than": "未満",
@ -150,6 +152,7 @@
"label.settings": "設定",
"label.share-url": "共有URL",
"label.single-day": "一日",
"label.steps": "Steps",
"label.sum": "合計",
"label.tablet": "タブレット",
"label.team": "チーム",
@ -179,17 +182,22 @@
"label.unique-visitors": "ユニーク訪問者数",
"label.unknown": "不明",
"label.untitled": "無題",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URL",
"label.user": "ユーザー",
"label.username": "ユーザー名",
"label.users": "ユーザー",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "値",
"label.view": "表示",
"label.view-details": "詳細を表示",
"label.view-only": "表示のみ",
"label.views": "表示",
"label.views-per-visit": "Views per visit",
"label.visitors": "訪問者",
"label.visits": "Visits",
"label.website": "Webサイト",
"label.website-id": "WebサイトID",
"label.websites": "Webサイト",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "បន្ថែមគេហទំព័រ",
"label.admin": "អ្នកគ្រប់គ្រង",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "កុំព្យូទ័រយួរដៃ",
"label.last-days": "{x} ថ្ងៃមុន",
"label.last-hours": "{x} ម៉ោងមុន",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "ការកំណត់",
"label.share-url": "ចែករំលែក URL",
"label.single-day": "ថ្ងៃតែមួយ",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "ថេប្លេត",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "អ្នកចូលមើលម្នាក់ៗ",
"label.unknown": "មិនស្គាល់",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "ឈ្មោះ​អ្នកប្រើប្រាស់",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "មើលព័ត៌មានលម្អិត",
"label.view-only": "View only",
"label.views": "អ្នកចូលមើល",
"label.views-per-visit": "Views per visit",
"label.visitors": "អ្នកទស្សនា",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "គេហទំព័រ",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "웹사이트 추가",
"label.admin": "관리자",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "노트북",
"label.last-days": "최근 {x} 일간",
"label.last-hours": "최근 {x} 시간",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "설정",
"label.share-url": "공유 URL",
"label.single-day": "하루",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "태블릿",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "순방문자(UV)",
"label.unknown": "알 수 없음",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "사용자명",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "상세보기",
"label.view-only": "View only",
"label.views": "조회수",
"label.views-per-visit": "Views per visit",
"label.visitors": "방문객",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "웹사이트",

View File

@ -5,8 +5,9 @@
"label.add": "Pridėti",
"label.add-description": "Pridėti aprašymą",
"label.add-member": "Pridėti narį",
"label.add-step": "Add step",
"label.add-website": "Pridėti svetainę",
"label.administrator": "Administratorius",
"label.admin": "Administrator",
"label.after": "Po",
"label.all": "Visi",
"label.all-time": "Visas laikotarpis",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "{x, plural, =0 {Paskutinės # dienų} zero {Paskutinės # dienų} one {Paskutinė diena} other {Paskutinės # dienos}}",
"label.last-hours": "{x, plural, =0 {Paskutinės # valandų} zero {Paskutinės # valandų} one {Paskutinė # valanda} other {Paskutinės # valandos}}",
"label.last-months": "Last {x} months",
"label.leave": "Išeiti",
"label.leave-team": "Išeiti iš komandos",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Nustatymai",
"label.share-url": "Pasidalinti nuoroda",
"label.single-day": "Viena diena",
"label.steps": "Steps",
"label.sum": "Suma",
"label.tablet": "Planšetė",
"label.team": "Komanda",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unikalūs lankytojai",
"label.unknown": "Nežinoma",
"label.untitled": "Be pavadinimo",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Vartotojas",
"label.username": "Vartotojo vardas",
"label.users": "Vartotojai",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "Atidaryti",
"label.view-details": "Peržiūrėti detaliau",
"label.view-only": "Tik peržiūrėti",
"label.views": "Peržiūros",
"label.views-per-visit": "Views per visit",
"label.visitors": "Lankytojai",
"label.visits": "Visits",
"label.website": "Svetainė",
"label.website-id": "Svetainės ID",
"label.websites": "Svetainės",

View File

@ -5,6 +5,7 @@
"label.add": "Нэмэх",
"label.add-description": "Тайлбар нэмэх",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Веб нэмэх",
"label.admin": "Админ",
"label.after": "Хойно",
@ -89,6 +90,7 @@
"label.laptop": "Зөөврийн компьютер",
"label.last-days": "Сүүлийн {x} хоног",
"label.last-hours": "Сүүлийн {x} цаг",
"label.last-months": "Last {x} months",
"label.leave": "Гарах",
"label.leave-team": "Багаас гарах",
"label.less-than": "Бага",
@ -150,6 +152,7 @@
"label.settings": "Тохиргоо",
"label.share-url": "Хуваалцах холбоос",
"label.single-day": "Нэг өдөр",
"label.steps": "Steps",
"label.sum": "Нийлбэр",
"label.tablet": "Таблет",
"label.team": "Баг",
@ -179,17 +182,22 @@
"label.unique-visitors": "Зочин",
"label.unknown": "Тодорхойгүй",
"label.untitled": "Гарчиггүй",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Хэрэглэгч",
"label.username": "Хэрэглэгчийн нэр",
"label.users": "Хэрэглэгчид",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Утга",
"label.view": "Харах",
"label.view-details": "Дэлгэрүүлж харах",
"label.view-only": "Зөвхөн үзэх",
"label.views": "Үзсэн",
"label.views-per-visit": "Views per visit",
"label.visitors": "Зочин",
"label.visits": "Visits",
"label.website": "Веб",
"label.website-id": "Вебийн ID",
"label.websites": "Вебүүд",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Tambah laman web",
"label.admin": "Pentadbir",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "{x} hari lepas",
"label.last-hours": "{x} jam lepas",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Tetapan",
"label.share-url": "Kongsikan URL",
"label.single-day": "Satu hari",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Pelawat unik",
"label.unknown": "Tidak diketahui",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Nama pengguna",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Lihat butiran",
"label.view-only": "View only",
"label.views": "Lawatan",
"label.views-per-visit": "Views per visit",
"label.visitors": "Pelawat",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Laman web",

View File

@ -5,6 +5,7 @@
"label.add": "ထပ်ထည့်မည်",
"label.add-description": "အကြောင်းအရာဖော်ပြချက် ထည့်မည်",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "ဝက်ဘ်ဆိုဒ်ထည့်မည်",
"label.admin": "အက်ဒမင်",
"label.after": "ပြီးနောက်",
@ -89,6 +90,7 @@
"label.laptop": "လက်တော့ပ်",
"label.last-days": "လွန်ခဲ့သော {x} ရက်က",
"label.last-hours": "လွန်ခဲ့သော {x} နာရီက",
"label.last-months": "Last {x} months",
"label.leave": "ထွက်မည်",
"label.leave-team": "အသင်းမှထွက်မည်",
"label.less-than": "ထက်ပို၍ငယ်သည်",
@ -150,6 +152,7 @@
"label.settings": "ဆက်တင်များ",
"label.share-url": "URL ကိုရှဲမည်",
"label.single-day": "တစ်ရက်အတွင်း",
"label.steps": "Steps",
"label.sum": "ပေါင်းလဒ်",
"label.tablet": "တက်ဘလက်",
"label.team": "အသင်း",
@ -179,17 +182,22 @@
"label.unique-visitors": "ဝင်ရောက်သူ (ထပ်ခြင်းမရှိ)",
"label.unknown": "မသိသော",
"label.untitled": "ခေါင်းစဉ်မရှိ",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URL များ",
"label.user": "အသုံးပြုသူ",
"label.username": "အသုံးပြုသူအမည်",
"label.users": "အသုံးပြုသူများ",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "တန်ဖိုး",
"label.view": "ဝင်ရောက်ကြည့်ရှုမှု",
"label.view-details": "အသေးစိတ်ကို ကြည့်ရှုမည်",
"label.view-only": "ဝင်ရောက်ကြည့်ရှုမှုများသာ",
"label.views": "ဝင်ရောက်ကြည့်ရှုမှုများ",
"label.views-per-visit": "Views per visit",
"label.visitors": "ဝင်ရောက်ကြည့်ရှုသူများ",
"label.visits": "Visits",
"label.website": "ဝက်ဘ်ဆိုဒ်",
"label.website-id": "ဝက်ဘ်ဆိုဒ် အိုင်ဒီ",
"label.websites": "ဝက်ဘ်ဆိုဒ်များ",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Legg til nettsted",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Bærbar",
"label.last-days": "Siste {x} dager",
"label.last-hours": "Siste {x} timer",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Innstillinger",
"label.share-url": "Del URL",
"label.single-day": "Enkelt dag",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Nettbrett",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unike besøkende",
"label.unknown": "Ukjent",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Brukernavn",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Vis detaljer",
"label.view-only": "View only",
"label.views": "Visninger",
"label.views-per-visit": "Views per visit",
"label.visitors": "Besøkende",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Nettsteder",

View File

@ -5,8 +5,9 @@
"label.add": "Toevoegen",
"label.add-description": "Omschrijving toevoegen",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Website koppelen",
"label.administrator": "Beheerder",
"label.admin": "Administrator",
"label.after": "Na",
"label.all": "Alles",
"label.all-time": "Onbeperkt",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Laatste {x} dagen",
"label.last-hours": "Laatste {x} uur",
"label.last-months": "Last {x} months",
"label.leave": "Verlaten",
"label.leave-team": "Verlaat team",
"label.less-than": "Minder dan",
@ -150,6 +152,7 @@
"label.settings": "Instellingen",
"label.share-url": "URL delen",
"label.single-day": "Enkele dag",
"label.steps": "Steps",
"label.sum": "Som",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unieke bezoekers",
"label.unknown": "Onbekend",
"label.untitled": "Ongetiteld",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URL's",
"label.user": "Gebruiker",
"label.username": "Gebruikersnaam",
"label.users": "Gebruikers",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Waarde",
"label.view": "Weergave",
"label.view-details": "Meer details",
"label.view-only": "Alleen inzien",
"label.views": "Weergaven",
"label.views-per-visit": "Views per visit",
"label.visitors": "Bezoekers",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "Dodaj",
"label.add-description": "Dodaj opis",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Dodaj witrynę",
"label.admin": "Administrator",
"label.after": "Po",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Ostatnie {x} dni",
"label.last-hours": "Ostatnie {x} godzin",
"label.last-months": "Last {x} months",
"label.leave": "Opuść",
"label.leave-team": "Opuść zespół",
"label.less-than": "Mniejsze niż",
@ -150,6 +152,7 @@
"label.settings": "Ustawienia",
"label.share-url": "Udostępnij adres URL",
"label.single-day": "W tym dniu",
"label.steps": "Steps",
"label.sum": "Suma",
"label.tablet": "Tablet",
"label.team": "Zespół",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unikalni odwiedzający",
"label.unknown": "Nieznany",
"label.untitled": "Bez tytułu",
"label.update": "Update",
"label.url": "Link",
"label.urls": "Linki",
"label.user": "Użytkownik",
"label.username": "Nazwa użytkownika",
"label.users": "Użytkownicy",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Wartość",
"label.view": "Zobacz",
"label.view-details": "Pokaż szczegóły",
"label.view-only": "Tylko do odczytu",
"label.views": "Wyświetlenia",
"label.views-per-visit": "Views per visit",
"label.visitors": "Odwiedzający",
"label.visits": "Visits",
"label.website": "Witryna",
"label.website-id": "ID witryny",
"label.websites": "Witryny",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Adicionar site",
"label.admin": "Administrador",
"label.after": "Depois",
@ -89,6 +90,7 @@
"label.laptop": "Notebook",
"label.last-days": "Últimos {x} dias",
"label.last-hours": "Últimas {x} horas",
"label.last-months": "Last {x} months",
"label.leave": "Sair",
"label.leave-team": "Sair do time",
"label.less-than": "Menor que",
@ -150,6 +152,7 @@
"label.settings": "Configurações",
"label.share-url": "Link de compartilhamento",
"label.single-day": "Dia específico",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Time",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitantes únicos",
"label.unknown": "Desconhecido",
"label.untitled": "Sem título",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Usuário",
"label.username": "Nome de usuário",
"label.users": "Usuários",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Valor",
"label.view": "Ver",
"label.view-details": "Ver detalhes",
"label.view-only": "Somente visualização",
"label.views": "Visualizações",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitantes",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "ID do Site",
"label.websites": "Sites",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Adicionar website",
"label.admin": "Administrador",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Portátil",
"label.last-days": "Últimos {x} dias",
"label.last-hours": "Últimas {x} horas",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Definições",
"label.share-url": "Partilhar link",
"label.single-day": "Dia único",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Visitantes únicos",
"label.unknown": "Desconhecido",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Nome de utilizador",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Ver detalhes",
"label.view-only": "View only",
"label.views": "Visualizações",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitantes",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "Adaugă",
"label.add-description": "Adaugă descriere",
"label.add-member": "Adaugă membru",
"label.add-step": "Add step",
"label.add-website": "Adăugare site web",
"label.admin": "Administrator",
"label.after": "După",
@ -35,6 +36,7 @@
"label.create-team": "Crează echipă",
"label.create-user": "Crează utilizator",
"label.created": "Creat",
"label.created-by": "Created By",
"label.current-password": "Parola curentă",
"label.custom-range": "Interval personalizat",
"label.dashboard": "Tablou de bord",
@ -88,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "Ultimele {x} zile",
"label.last-hours": "Ultimele {x} ore",
"label.last-months": "Last {x} months",
"label.leave": "Părăsește",
"label.leave-team": "Părăsește echipa",
"label.less-than": "Mai puțin decât",
@ -149,6 +152,7 @@
"label.settings": "Setări",
"label.share-url": "Partajare URL",
"label.single-day": "O singură zi",
"label.steps": "Steps",
"label.sum": "Sumă",
"label.tablet": "Tabletă",
"label.team": "Echipă",
@ -178,17 +182,22 @@
"label.unique-visitors": "Vizitatori unici",
"label.unknown": "Necunoscut",
"label.untitled": "Fără titlu",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Utilizator",
"label.username": "Nume utilizator",
"label.users": "Utilizatori",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Valoare",
"label.view": "Vizualizare",
"label.view-details": "Vizualizare detalii",
"label.view-only": "Doar vizualizare",
"label.views": "Vizualizări",
"label.views-per-visit": "Views per visit",
"label.visitors": "Vizitatori",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "ID Website",
"label.websites": "Site-uri web",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Добавить сайт",
"label.admin": "Администратор",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Ноутбук",
"label.last-days": "Последние {x} дней",
"label.last-hours": "Последние {x} часа",
"label.last-months": "Last {x} months",
"label.leave": "Уйти",
"label.leave-team": "Покинуть команду",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Настройки",
"label.share-url": "Поделиться ссылкой",
"label.single-day": "Один день",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Планшет",
"label.team": "Команда",
@ -179,17 +182,22 @@
"label.unique-visitors": "Уникальные посетители",
"label.unknown": "Неизвестно",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "Пользователь",
"label.username": "Имя пользователя",
"label.users": "Пользователи",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "Просмотреть",
"label.view-details": "Посмотреть детали",
"label.view-only": "View only",
"label.views": "Просмотры",
"label.views-per-visit": "Views per visit",
"label.visitors": "Посетители",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "ID сайта",
"label.websites": "Сайты",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "වෙබ් අඩවිය එක් කරන්න",
"label.admin": "Administrator",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "අන්තිම {x} දින",
"label.last-hours": "අන්තිම {x} පැය",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "සැකසුම්",
"label.share-url": "බෙදාගැනීමේ URL",
"label.single-day": "තනි දවස",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unique visitors",
"label.unknown": "නොදනී",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "පරිශීලක නාමය",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "තොරතුරු පෙන්වන්න",
"label.view-only": "View only",
"label.views": "Views",
"label.views-per-visit": "Views per visit",
"label.visitors": "Visitors",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "වෙබ් අඩවි",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Pridať web",
"label.admin": "Administrátor",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Prenosný počítač",
"label.last-days": "Posledných {x} dní",
"label.last-hours": "Posledných {x} hodín",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Nastavenia",
"label.share-url": "Zdielanie URL",
"label.single-day": "Jeden deň",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Jedinečné návštevy",
"label.unknown": "Neznámý",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Užívateľské meno",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Zobraziť detaily",
"label.view-only": "View only",
"label.views": "Zobrazení",
"label.views-per-visit": "Views per visit",
"label.visitors": "Návštevy",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Weby",

View File

@ -5,6 +5,7 @@
"label.add": "Dodaj",
"label.add-description": "Dodaj opis",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Dodaj spletno mesto",
"label.admin": "Administrator",
"label.after": "Po",
@ -89,6 +90,7 @@
"label.laptop": "Prenosni računalnik",
"label.last-days": "Zadnjih {x} dni",
"label.last-hours": "Zadnjih {x} ur",
"label.last-months": "Last {x} months",
"label.leave": "Zapusti",
"label.leave-team": "Zapusti ekipo",
"label.less-than": "Manjše kot",
@ -150,6 +152,7 @@
"label.settings": "Nastavitve",
"label.share-url": "Deli povezavo",
"label.single-day": "En dan",
"label.steps": "Steps",
"label.sum": "Seštevek",
"label.tablet": "Tablični računalnik",
"label.team": "Ekipa",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unikatni obiskovalci",
"label.unknown": "Neznano",
"label.untitled": "Brez naslova",
"label.update": "Update",
"label.url": "Povezava",
"label.urls": "Povezave",
"label.user": "Uporabnik",
"label.username": "Uporabniško ime",
"label.users": "Uporabniki",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Vrednost",
"label.view": "Poglej",
"label.view-details": "Poglej podrobnosti",
"label.view-only": "Samo ogledovanje",
"label.views": "Obiski",
"label.views-per-visit": "Views per visit",
"label.visitors": "Obiskovalci",
"label.visits": "Visits",
"label.website": "Spletno mesto",
"label.website-id": "ID spletnega mesta",
"label.websites": "Spletnih mest",

View File

@ -5,6 +5,7 @@
"label.add": "Lägg till",
"label.add-description": "Lägg till beskrivning",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Lägg till webbplats",
"label.admin": "Administratör",
"label.after": "Efter",
@ -89,6 +90,7 @@
"label.laptop": "Bärbar",
"label.last-days": "Senaste {x} dagarna",
"label.last-hours": "Senaste {x} timmarna",
"label.last-months": "Last {x} months",
"label.leave": "Lämna",
"label.leave-team": "Lämna team",
"label.less-than": "Mindre än",
@ -150,6 +152,7 @@
"label.settings": "Inställningar",
"label.share-url": "Delningslänk",
"label.single-day": "En dag",
"label.steps": "Steps",
"label.sum": "Summa",
"label.tablet": "Surfplatta",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Unika besökare",
"label.unknown": "Okänt",
"label.untitled": "Namnlös",
"label.update": "Update",
"label.url": "Länk",
"label.urls": "Länkar",
"label.user": "Användare",
"label.username": "Användarnamn",
"label.users": "Användare",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Värde",
"label.view": "Visa",
"label.view-details": "Visa detaljer",
"label.view-only": "Endast visning",
"label.views": "Visningar",
"label.views-per-visit": "Views per visit",
"label.visitors": "Besökare",
"label.visits": "Visits",
"label.website": "Webbplats",
"label.website-id": "Webbplats ID",
"label.websites": "Webbplatser",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "வலைத்தளத்தைச் சேர்க்க",
"label.admin": "நிர்வாகியைச் சேர்க்க",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "மடிக்கணினி",
"label.last-days": "முந்தைய {x} நாட்கள்",
"label.last-hours": "முந்தைய {x} மணி",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "அமைப்புகள்",
"label.share-url": "வலைத்தள களத்தைப் பகிரவும்",
"label.single-day": "ஒரு நாள்",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "கையடக்க கணினி",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "தனிப்பட்ட பார்வையாளர்கள்",
"label.unknown": "தெரியாத",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "பயனர்பெயர்",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "விபரங்களை பார்",
"label.view-only": "View only",
"label.views": "பார்வைகள்",
"label.views-per-visit": "Views per visit",
"label.visitors": "பார்வையாளர்கள்",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "வலைத்தளங்கள்",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "เพิ่มเว็บไซต์",
"label.admin": "ผู้ดูแลระบบ",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "แล็ปท็อป",
"label.last-days": "{x} วันที่ผ่านมา",
"label.last-hours": "{x} ชั่วโมงที่ผ่านมา",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "ตั้งค่า",
"label.share-url": "แชร์ลิงก์",
"label.single-day": "วันที่",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "แท็บเล็ต",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "ผู้เข้าชม",
"label.unknown": "ไม่รู้จัก",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "ชื่อผู้ใช้",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "แสดงรายละเอียด",
"label.view-only": "View only",
"label.views": "การเข้าชม",
"label.views-per-visit": "Views per visit",
"label.visitors": "ผู้เข้าชม",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "เว็บไซต์",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Web sitesi ekle",
"label.admin": "Yönetici",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Dizüstü",
"label.last-days": "Son {x} gün",
"label.last-hours": "Son {x} saat",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Ayarlar",
"label.share-url": "Paylaşım adresi",
"label.single-day": "Tekil gün",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Tablet",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Tekil kullanıcı",
"label.unknown": "Bilinmeyen",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Kullanıcı adı",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Detayı incele",
"label.view-only": "View only",
"label.views": "Görüntüleme",
"label.views-per-visit": "Views per visit",
"label.visitors": "Ziyaretçi",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Web siteleri",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Додати сайт",
"label.admin": "Адміністратор",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Ноутбук",
"label.last-days": "Останні {x} днів",
"label.last-hours": "Останні {x} годин",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Налаштування",
"label.share-url": "Поділитися посилання",
"label.single-day": "Один день",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Планшет",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Унікальні відвідувачі",
"label.unknown": "Невідомо",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Ім'я користувача",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Переглянути деталі",
"label.view-only": "View only",
"label.views": "Перегляди",
"label.views-per-visit": "Views per visit",
"label.visitors": "Відвідувачі",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Сайти",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "ویب سائٹ کا اضافہ کریں",
"label.admin": "منتظم",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "لیپ ٹاپ",
"label.last-days": "پچھلے {x} دن",
"label.last-hours": "پچھلے {x} گھنٹے",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "ترتیبات",
"label.share-url": "URL کا اشتراک کریں",
"label.single-day": "ایک دن",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "ٹیبلیٹ",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "منفرد زائرین",
"label.unknown": "نامعلوم",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "صارف نام",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "تفصیلات دیکھیں",
"label.view-only": "View only",
"label.views": "مناظر",
"label.views-per-visit": "Views per visit",
"label.visitors": "زائرین",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "ویب سائٹس",

View File

@ -5,6 +5,7 @@
"label.add": "Add",
"label.add-description": "Add description",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "Thêm website",
"label.admin": "Quản trị",
"label.after": "After",
@ -89,6 +90,7 @@
"label.laptop": "Laptop",
"label.last-days": "{x} ngày gần nhất",
"label.last-hours": "{x} giờ gần nhất",
"label.last-months": "Last {x} months",
"label.leave": "Leave",
"label.leave-team": "Leave team",
"label.less-than": "Less than",
@ -150,6 +152,7 @@
"label.settings": "Cài đặt",
"label.share-url": "Chia sẻ URL",
"label.single-day": "Trong ngày",
"label.steps": "Steps",
"label.sum": "Sum",
"label.tablet": "Máy tính bảng",
"label.team": "Team",
@ -179,17 +182,22 @@
"label.unique-visitors": "Khách truy cập một lần",
"label.unknown": "Không rõ",
"label.untitled": "Untitled",
"label.update": "Update",
"label.url": "URL",
"label.urls": "URLs",
"label.user": "User",
"label.username": "Tên đăng nhập",
"label.users": "Users",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.view-details": "Xem chi tiết",
"label.view-only": "View only",
"label.views": "Xem",
"label.views-per-visit": "Views per visit",
"label.visitors": "Khách",
"label.visits": "Visits",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",

View File

@ -5,6 +5,7 @@
"label.add": "添加",
"label.add-description": "添加描述",
"label.add-member": "添加成员",
"label.add-step": "Add step",
"label.add-website": "添加网站",
"label.admin": "管理员",
"label.after": "之后",
@ -89,6 +90,7 @@
"label.laptop": "笔记本",
"label.last-days": "最近 {x} 天",
"label.last-hours": "最近 {x} 小时",
"label.last-months": "Last {x} months",
"label.leave": "离开",
"label.leave-team": "离开团队",
"label.less-than": "少于",
@ -150,6 +152,7 @@
"label.settings": "设置",
"label.share-url": "共享链接",
"label.single-day": "单日",
"label.steps": "Steps",
"label.sum": "总和",
"label.tablet": "平板",
"label.team": "团队",
@ -179,17 +182,22 @@
"label.unique-visitors": "独立访客",
"label.unknown": "未知",
"label.untitled": "未命名",
"label.update": "Update",
"label.url": "网址",
"label.urls": "网址",
"label.user": "用户",
"label.username": "用户名",
"label.users": "用户",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "值",
"label.view": "查看",
"label.view-details": "查看更多",
"label.view-only": "仅浏览量",
"label.views": "浏览量",
"label.views-per-visit": "Views per visit",
"label.visitors": "访客",
"label.visits": "Visits",
"label.website": "网站",
"label.website-id": "网站 ID",
"label.websites": "网站",

View File

@ -5,6 +5,7 @@
"label.add": "新增",
"label.add-description": "新增描述",
"label.add-member": "Add member",
"label.add-step": "Add step",
"label.add-website": "新增網站",
"label.admin": "管理員",
"label.after": "之後",
@ -89,6 +90,7 @@
"label.laptop": "筆記型電腦",
"label.last-days": "最近 {x} 天",
"label.last-hours": "最近 {x} 小時",
"label.last-months": "Last {x} months",
"label.leave": "離開",
"label.leave-team": "離開團隊",
"label.less-than": "小於",
@ -150,6 +152,7 @@
"label.settings": "設定",
"label.share-url": "分享網址",
"label.single-day": "單日",
"label.steps": "Steps",
"label.sum": "總和",
"label.tablet": "平板",
"label.team": "團隊",
@ -179,17 +182,22 @@
"label.unique-visitors": "獨立訪客",
"label.unknown": "未知",
"label.untitled": "無標題",
"label.update": "Update",
"label.url": "網址",
"label.urls": "網址",
"label.user": "使用者",
"label.username": "使用者名稱",
"label.users": "使用者",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "值",
"label.view": "檢視",
"label.view-details": "檢視詳細資訊",
"label.view-only": "僅供檢視",
"label.views": "檢視",
"label.views-per-visit": "Views per visit",
"label.visitors": "訪客",
"label.visits": "Visits",
"label.website": "網站",
"label.website-id": "網站 ID",
"label.websites": "網站",

View File

@ -123,9 +123,9 @@ export async function getLocation(ip: string, req: NextApiRequestCollect) {
}
}
export async function getClientInfo(req: NextApiRequestCollect, { screen }) {
export async function getClientInfo(req: NextApiRequestCollect) {
const userAgent = req.headers['user-agent'];
const ip = req.body.payload.ip || getIpAddress(req);
const ip = req.body?.payload?.ip || getIpAddress(req);
const location = await getLocation(ip, req);
const country = location?.country;
const subdivision1 = location?.subdivision1;
@ -133,7 +133,7 @@ export async function getClientInfo(req: NextApiRequestCollect, { screen }) {
const city = location?.city;
const browser = browserName(userAgent);
const os = detectOS(userAgent);
const device = getDevice(screen, os);
const device = getDevice(req.body?.payload?.screen, os);
return { userAgent, browser, os, ip, country, subdivision1, subdivision2, city, device };
}

View File

@ -93,6 +93,13 @@ function getTimestampDiffQuery(field1: string, field2: string): string {
}
}
function getSearchQuery(column: string): string {
const db = getDatabaseType();
const like = db === POSTGRESQL ? 'ilike' : 'like';
return `and ${column} ${like} {{search}}`;
}
function mapFilter(column: string, operator: string, name: string, type: string = '') {
const db = getDatabaseType();
const like = db === POSTGRESQL ? 'ilike' : 'like';
@ -253,6 +260,7 @@ export default {
getFilterQuery,
getSearchParameters,
getTimestampDiffQuery,
getSearchQuery,
getQueryMode,
pagedQuery,
parseFilters,

View File

@ -65,7 +65,7 @@ export async function findSession(req: NextApiRequestCollect): Promise<{
await checkUserBlock(website.userId);
const { userAgent, browser, os, ip, country, subdivision1, subdivision2, city, device } =
await getClientInfo(req, payload);
await getClientInfo(req);
const sessionId = uuid(websiteId, hostname, ip, userAgent);
const visitId = uuid(sessionId, visitSalt());

View File

@ -73,7 +73,7 @@ export interface FilterQueryResult<T> {
}
export interface DynamicData {
[key: string]: number | string | DynamicData | number[] | string[] | DynamicData[];
[key: string]: number | string | number[] | string[];
}
export interface Auth {

View File

@ -104,14 +104,14 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => {
await useSession(req, res);
const session = req.session;
const iat = Math.floor(new Date().getTime() / 1000);
// expire visitId after 30 minutes
session.visitId =
!!session.iat && Math.floor(new Date().getTime() / 1000) - session.iat > 1800
? uuid(session.id, visitSalt())
: session.visitId;
if (session.iat && iat - session.iat > 1800) {
session.visitId = uuid(session.id, visitSalt());
}
session.iat = Math.floor(new Date().getTime() / 1000);
session.iat = iat;
if (type === COLLECTION_TYPE.event) {
// eslint-disable-next-line prefer-const

View File

@ -87,7 +87,7 @@ export default async (
}
if (SESSION_COLUMNS.includes(type)) {
const data = await getSessionMetrics(websiteId, column, filters, limit, offset);
const data = await getSessionMetrics(websiteId, type, filters, limit, offset);
if (type === 'language') {
const combined = {};

View File

@ -22,7 +22,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
`
select
website_event.event_name as "eventName",
event_data.event_key as "fieldName",
event_data.data_key as "fieldName",
event_data.data_type as "dataType",
event_data.string_value as "fieldValue",
count(*) as "total"
@ -32,7 +32,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
where event_data.website_id = {{websiteId::uuid}}
and event_data.created_at between {{startDate}} and {{endDate}}
and website_event.event_name = {{event}}
group by website_event.event_name, event_data.event_key, event_data.data_type, event_data.string_value
group by website_event.event_name, event_data.data_key, event_data.data_type, event_data.string_value
order by 1 asc, 2 asc, 3 asc, 4 desc
`,
params,
@ -43,7 +43,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
`
select
website_event.event_name as "eventName",
event_data.event_key as "fieldName",
event_data.data_key as "fieldName",
event_data.data_type as "dataType",
count(*) as "total"
from event_data
@ -51,7 +51,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
on website_event.event_id = event_data.website_event_id
where event_data.website_id = {{websiteId::uuid}}
and event_data.created_at between {{startDate}} and {{endDate}}
group by website_event.event_name, event_data.event_key, event_data.data_type
group by website_event.event_name, event_data.data_key, event_data.data_type
order by 1 asc, 2 asc
limit 500
`,
@ -72,7 +72,7 @@ async function clickhouseQuery(
`
select
event_name as eventName,
event_key as fieldName,
data_key as fieldName,
data_type as dataType,
string_value as fieldValue,
count(*) as total
@ -80,7 +80,7 @@ async function clickhouseQuery(
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_name = {event:String}
group by event_key, data_type, string_value, event_name
group by data_key, data_type, string_value, event_name
order by 1 asc, 2 asc, 3 asc, 4 desc
limit 500
`,
@ -102,13 +102,13 @@ async function clickhouseQuery(
`
select
event_name as eventName,
event_key as fieldName,
data_key as fieldName,
data_type as dataType,
count(*) as total
from event_data
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
group by event_key, data_type, event_name
group by data_key, data_type, event_name
order by 1 asc, 2 asc
limit 500
`,

View File

@ -15,13 +15,13 @@ export async function getEventDataFields(
async function relationalQuery(websiteId: string, filters: QueryFilters & { field?: string }) {
const { rawQuery, parseFilters } = prisma;
const { filterQuery, params } = await parseFilters(websiteId, filters, {
columns: { field: 'event_key' },
columns: { field: 'data_key' },
});
return rawQuery(
`
select
event_key as "fieldName",
data_key as "fieldName",
data_type as "dataType",
string_value as "fieldValue",
count(*) as "total"
@ -29,7 +29,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters & { fiel
where website_id = {{websiteId::uuid}}
and created_at between {{startDate}} and {{endDate}}
${filterQuery}
group by event_key, data_type, string_value
group by data_key, data_type, string_value
order by 3 desc, 2 desc, 1 asc
limit 500
`,
@ -43,13 +43,13 @@ async function clickhouseQuery(
): Promise<{ fieldName: string; dataType: number; fieldValue: string; total: number }[]> {
const { rawQuery, parseFilters } = clickhouse;
const { filterQuery, params } = await parseFilters(websiteId, filters, {
columns: { field: 'event_key' },
columns: { field: 'data_key' },
});
return rawQuery(
`
select
event_key as fieldName,
data_key as fieldName,
data_type as dataType,
string_value as fieldValue,
count(*) as total
@ -57,7 +57,7 @@ async function clickhouseQuery(
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
${filterQuery}
group by event_key, data_type, string_value
group by data_key, data_type, string_value
order by 3 desc, 2 desc, 1 asc
limit 500
`,

View File

@ -24,18 +24,18 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
`
select
count(distinct t.website_event_id) as "events",
count(distinct t.event_key) as "fields",
count(distinct t.data_key) as "fields",
sum(t.total) as "records"
from (
select
website_event_id,
event_key,
data_key,
count(*) as "total"
from event_data
where website_id = {{websiteId::uuid}}
and created_at between {{startDate}} and {{endDate}}
${filterQuery}
group by website_event_id, event_key
group by website_event_id, data_key
) as t
`,
params,
@ -53,18 +53,18 @@ async function clickhouseQuery(
`
select
count(distinct t.event_id) as "events",
count(distinct t.event_key) as "fields",
count(distinct t.data_key) as "fields",
sum(t.total) as "records"
from (
select
event_id,
event_key,
data_key,
count(*) as "total"
from event_data
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
${filterQuery}
group by event_id, event_key
group by event_id, data_key
) as t
`,
params,

View File

@ -7,7 +7,7 @@ import kafka from 'lib/kafka';
import prisma from 'lib/prisma';
import { DynamicData } from 'lib/types';
export async function saveEventData(args: {
export async function saveEventData(data: {
websiteId: string;
eventId: string;
sessionId?: string;
@ -17,8 +17,8 @@ export async function saveEventData(args: {
createdAt?: string;
}) {
return runQuery({
[PRISMA]: () => relationalQuery(args),
[CLICKHOUSE]: () => clickhouseQuery(args),
[PRISMA]: () => relationalQuery(data),
[CLICKHOUSE]: () => clickhouseQuery(data),
});
}
@ -36,7 +36,7 @@ async function relationalQuery(data: {
id: uuid(),
websiteEventId: eventId,
websiteId,
eventKey: a.key,
dataKey: a.key,
stringValue: getStringValue(a.value, a.dataType),
numberValue: a.dataType === DATA_TYPE.number ? a.value : null,
dateValue: a.dataType === DATA_TYPE.date ? new Date(a.value) : null,
@ -63,19 +63,21 @@ async function clickhouseQuery(data: {
const jsonKeys = flattenJSON(eventData);
const messages = jsonKeys.map(a => ({
website_id: websiteId,
session_id: sessionId,
event_id: eventId,
url_path: urlPath,
event_name: eventName,
event_key: a.key,
string_value: getStringValue(a.value, a.dataType),
number_value: a.dataType === DATA_TYPE.number ? a.value : null,
date_value: a.dataType === DATA_TYPE.date ? getDateFormat(a.value) : null,
data_type: a.dataType,
created_at: createdAt,
}));
const messages = jsonKeys.map(({ key, value, dataType }) => {
return {
website_id: websiteId,
session_id: sessionId,
event_id: eventId,
url_path: urlPath,
event_name: eventName,
data_key: key,
data_type: dataType,
string_value: getStringValue(value, dataType),
number_value: dataType === DATA_TYPE.number ? value : null,
date_value: dataType === DATA_TYPE.date ? getDateFormat(value) : null,
created_at: createdAt,
};
});
await sendMessages(messages, 'event_data');

View File

@ -18,11 +18,11 @@ async function relationalQuery(
endDate: Date,
search: string,
) {
const { rawQuery } = prisma;
const { rawQuery, getSearchQuery } = prisma;
let searchQuery = '';
if (search) {
searchQuery = `and ${column} LIKE {{search}}`;
searchQuery = getSearchQuery(column);
}
return rawQuery(

View File

@ -43,10 +43,8 @@ async function relationalQuery(
min(website_event.created_at) as "min_time",
max(website_event.created_at) as "max_time"
from website_event
join website
on website_event.website_id = website.website_id
${joinSession}
where website.website_id = {{websiteId::uuid}}
where website_event.website_id = {{websiteId::uuid}}
and website_event.created_at between {{startDate}} and {{endDate}}
and event_type = {{eventType}}
${filterQuery}

View File

@ -1,17 +1,11 @@
import prisma from 'lib/prisma';
import clickhouse from 'lib/clickhouse';
import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
import { EVENT_TYPE, SESSION_COLUMNS } from 'lib/constants';
import { EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from 'lib/constants';
import { QueryFilters } from 'lib/types';
export async function getSessionMetrics(
...args: [
websiteId: string,
column: string,
filters: QueryFilters,
limit?: number,
offset?: number,
]
...args: [websiteId: string, type: string, filters: QueryFilters, limit?: number, offset?: number]
) {
return runQuery({
[PRISMA]: () => relationalQuery(...args),
@ -21,11 +15,12 @@ export async function getSessionMetrics(
async function relationalQuery(
websiteId: string,
column: string,
type: string,
filters: QueryFilters,
limit: number = 500,
offset: number = 0,
) {
const column = FILTER_COLUMNS[type] || type;
const { parseFilters, rawQuery } = prisma;
const { filterQuery, joinSession, params } = await parseFilters(
websiteId,
@ -34,7 +29,7 @@ async function relationalQuery(
eventType: EVENT_TYPE.pageView,
},
{
joinSession: SESSION_COLUMNS.includes(column),
joinSession: SESSION_COLUMNS.includes(type),
},
);
const includeCountry = column === 'city' || column === 'subdivision1';
@ -63,11 +58,12 @@ async function relationalQuery(
async function clickhouseQuery(
websiteId: string,
column: string,
type: string,
filters: QueryFilters,
limit: number = 500,
offset: number = 0,
): Promise<{ x: string; y: number }[]> {
const column = FILTER_COLUMNS[type] || type;
const { parseFilters, rawQuery } = clickhouse;
const { filterQuery, params } = await parseFilters(websiteId, {
...filters,

View File

@ -3,13 +3,27 @@ import { uuid } from 'lib/crypto';
import { flattenJSON, getStringValue } from 'lib/data';
import prisma from 'lib/prisma';
import { DynamicData } from 'lib/types';
import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db';
import kafka from 'lib/kafka';
export async function saveSessionData(data: {
websiteId: string;
sessionId: string;
sessionData: DynamicData;
createdAt?: string;
}) {
const { client, transaction } = prisma;
return runQuery({
[PRISMA]: () => relationalQuery(data),
[CLICKHOUSE]: () => clickhouseQuery(data),
});
}
export async function relationalQuery(data: {
websiteId: string;
sessionId: string;
sessionData: DynamicData;
}) {
const { client } = prisma;
const { websiteId, sessionId, sessionData } = data;
const jsonKeys = flattenJSON(sessionData);
@ -18,21 +32,73 @@ export async function saveSessionData(data: {
id: uuid(),
websiteId,
sessionId,
key: a.key,
dataKey: a.key,
stringValue: getStringValue(a.value, a.dataType),
numberValue: a.dataType === DATA_TYPE.number ? a.value : null,
dateValue: a.dataType === DATA_TYPE.date ? new Date(a.value) : null,
dataType: a.dataType,
}));
return transaction([
client.sessionData.deleteMany({
where: {
sessionId,
},
}),
client.sessionData.createMany({
data: flattenedData as any,
}),
]);
const existing = await client.sessionData.findMany({
where: {
sessionId,
},
select: {
id: true,
sessionId: true,
dataKey: true,
},
});
for (const data of flattenedData) {
const { sessionId, dataKey, ...props } = data;
const record = existing.find(e => e.sessionId === sessionId && e.dataKey === dataKey);
if (record) {
await client.sessionData.update({
where: {
id: record.id,
},
data: {
...props,
},
});
} else {
await client.sessionData.create({
data,
});
}
}
return flattenedData;
}
async function clickhouseQuery(data: {
websiteId: string;
sessionId: string;
sessionData: DynamicData;
createdAt?: string;
}) {
const { websiteId, sessionId, sessionData, createdAt } = data;
const { getDateFormat, sendMessages } = kafka;
const jsonKeys = flattenJSON(sessionData);
const messages = jsonKeys.map(({ key, value, dataType }) => {
return {
website_id: websiteId,
session_id: sessionId,
data_key: key,
data_type: dataType,
string_value: getStringValue(value, dataType),
number_value: dataType === DATA_TYPE.number ? value : null,
date_value: dataType === DATA_TYPE.date ? getDateFormat(value) : null,
created_at: createdAt,
};
});
await sendMessages(messages, 'session_data');
return data;
}

661
yarn.lock

File diff suppressed because it is too large Load Diff