Merge branch 'dev' into analytics

This commit is contained in:
Mike Cao 2025-02-19 16:33:10 -08:00
commit 76c95429db
8 changed files with 107 additions and 99 deletions

View file

@ -52,7 +52,7 @@ export function RealtimeLog({ data }: { data: RealtimeData }) {
}, },
]; ];
const getTime = ({ createdAt, firstAt }) => formatTimezoneDate(firstAt || createdAt, 'h:mm:ss'); const getTime = ({ createdAt, firstAt }) => formatTimezoneDate(firstAt || createdAt, 'pp');
const getColor = ({ id, sessionId }) => stringToColor(sessionId || id); const getColor = ({ id, sessionId }) => stringToColor(sessionId || id);

View file

@ -10,6 +10,10 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) {
const { data, ...props } = useWebsiteSessionsWeekly(websiteId); const { data, ...props } = useWebsiteSessionsWeekly(websiteId);
const { dateLocale } = useLocale(); const { dateLocale } = useLocale();
const { labels, formatMessage } = useMessages(); const { labels, formatMessage } = useMessages();
const { weekStartsOn } = dateLocale.options;
const daysOfWeek = Array(7)
.fill(weekStartsOn)
.map((d, i) => (d + i) % 7);
const [, max] = data const [, max] = data
? data.reduce((arr: number[], hours: number[], index: number) => { ? data.reduce((arr: number[], hours: number[], index: number) => {
@ -40,7 +44,9 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) {
{Array(24) {Array(24)
.fill(null) .fill(null)
.map((_, i) => { .map((_, i) => {
const label = format(addHours(startOfDay(new Date()), i), 'haaa'); const label = format(addHours(startOfDay(new Date()), i), 'p', { locale: dateLocale })
.replace(/\D00 ?/, '')
.toLowerCase();
return ( return (
<div key={i} className={styles.hour}> <div key={i} className={styles.hour}>
{label} {label}
@ -48,16 +54,18 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) {
); );
})} })}
</div> </div>
{data?.map((day: number[], index: number) => { {data &&
daysOfWeek.map((index: number) => {
const day = data[index];
return ( return (
<div key={index} className={styles.day}> <div key={index} className={styles.day}>
<div className={styles.header}> <div className={styles.header}>
{format(getDayOfWeekAsDate(index), 'EEE', { locale: dateLocale })} {format(getDayOfWeekAsDate(index), 'EEE', { locale: dateLocale })}
</div> </div>
{day?.map((hour: number, n) => { {day?.map((hour: number) => {
const pct = hour / max; const pct = hour / max;
return ( return (
<div key={n} className={classNames(styles.cell)}> <div key={hour} className={classNames(styles.cell)}>
{hour > 0 && ( {hour > 0 && (
<TooltipPopup <TooltipPopup
label={`${formatMessage(labels.visitors)}: ${hour}`} label={`${formatMessage(labels.visitors)}: ${hour}`}

View file

@ -34,7 +34,7 @@ export function SessionActivity({
return ( return (
<Fragment key={eventId}> <Fragment key={eventId}>
{showHeader && ( {showHeader && (
<div className={styles.header}>{formatTimezoneDate(createdAt, 'EEEE, PPP')}</div> <div className={styles.header}>{formatTimezoneDate(createdAt, 'PPPP')}</div>
)} )}
<div key={eventId} className={styles.row}> <div key={eventId} className={styles.row}>
<div className={styles.time}> <div className={styles.time}>

View file

@ -20,10 +20,10 @@ export default function SessionInfo({ data }) {
</dd> </dd>
<dt>{formatMessage(labels.lastSeen)}</dt> <dt>{formatMessage(labels.lastSeen)}</dt>
<dd>{formatTimezoneDate(data?.lastAt, 'EEEE, PPPpp')}</dd> <dd>{formatTimezoneDate(data?.lastAt, 'PPPPpp')}</dd>
<dt>{formatMessage(labels.firstSeen)}</dt> <dt>{formatMessage(labels.firstSeen)}</dt>
<dd>{formatTimezoneDate(data?.firstAt, 'EEEE, PPPpp')}</dd> <dd>{formatTimezoneDate(data?.firstAt, 'PPPPpp')}</dd>
<dt>{formatMessage(labels.country)}</dt> <dt>{formatMessage(labels.country)}</dt>
<dd> <dd>

View file

@ -45,12 +45,9 @@ export async function GET(request: Request, { params }: { params: Promise<{ team
return json(users); return json(users);
} }
export async function POST( export async function POST(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
request: Request,
{ params }: { params: Promise<{ teamId: string; userId: string }> },
) {
const schema = z.object({ const schema = z.object({
userId: z.string(), userId: z.string().uuid(),
role: roleParam, role: roleParam,
}); });

View file

@ -9,7 +9,7 @@ const selector = (state: { shareToken: { token?: string } }) => state.shareToken
async function handleResponse(res: FetchResponse): Promise<any> { async function handleResponse(res: FetchResponse): Promise<any> {
if (!res.ok) { if (!res.ok) {
return Promise.reject(new Error(res.error)); return Promise.reject(new Error(res.error?.error || res.error || 'Unexpectd error.'));
} }
return Promise.resolve(res.data); return Promise.resolve(res.data);
} }

View file

@ -2,11 +2,13 @@ import { setItem } from '@/lib/storage';
import { TIMEZONE_CONFIG } from '@/lib/constants'; import { TIMEZONE_CONFIG } from '@/lib/constants';
import { formatInTimeZone, zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz'; import { formatInTimeZone, zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz';
import useStore, { setTimezone } from '@/store/app'; import useStore, { setTimezone } from '@/store/app';
import useLocale from './useLocale';
const selector = (state: { timezone: string }) => state.timezone; const selector = (state: { timezone: string }) => state.timezone;
export function useTimezone() { export function useTimezone() {
const timezone = useStore(selector); const timezone = useStore(selector);
const { dateLocale } = useLocale();
const saveTimezone = (value: string) => { const saveTimezone = (value: string) => {
setItem(TIMEZONE_CONFIG, value); setItem(TIMEZONE_CONFIG, value);
@ -20,6 +22,7 @@ export function useTimezone() {
: date.split(' ').join('T') + 'Z', : date.split(' ').join('T') + 'Z',
timezone, timezone,
pattern, pattern,
{ locale: dateLocale },
); );
}; };

View file

@ -4,14 +4,14 @@
"label.activity": "Үйл ажиллагааны бүртгэл", "label.activity": "Үйл ажиллагааны бүртгэл",
"label.add": "Нэмэх", "label.add": "Нэмэх",
"label.add-description": "Тайлбар нэмэх", "label.add-description": "Тайлбар нэмэх",
"label.add-member": "Add member", "label.add-member": "Гишүүн нэмэх",
"label.add-step": "Add step", "label.add-step": "Алхам нэмэх",
"label.add-website": "Веб нэмэх", "label.add-website": "Веб нэмэх",
"label.admin": "Админ", "label.admin": "Админ",
"label.after": "Хойно", "label.after": "Хойно",
"label.all": "Бүх", "label.all": "Бүх",
"label.all-time": "Бүх цаг үеийн", "label.all-time": "Бүх цаг үеийн",
"label.analytics": "Analytics", "label.analytics": "Аналитик",
"label.average": "Дундаж", "label.average": "Дундаж",
"label.back": "Буцах", "label.back": "Буцах",
"label.before": "Өмнө", "label.before": "Өмнө",
@ -24,12 +24,12 @@
"label.cities": "Хотууд", "label.cities": "Хотууд",
"label.city": "Хот", "label.city": "Хот",
"label.clear-all": "Бүгдийг арилгах", "label.clear-all": "Бүгдийг арилгах",
"label.compare": "Compare", "label.compare": "Харьцуулах",
"label.confirm": "Батлах", "label.confirm": "Батлах",
"label.confirm-password": "Шинэ нууц үгээ давтах", "label.confirm-password": "Шинэ нууц үгээ давтах",
"label.contains": "Агуулах", "label.contains": "Агуулах",
"label.continue": "Үргэлжлүүлэх", "label.continue": "Үргэлжлүүлэх",
"label.count": "Count", "label.count": "Тоо",
"label.countries": "Улс", "label.countries": "Улс",
"label.country": "Улс", "label.country": "Улс",
"label.create": "Үүсгэх", "label.create": "Үүсгэх",
@ -37,8 +37,8 @@
"label.create-team": "Баг үүсгэх", "label.create-team": "Баг үүсгэх",
"label.create-user": "Хэрэглэгч үүсгэх", "label.create-user": "Хэрэглэгч үүсгэх",
"label.created": "Үүсгэсэн", "label.created": "Үүсгэсэн",
"label.created-by": "Created By", "label.created-by": "Үүсгэсэн",
"label.current": "Current", "label.current": "Одоогийн",
"label.current-password": "Ашиглаж буй нууц үг", "label.current-password": "Ашиглаж буй нууц үг",
"label.custom-range": "Дурын хугацаа", "label.custom-range": "Дурын хугацаа",
"label.dashboard": "Хянах самбар", "label.dashboard": "Хянах самбар",
@ -48,7 +48,7 @@
"label.day": "Өдөр", "label.day": "Өдөр",
"label.default-date-range": "Өгөгдмөл хугацааны муж", "label.default-date-range": "Өгөгдмөл хугацааны муж",
"label.delete": "Устгах", "label.delete": "Устгах",
"label.delete-report": "Delete report", "label.delete-report": "Тайлан устгах",
"label.delete-team": "Баг устгах", "label.delete-team": "Баг устгах",
"label.delete-user": "Хэрэглэгч устгах", "label.delete-user": "Хэрэглэгч устгах",
"label.delete-website": "Веб устгах", "label.delete-website": "Веб устгах",
@ -63,14 +63,14 @@
"label.dropoff": "Уналт", "label.dropoff": "Уналт",
"label.edit": "Засах", "label.edit": "Засах",
"label.edit-dashboard": "Хянах самбар засах", "label.edit-dashboard": "Хянах самбар засах",
"label.edit-member": "Edit member", "label.edit-member": "Гишүүн засах",
"label.enable-share-url": "Хуваалцах холбоос идэвхжүүлэх", "label.enable-share-url": "Хуваалцах холбоос идэвхжүүлэх",
"label.end-step": "End Step", "label.end-step": "Төгсгөлийн алхам",
"label.entry": "Entry URL", "label.entry": "Орох зам",
"label.event": "Үйлдэл", "label.event": "Үйлдэл",
"label.event-data": "Үйлдлийн өгөгдөл", "label.event-data": "Үйлдлийн өгөгдөл",
"label.events": "Үйлдэл", "label.events": "Үйлдэл",
"label.exit": "Exit URL", "label.exit": "Гарах зам",
"label.false": "Худал", "label.false": "Худал",
"label.field": "Талбар", "label.field": "Талбар",
"label.fields": "Талбар", "label.fields": "Талбар",
@ -78,16 +78,16 @@
"label.filter-combined": "Нэгтгэсэн", "label.filter-combined": "Нэгтгэсэн",
"label.filter-raw": "Түүхий", "label.filter-raw": "Түүхий",
"label.filters": "Шүүлтүүр", "label.filters": "Шүүлтүүр",
"label.first-seen": "First seen", "label.first-seen": "Анх харсан",
"label.funnel": "Цутгал", "label.funnel": "Цутгал",
"label.funnel-description": "Хэрэглэгчдийн шилжилт, уналтын хэмжээг шинжлэх.", "label.funnel-description": "Хэрэглэгчдийн шилжилт, уналтын хэмжээг шинжлэх.",
"label.goal": "Goal", "label.goal": "Зорилго",
"label.goals": "Goals", "label.goals": "Зорилго",
"label.goals-description": "Track your goals for pageviews and events.", "label.goals-description": "Хуудас үзсэн болон үйлдлийн зорилгыг мөрдөх.",
"label.greater-than": "Их", "label.greater-than": "Их",
"label.greater-than-equals": "Их буюу тэнцүү", "label.greater-than-equals": "Их буюу тэнцүү",
"label.host": "Host", "label.host": "Хост",
"label.hosts": "Hosts", "label.hosts": "Хост",
"label.insights": "Шинжлэх", "label.insights": "Шинжлэх",
"label.insights-description": "Өгөгдлөө хэсэгчлэн хуваах, шүүх байдлаар задлан шинжлэх.", "label.insights-description": "Өгөгдлөө хэсэгчлэн хуваах, шүүх байдлаар задлан шинжлэх.",
"label.is": "Бол", "label.is": "Бол",
@ -96,36 +96,36 @@
"label.is-set": "Утга оноосон", "label.is-set": "Утга оноосон",
"label.join": "Нэгдэх", "label.join": "Нэгдэх",
"label.join-team": "Багт нэгдэх", "label.join-team": "Багт нэгдэх",
"label.journey": "Journey", "label.journey": "Аялал",
"label.journey-description": "Understand how users navigate through your website.", "label.journey-description": "Хэрэглэгчид таны цахим хуудсаар хэрхэн шилжиж явсныг шинжлэх.",
"label.language": "Хэл", "label.language": "Хэл",
"label.languages": "Хэл", "label.languages": "Хэл",
"label.laptop": "Зөөврийн компьютер", "label.laptop": "Зөөврийн компьютер",
"label.last-days": "Сүүлийн {x} хоног", "label.last-days": "Сүүлийн {x} хоног",
"label.last-hours": "Сүүлийн {x} цаг", "label.last-hours": "Сүүлийн {x} цаг",
"label.last-months": "Last {x} months", "label.last-months": "Сүүлийн {x} сар",
"label.last-seen": "Last seen", "label.last-seen": "Сүүлд харагдсан",
"label.leave": "Гарах", "label.leave": "Гарах",
"label.leave-team": "Багаас гарах", "label.leave-team": "Багаас гарах",
"label.less-than": "Бага", "label.less-than": "Бага",
"label.less-than-equals": "Бага буюу тэнцүү", "label.less-than-equals": "Бага буюу тэнцүү",
"label.login": "Нэвтрэх", "label.login": "Нэвтрэх",
"label.logout": "Гарах", "label.logout": "Гарах",
"label.manage": "Manage", "label.manage": "Удирдах",
"label.manager": "Manager", "label.manager": "Удирдагч",
"label.max": "Max", "label.max": "Max",
"label.member": "Member", "label.member": "Гишүүн",
"label.members": "Гишүүд", "label.members": "Гишүүд",
"label.min": "Min", "label.min": "Min",
"label.mobile": "Утас", "label.mobile": "Утас",
"label.more": "Цааш", "label.more": "Цааш",
"label.my-account": "My account", "label.my-account": "Миний бүртгэл",
"label.my-websites": "Миний вебүүд", "label.my-websites": "Миний вебүүд",
"label.name": "Нэр", "label.name": "Нэр",
"label.new-password": "Шинэ нууц үг", "label.new-password": "Шинэ нууц үг",
"label.none": "Байхгүй", "label.none": "Байхгүй",
"label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.number-of-records": "{x} {x, plural, one {бичлэг} other {бичлэг}}",
"label.ok": "OK", "label.ok": "ЗА",
"label.os": "OS", "label.os": "OS",
"label.overview": "Тойм", "label.overview": "Тойм",
"label.owner": "Эзэмшигч", "label.owner": "Эзэмшигч",
@ -134,15 +134,15 @@
"label.pageTitle": "Хуудасны гарчиг", "label.pageTitle": "Хуудасны гарчиг",
"label.pages": "Хуудас", "label.pages": "Хуудас",
"label.password": "Нууц үг", "label.password": "Нууц үг",
"label.path": "Path", "label.path": "Зам",
"label.paths": "Paths", "label.paths": "Зам",
"label.powered-by": "{name} дээр суурилсан", "label.powered-by": "{name} дээр суурилсан",
"label.previous": "Previous", "label.previous": "Өмнөх",
"label.previous-period": "Previous period", "label.previous-period": "Өмнөх үе",
"label.previous-year": "Previous year", "label.previous-year": "Өмнөх жил",
"label.profile": "Бүртгэл", "label.profile": "Бүртгэл",
"label.properties": "Properties", "label.properties": "Шинж чанар",
"label.property": "Property", "label.property": "Шинж чанар",
"label.queries": "Query-нүүд", "label.queries": "Query-нүүд",
"label.query": "Query", "label.query": "Query",
"label.query-parameters": "Query параметр", "label.query-parameters": "Query параметр",
@ -154,22 +154,22 @@
"label.region": "Бүс", "label.region": "Бүс",
"label.regions": "Бүсүүд", "label.regions": "Бүсүүд",
"label.remove": "Устгах", "label.remove": "Устгах",
"label.remove-member": "Remove member", "label.remove-member": "Гишүүн хасах",
"label.reports": "Тайлан", "label.reports": "Тайлан",
"label.required": "Шаардлагатай", "label.required": "Шаардлагатай",
"label.reset": "Дахин эхлүүлэх", "label.reset": "Дахин эхлүүлэх",
"label.reset-website": "Тоон үзүүлэлтийг дахин эхлүүлэх", "label.reset-website": "Тоон үзүүлэлтийг дахин эхлүүлэх",
"label.retention": "Барилт", "label.retention": "Барилт",
"label.retention-description": "Хэрэглэгчид таны веб рүү дахин хандах буюу хэрэглэгчдээ хэр тогтоож буйг хэмжих.", "label.retention-description": "Хэрэглэгчид таны веб рүү дахин хандах буюу хэрэглэгчдээ хэр тогтоож буйг хэмжих.",
"label.revenue": "Revenue", "label.revenue": "Орлого",
"label.revenue-description": "Look into your revenue across time.", "label.revenue-description": "Цаг хугацааны туршид орлогын өөрчлөлтийг харах.",
"label.revenue-property": "Revenue Property", "label.revenue-property": "Орлогын шинж чанар",
"label.role": "Эрх", "label.role": "Эрх",
"label.run-query": "Query ажиллуулах", "label.run-query": "Query ажиллуулах",
"label.save": "Хадгалах", "label.save": "Хадгалах",
"label.screens": "Дэлгэц", "label.screens": "Дэлгэц",
"label.search": "Хайх", "label.search": "Хайх",
"label.select": "Select", "label.select": "Сонгох",
"label.select-date": "Огноо сонгох", "label.select-date": "Огноо сонгох",
"label.select-role": "Select role", "label.select-role": "Select role",
"label.select-website": "Веб сонгох", "label.select-website": "Веб сонгох",
@ -178,13 +178,13 @@
"label.settings": "Тохиргоо", "label.settings": "Тохиргоо",
"label.share-url": "Хуваалцах холбоос", "label.share-url": "Хуваалцах холбоос",
"label.single-day": "Нэг өдөр", "label.single-day": "Нэг өдөр",
"label.start-step": "Start Step", "label.start-step": "Эхлэх алхам",
"label.steps": "Steps", "label.steps": "Алхам",
"label.sum": "Нийлбэр", "label.sum": "Нийлбэр",
"label.tablet": "Таблет", "label.tablet": "Таблет",
"label.team": "Баг", "label.team": "Баг",
"label.team-id": "Багийн ID", "label.team-id": "Багийн ID",
"label.team-manager": "Team manager", "label.team-manager": "Багийн удирдагч",
"label.team-member": "Багийн гишүүн", "label.team-member": "Багийн гишүүн",
"label.team-name": "Багийн нэр", "label.team-name": "Багийн нэр",
"label.team-owner": "Багийн эзэмшигч", "label.team-owner": "Багийн эзэмшигч",
@ -203,46 +203,46 @@
"label.total-records": "Нийт мөрийн тоо", "label.total-records": "Нийт мөрийн тоо",
"label.tracking-code": "Мөрдөх код", "label.tracking-code": "Мөрдөх код",
"label.transactions": "Transactions", "label.transactions": "Transactions",
"label.transfer": "Transfer", "label.transfer": "Шилжүүлэх",
"label.transfer-website": "Transfer website", "label.transfer-website": "Вебийг шилжүүлэх",
"label.true": "Үнэн", "label.true": "Үнэн",
"label.type": "Төрөл", "label.type": "Төрөл",
"label.unique": "Давхардаагүй", "label.unique": "Давхардаагүй",
"label.unique-visitors": "Зочин", "label.unique-visitors": "Зочин",
"label.uniqueCustomers": "Unique Customers", "label.uniqueCustomers": "Давтагдаагүй зочин",
"label.unknown": "Тодорхойгүй", "label.unknown": "Тодорхойгүй",
"label.untitled": "Гарчиггүй", "label.untitled": "Гарчиггүй",
"label.update": "Update", "label.update": "Шинэчлэх",
"label.url": "URL", "label.url": "URL",
"label.urls": "URLs", "label.urls": "URL-ууд",
"label.user": "Хэрэглэгч", "label.user": "Хэрэглэгч",
"label.user-property": "User Property", "label.user-property": "Хэрэглэгчийн шинж",
"label.username": "Хэрэглэгчийн нэр", "label.username": "Хэрэглэгчийн нэр",
"label.users": "Хэрэглэгчид", "label.users": "Хэрэглэгчид",
"label.utm": "UTM", "label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.", "label.utm-description": "UTM параметраар кампанит ажлаа мөрдөх.",
"label.value": "Утга", "label.value": "Утга",
"label.view": "Харах", "label.view": "Харах",
"label.view-details": "Дэлгэрүүлж харах", "label.view-details": "Дэлгэрүүлж харах",
"label.view-only": "Зөвхөн үзэх", "label.view-only": "Зөвхөн үзэх",
"label.views": "Үзсэн", "label.views": "Үзсэн",
"label.views-per-visit": "Views per visit", "label.views-per-visit": "Зочдын хуудас үзсэн тоо",
"label.visit-duration": "Зочилсон дундаж хугацаа", "label.visit-duration": "Зочилсон дундаж хугацаа",
"label.visitors": "Зочин", "label.visitors": "Зочин",
"label.visits": "Visits", "label.visits": "Зочилсон",
"label.website": "Веб", "label.website": "Веб",
"label.website-id": "Вебийн ID", "label.website-id": "Вебийн ID",
"label.websites": "Вебүүд", "label.websites": "Вебүүд",
"label.window": "Цонх", "label.window": "Цонх",
"label.yesterday": "Өчигдөр", "label.yesterday": "Өчигдөр",
"message.action-confirmation": "Type {confirmation} in the box below to confirm.", "message.action-confirmation": "Доорх хэсэгт {confirmation} гэж бичин баталгаажуулна уу.",
"message.active-users": "одоо {x} {x, plural, one {зочин} other {зочин}} байна", "message.active-users": "одоо {x} {x, plural, one {зочин} other {зочин}} байна",
"message.collected-data": "Collected data", "message.collected-data": "Цуглуулсан өгөгдөл",
"message.confirm-delete": "Та {target}-г устгахдаа итгэлтэй байна уу?", "message.confirm-delete": "Та {target}-г устгахдаа итгэлтэй байна уу?",
"message.confirm-leave": "Та {target}-с гарахдаа итгэлтэй байна уу?", "message.confirm-leave": "Та {target}-с гарахдаа итгэлтэй байна уу?",
"message.confirm-remove": "Are you sure you want to remove {target}?", "message.confirm-remove": "Та {target}-г устгахдаа итгэлтэй байна уу?",
"message.confirm-reset": "Та {target}-н тоон үзүүлэлтүүдийг устгахдаа итгэлтэй байна уу?", "message.confirm-reset": "Та {target}-н тоон үзүүлэлтүүдийг устгахдаа итгэлтэй байна уу?",
"message.delete-team-warning": "Deleting a team will also delete all team websites.", "message.delete-team-warning": "Баг устгах нь мөн түүнд харъяалагдах вебүүдийг устгах болно.",
"message.delete-website-warning": "Энэ вебтэй холбоотой бүх өгөгдөл устах болно.", "message.delete-website-warning": "Энэ вебтэй холбоотой бүх өгөгдөл устах болно.",
"message.error": "Ямар нэг зүйл буруу боллоо.", "message.error": "Ямар нэг зүйл буруу боллоо.",
"message.event-log": "{url}-д {event}", "message.event-log": "{url}-д {event}",
@ -268,12 +268,12 @@
"message.team-not-found": "Баг олдсонгүй.", "message.team-not-found": "Баг олдсонгүй.",
"message.team-websites-info": "Вебийг багийн бүх гишүүд үзэж болно.", "message.team-websites-info": "Вебийг багийн бүх гишүүд үзэж болно.",
"message.tracking-code": "Энэ вебийн хандалтуудыг мөрдөхийн тулд доорх кодыг HTML-нхээ <head>...</head> хэсэгт байрлуулна уу.", "message.tracking-code": "Энэ вебийн хандалтуудыг мөрдөхийн тулд доорх кодыг HTML-нхээ <head>...</head> хэсэгт байрлуулна уу.",
"message.transfer-team-website-to-user": "Transfer this website to your account?", "message.transfer-team-website-to-user": "Энэ вебийг өөрийн бүртгэл рүү шилжүүлэх үү?",
"message.transfer-user-website-to-team": "Select the team to transfer this website to.", "message.transfer-user-website-to-team": "Энэ вебийг шилжүүлж авах багийг сонгоно уу.",
"message.transfer-website": "Transfer website ownership to your account or another team.", "message.transfer-website": "Энэ вебийг өөрийн бүртгэл рүү эсвэл багт шилжүүлж авах.",
"message.triggered-event": "Triggered event", "message.triggered-event": "Өдөөсөн үйлдэл",
"message.user-deleted": "Хэрэглэгч устсан.", "message.user-deleted": "Хэрэглэгч устсан.",
"message.viewed-page": "Viewed page", "message.viewed-page": "Үзсэн хуудас",
"message.visitor-log": "{country} улсаас {os} {device} дээр {browser} хөтөч ашиглан орсон", "message.visitor-log": "{country} улсаас {os} {device} дээр {browser} хөтөч ашиглан орсон",
"message.visitors-dropped-off": "Visitors dropped off" "message.visitors-dropped-off": "Зочдын уналт"
} }