diff --git a/assets/bolt.svg b/assets/bolt.svg new file mode 100644 index 00000000..4654a1eb --- /dev/null +++ b/assets/bolt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/eye.svg b/assets/eye.svg new file mode 100644 index 00000000..09c93453 --- /dev/null +++ b/assets/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/visitor.svg b/assets/visitor.svg new file mode 100644 index 00000000..591873a5 --- /dev/null +++ b/assets/visitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/common/Table.js b/components/common/Table.js index 61eb4f6e..d0a1e0c7 100644 --- a/components/common/Table.js +++ b/components/common/Table.js @@ -3,7 +3,15 @@ import classNames from 'classnames'; import NoData from 'components/common/NoData'; import styles from './Table.module.css'; -export default function Table({ className, columns, rows, empty }) { +export default function Table({ + columns, + rows, + empty, + className, + bodyClassName, + rowKey, + children, +}) { if (empty && rows.length === 0) { return empty; } @@ -21,22 +29,29 @@ export default function Table({ className, columns, rows, empty }) { ))} -
+
{rows.length === 0 && } - {rows.map((row, rowIndex) => ( -
- {columns.map(({ key, render, className, style, cell }) => ( -
- {render ? render(row) : row[key]} -
- ))} -
- ))} + {!children && + rows.map((row, index) => { + const id = rowKey ? rowKey(row) : index; + return ; + })} + {children}
); } + +export const TableRow = ({ columns, row }) => ( +
+ {columns.map(({ key, render, className, style, cell }, index) => ( +
+ {render ? render(row) : row[key]} +
+ ))} +
+); diff --git a/components/metrics/RealtimeLog.js b/components/metrics/RealtimeLog.js index b3a82050..fce9f7e9 100644 --- a/components/metrics/RealtimeLog.js +++ b/components/metrics/RealtimeLog.js @@ -1,14 +1,20 @@ import React, { useMemo } from 'react'; -import { FormattedMessage } from 'react-intl'; +import { FormattedMessage, useIntl } from 'react-intl'; +import { FixedSizeList } from 'react-window'; import firstBy from 'thenby'; import { format } from 'date-fns'; -import Table from 'components/common/Table'; +import Icon from 'components/common/Icon'; +import Table, { TableRow } from 'components/common/Table'; +import useLocale from 'hooks/useLocale'; +import useCountryNames from 'hooks/useCountryNames'; +import { BROWSERS } from 'lib/constants'; +import Bolt from 'assets/bolt.svg'; +import Visitor from 'assets/visitor.svg'; +import Eye from 'assets/eye.svg'; import styles from './RealtimeLog.module.css'; -import useLocale from '../../hooks/useLocale'; -import useCountryNames from '../../hooks/useCountryNames'; -import { BROWSERS } from '../../lib/constants'; export default function RealtimeLog({ data, websites }) { + const intl = useIntl(); const [locale] = useLocale(); const countryNames = useCountryNames(locale); const logs = useMemo(() => { @@ -19,38 +25,51 @@ export default function RealtimeLog({ data, websites }) { const columns = [ { key: 'time', - label: , - className: 'col', + label: , + className: 'col-1', render: ({ created_at }) => format(new Date(created_at), 'H:mm:ss'), }, { key: 'website', label: , - className: 'col', + className: 'col-2', render: getWebsite, }, { key: 'type', - label: , - className: 'col', - render: getType, - }, - { - key: 'type', - className: 'col', - render: getDescription, + label: , + className: 'col-9', + render: row => ( + <> + + {getDescription(row)} + + ), }, ]; function getType({ view_id, session_id, event_id }) { if (event_id) { - return ; + return intl.formatMessage({ id: 'label.event', defaultMessage: 'Event' }); } if (view_id) { - return ; + return intl.formatMessage({ id: 'label.pageview', defaultMessage: 'Pageview' }); } if (session_id) { - return ; + return intl.formatMessage({ id: 'label.visitor', defaultMessage: 'Visitor' }); + } + return null; + } + + function getIcon({ view_id, session_id, event_id }) { + if (event_id) { + return ; + } + if (view_id) { + return ; + } + if (session_id) { + return ; } return null; } @@ -71,7 +90,11 @@ export default function RealtimeLog({ data, websites }) { device, }) { if (event_type) { - return `${event_type}:${event_value}`; + return ( +
+ {event_type} {event_value} +
+ ); } if (view_id) { return url; @@ -87,9 +110,21 @@ export default function RealtimeLog({ data, websites }) { } } + const Row = ({ index, style }) => { + return ( +
+ +
+ ); + }; + return (
- +
+ + {Row} + +
); } diff --git a/components/metrics/RealtimeLog.module.css b/components/metrics/RealtimeLog.module.css index 66a2efd3..a2ffa893 100644 --- a/components/metrics/RealtimeLog.module.css +++ b/components/metrics/RealtimeLog.module.css @@ -6,3 +6,21 @@ display: flex; border-bottom: 1px solid var(--gray300); } + +.body { + height: 600px; + overflow: auto; +} + +.event { + font-size: var(--font-size-small); + padding: 2px 4px; + border: 1px solid var(--gray300); + border-radius: 4px; + margin-right: 10px; +} + +.icon { + align-self: center; + margin-right: 20px; +} diff --git a/hooks/useFetch.js b/hooks/useFetch.js index e41b4dbc..5301e2a1 100644 --- a/hooks/useFetch.js +++ b/hooks/useFetch.js @@ -40,7 +40,6 @@ export default function useFetch(url, params = {}, options = {}) { } useEffect(() => { - console.log('effect', params); if (url && !disabled) { if (!data) { setTimeout(() => loadData(), delay); diff --git a/lang/da-DK.json b/lang/da-DK.json index ae8c4321..9d33fd7b 100644 --- a/lang/da-DK.json +++ b/lang/da-DK.json @@ -26,6 +26,7 @@ "label.default-date-range": "Default date range", "label.domain": "Domæne", "label.enable-share-url": "Aktivér delings-URL", + "label.event": "Event", "label.invalid": "Ugyldig", "label.invalid-domain": "Ugyldigt domæne", "label.last-days": "Sidste {x} dage", @@ -34,6 +35,7 @@ "label.logout": "Log ud", "label.name": "Navn", "label.new-password": "Ny adgangskode", + "label.pageview": "Pageview", "label.password": "Adgangskode", "label.passwords-dont-match": "Adgangskoder matcher ikke", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Dette år", "label.timezone": "Timezone", "label.today": "Idag", + "label.type": "Type", "label.unknown": "Ukendt", "label.username": "Brugernavn", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Hjemmesider", "message.active-users": "{x} nuværende {x, plural, one {bruger} other {brugere}}", "message.confirm-delete": "Er du sikker på at du vil slette {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Få sporingskode", "message.go-to-settings": "Gå til betjeningspanel", "message.incorrect-username-password": "Ugyldigt brugernavn/adgangskode.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Ingen data tilgængelig.", "message.no-websites-configured": "Du har ikke konfigureret nogen websteder.", diff --git a/lang/de-DE.json b/lang/de-DE.json index fdc7c3a1..7821f826 100644 --- a/lang/de-DE.json +++ b/lang/de-DE.json @@ -26,6 +26,7 @@ "label.default-date-range": "Voreingestellter Datumsbereich", "label.domain": "Domain", "label.enable-share-url": "Freigabe-URL aktivieren", + "label.event": "Event", "label.invalid": "Ungültig", "label.invalid-domain": "Ungültige Domain", "label.last-days": "Letzten {x} Tage", @@ -34,6 +35,7 @@ "label.logout": "Abmelden", "label.name": "Name", "label.new-password": "Neues Passwort", + "label.pageview": "Pageview", "label.password": "Passwort", "label.passwords-dont-match": "Passwörter stimmen nicht überein", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Dieses Jahr", "label.timezone": "Zeitzone", "label.today": "Heute", + "label.type": "Type", "label.unknown": "Unbekannt", "label.username": "Benutzername", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Webseiten", "message.active-users": "{x} {x, plural, one {aktiver Besucher} other {aktive Besucher}}", "message.confirm-delete": "Sind sie sich sicher {target} zu löschen?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Erstelle Tracking Kennung", "message.go-to-settings": "Zu den Einstellungen", "message.incorrect-username-password": "Falsches Passwort oder Benutzername.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Eine neue Version umami {version} ist verfügbar!", "message.no-data-available": "Keine Daten vorhanden.", "message.no-websites-configured": "Es ist keine Webseite vorhanden.", diff --git a/lang/el-GR.json b/lang/el-GR.json index ec4b3217..88d4a0e1 100644 --- a/lang/el-GR.json +++ b/lang/el-GR.json @@ -26,6 +26,7 @@ "label.default-date-range": "Προεπιλεγμένο εύρος ημερομηνιών", "label.domain": "Τομέας", "label.enable-share-url": "Ενεργοποίηση κοινής χρήσης URL", + "label.event": "Event", "label.invalid": "Μη έγκυρο", "label.invalid-domain": "Μη έγκυρος τομέας", "label.last-days": "Τελευταίες {x} ημέρες", @@ -34,6 +35,7 @@ "label.logout": "Αποσύνδεση", "label.name": "Όνομα", "label.new-password": "Νέος κωδικός", + "label.pageview": "Pageview", "label.password": "Κωδικός", "label.passwords-dont-match": "Οι κωδικοί πρόσβασης δεν ταιριάζουν", "label.profile": "Προφίλ", @@ -45,8 +47,11 @@ "label.this-year": "Αυτή την χρονιά", "label.timezone": "Ζώνη ώρας", "label.today": "Σήμερα", + "label.type": "Type", "label.unknown": "Άγνωστο", "label.username": "Όνομα χρήστη", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Ιστότοποι", "message.active-users": "{x} ενεργοί {x, plural, one {επισκέπτης} other {επισκέπτες}}", "message.confirm-delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε το {target};", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Λήψη κώδικα παρακολούθησης", "message.go-to-settings": "Μεταβείτε στις ρυθμίσεις", "message.incorrect-username-password": "Εσφαλμένο όνομα χρήστη / κωδικός πρόσβασης.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Δεν υπάρχουν διαθέσιμα δεδομένα.", "message.no-websites-configured": "Δεν έχετε ρυθμίσει κανένα ιστότοπο.", diff --git a/lang/en-US.json b/lang/en-US.json index 7251c123..cadd0512 100644 --- a/lang/en-US.json +++ b/lang/en-US.json @@ -26,6 +26,7 @@ "label.default-date-range": "Default date range", "label.domain": "Domain", "label.enable-share-url": "Enable share URL", + "label.event": "Event", "label.invalid": "Invalid", "label.invalid-domain": "Invalid domain", "label.last-days": "Last {x} days", @@ -34,6 +35,7 @@ "label.logout": "Logout", "label.name": "Name", "label.new-password": "New password", + "label.pageview": "Pageview", "label.password": "Password", "label.passwords-dont-match": "Passwords don't match", "label.profile": "Profile", @@ -45,8 +47,11 @@ "label.this-year": "This year", "label.timezone": "Timezone", "label.today": "Today", + "label.type": "Type", "label.unknown": "Unknown", "label.username": "Username", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Websites", "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}", "message.confirm-delete": "Are your sure you want to delete {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Get tracking code", "message.go-to-settings": "Go to settings", "message.incorrect-username-password": "Incorrect username/password.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "No data available.", "message.no-websites-configured": "You don't have any websites configured.", diff --git a/lang/es-MX.json b/lang/es-MX.json index 9e6a6206..48efe589 100644 --- a/lang/es-MX.json +++ b/lang/es-MX.json @@ -26,6 +26,7 @@ "label.default-date-range": "Default date range", "label.domain": "Dominio", "label.enable-share-url": "Habilitar compartir URL", + "label.event": "Event", "label.invalid": "Inválido", "label.invalid-domain": "Dominio inválido", "label.last-days": "Últimos {x} días", @@ -34,6 +35,7 @@ "label.logout": "Cerrar sesión", "label.name": "Nombre", "label.new-password": "Nueva contraseña", + "label.pageview": "Pageview", "label.password": "Contraseña", "label.passwords-dont-match": "Las contraseñas no coinciden", "label.profile": "Perfil", @@ -45,8 +47,11 @@ "label.this-year": "Este año", "label.timezone": "Timezone", "label.today": "Hoy", + "label.type": "Type", "label.unknown": "Unknown", "label.username": "Nombre de usuario", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Sitios", "message.active-users": "{x} {x, plural, one {activo} other {activos}}", "message.confirm-delete": "¿Estás seguro(a) de querer eliminar {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Obtener código de rastreo", "message.go-to-settings": "Ir a la configuración", "message.incorrect-username-password": "Nombre de usuario o contraseña incorrectos.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Sin información disponible.", "message.no-websites-configured": "No tienes ningún sitio configurado.", diff --git a/lang/fo-FO.json b/lang/fo-FO.json index 2c379960..2969b83e 100644 --- a/lang/fo-FO.json +++ b/lang/fo-FO.json @@ -26,6 +26,7 @@ "label.default-date-range": "Standard dato", "label.domain": "Økisnavn", "label.enable-share-url": "Virkja deili leinki", + "label.event": "Event", "label.invalid": "Ógilda", "label.invalid-domain": "Ógilt økisnavn", "label.last-days": "Seinastu {x} dagarnar", @@ -34,6 +35,7 @@ "label.logout": "Rita út", "label.name": "Navn", "label.new-password": "Nýtt loyniorð", + "label.pageview": "Pageview", "label.password": "Loyniorð", "label.passwords-dont-match": "Loyniorðini eru ikki eins", "label.profile": "Brúkari", @@ -45,8 +47,11 @@ "label.this-year": "Hetta árið", "label.timezone": "Tíðarsona", "label.today": "Í dag", + "label.type": "Type", "label.unknown": "Ókent", "label.username": "Brúkaranavn", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Heimasíður", "message.active-users": "{x} í løtuni {x, plural, one {vitjandi} other { vitjandi }}", "message.confirm-delete": "Ert tú sikkur at tú ynskir at sletta {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Fá sporings kotu", "message.go-to-settings": "Far til stillingar", "message.incorrect-username-password": "Skeivt brúkaranavn/loyniorð.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Einki data tøk.", "message.no-websites-configured": "Tú hevur ongar heimasíður stillaða til.", diff --git a/lang/fr-FR.json b/lang/fr-FR.json index 013f89e5..b62ce587 100644 --- a/lang/fr-FR.json +++ b/lang/fr-FR.json @@ -26,6 +26,7 @@ "label.default-date-range": "Default date range", "label.domain": "Domaine", "label.enable-share-url": "Activer le partage d'URL", + "label.event": "Event", "label.invalid": "Invalide", "label.invalid-domain": "Domaine invalide", "label.last-days": "{x} derniers jours", @@ -34,6 +35,7 @@ "label.logout": "Déconnexion", "label.name": "Nom", "label.new-password": "Nouveau mot de passe", + "label.pageview": "Pageview", "label.password": "Mot de passe", "label.passwords-dont-match": "Les mots de passe ne correspondent pas", "label.profile": "Profile", @@ -45,8 +47,11 @@ "label.this-year": "Cette année", "label.timezone": "Timezone", "label.today": "Aujourd'hui", + "label.type": "Type", "label.unknown": "Unknown", "label.username": "Nom d'utilisateur", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Sites", "message.active-users": "{x} {x, plural, one {visiteur} other {visiteurs}} actuellement", "message.confirm-delete": "Êtes-vous sur de vouloir supprimer {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Obtenez le code de suivi", "message.go-to-settings": "Aller aux paramètres", "message.incorrect-username-password": "nom d'utilisateurs/mot de passe incorrect.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Pas de données disponibles.", "message.no-websites-configured": "Vous n'avez configuré aucun site Web.", diff --git a/lang/id-ID.json b/lang/id-ID.json index 8b09c0a6..8f12d762 100644 --- a/lang/id-ID.json +++ b/lang/id-ID.json @@ -26,6 +26,7 @@ "label.default-date-range": "Rentang tanggal default", "label.domain": "Domain", "label.enable-share-url": "Aktifkan URL berbagi", + "label.event": "Event", "label.invalid": "Tidak valid", "label.invalid-domain": "Domain tidak valid", "label.last-days": "{x} hari terakhir", @@ -34,6 +35,7 @@ "label.logout": "Keluar", "label.name": "Nama", "label.new-password": "Kata sandi baru", + "label.pageview": "Pageview", "label.password": "Kata sandi", "label.passwords-dont-match": "Kata sandi tidak cocok", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Tahun ini", "label.timezone": "Zona waktu", "label.today": "Hari ini", + "label.type": "Type", "label.unknown": "Tidak diketahui", "label.username": "Nama pengguna", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Situs web", "message.active-users": "{x} pengunjung saat ini", "message.confirm-delete": "Apakah kamu yakin ingin menghapus {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Dapatkan kode pelacakan", "message.go-to-settings": "Pergi ke pengaturan", "message.incorrect-username-password": "Nama pengguna/kata sandi salah.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Versi terbaru umami {version} telah tersedia!", "message.no-data-available": "Tidak ada data.", "message.no-websites-configured": "Anda tidak memiliki situs web yang dikonfigurasi.", diff --git a/lang/ja-JP.json b/lang/ja-JP.json index bbf73ed5..fd276b26 100644 --- a/lang/ja-JP.json +++ b/lang/ja-JP.json @@ -26,6 +26,7 @@ "label.default-date-range": "最初に表示する期間", "label.domain": "ドメイン", "label.enable-share-url": "共有リンクを有効にする", + "label.event": "Event", "label.invalid": "無効", "label.invalid-domain": "無効なドメイン", "label.last-days": "過去{x}日間", @@ -34,6 +35,7 @@ "label.logout": "ログアウト", "label.name": "名前", "label.new-password": "新しいパスワード", + "label.pageview": "Pageview", "label.password": "パスワード", "label.passwords-dont-match": "パスワードが一致しません", "label.profile": "プロファイル", @@ -45,8 +47,11 @@ "label.this-year": "今年", "label.timezone": "タイムゾーン", "label.today": "今日", + "label.type": "Type", "label.unknown": "不明", "label.username": "ユーザー名", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Webサイト", "message.active-users": "{x}人が閲覧中です。", "message.confirm-delete": "{target}を削除してもよろしいですか?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "トラッキングコードを取得", "message.go-to-settings": "設定する", "message.incorrect-username-password": "ユーザー名/パスワードが正しくありません。", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "新しいバージョン({version})が利用可能です!", "message.no-data-available": "データがありません。", "message.no-websites-configured": "Webサイトが設定されていません。", diff --git a/lang/mn-MN.json b/lang/mn-MN.json index 70af8f29..a6e632db 100644 --- a/lang/mn-MN.json +++ b/lang/mn-MN.json @@ -26,6 +26,7 @@ "label.default-date-range": "Өгөгдмөл хугацааны муж", "label.domain": "Домэйн", "label.enable-share-url": "Хуваалцах холбоос идэвхжүүлэх", + "label.event": "Event", "label.invalid": "Буруу", "label.invalid-domain": "Буруу домэйн", "label.last-days": "Сүүлийн {x} хоног", @@ -34,6 +35,7 @@ "label.logout": "Гарах", "label.name": "Нэр", "label.new-password": "Шинэ нууц үг", + "label.pageview": "Pageview", "label.password": "Нууц үг", "label.passwords-dont-match": "Нууц үг тохирохгүй байна", "label.profile": "Бүртгэл", @@ -45,8 +47,11 @@ "label.this-year": "Энэ жил", "label.timezone": "Цагийн бүс", "label.today": "Өнөөдөр", + "label.type": "Type", "label.unknown": "Тодорхойгүй", "label.username": "Хэрэглэгчийн нэр", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Вебүүд", "message.active-users": "одоо {x} {x, plural, one {зочин} other {зочин}} байна", "message.confirm-delete": "Та {target}-г устгахдаа итгэлтэй байна уу?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Мөрдөх код авах", "message.go-to-settings": "Тохиргоо руу очих", "message.incorrect-username-password": "Буруу хэрэглэгчийн нэр/нууц үг.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Umami-гийн шинэ хувилбар {version} гарсан байна!", "message.no-data-available": "Өгөгдөл алга.", "message.no-websites-configured": "Та ямар нэгэн веб тохируулаагүй байна.", diff --git a/lang/nb-NO.json b/lang/nb-NO.json index 8e93b05c..fc2664f9 100644 --- a/lang/nb-NO.json +++ b/lang/nb-NO.json @@ -26,6 +26,7 @@ "label.default-date-range": "Standard datoperiode", "label.domain": "Domene", "label.enable-share-url": "Aktiver delings-URL", + "label.event": "Event", "label.invalid": "Ugyldig", "label.invalid-domain": "Ugyldig domene", "label.last-days": "Siste {x} dager", @@ -34,6 +35,7 @@ "label.logout": "Logg ut", "label.name": "Navn", "label.new-password": "Nytt passord", + "label.pageview": "Pageview", "label.password": "Passord", "label.passwords-dont-match": "Passordene er ikke like", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "I år", "label.timezone": "Tidssone", "label.today": "I dag", + "label.type": "Type", "label.unknown": "Ukjent", "label.username": "Brukernavn", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Nettsteder", "message.active-users": "{x} {x, plural, one {besøkende} other {besøkende}} nå", "message.confirm-delete": "Er du sikker på at du vil slette {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Få sporingskode", "message.go-to-settings": "Gå til innstillinger", "message.incorrect-username-password": "Ugyldig brukernavn/passord.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "En ny versjon av umami {version} er tilgjengelig!", "message.no-data-available": "Ingen data tilgjengelig.", "message.no-websites-configured": "Du har ikke satt opp noen nettsteder.", diff --git a/lang/nl-NL.json b/lang/nl-NL.json index 8978d7ee..cbedfc4c 100644 --- a/lang/nl-NL.json +++ b/lang/nl-NL.json @@ -26,6 +26,7 @@ "label.default-date-range": "Standaard bereik", "label.domain": "Domein", "label.enable-share-url": "Sta delen via openbare URL toe", + "label.event": "Event", "label.invalid": "Ongeldig", "label.invalid-domain": "Ongeldig domein", "label.last-days": "Laatste {x} dagen", @@ -34,6 +35,7 @@ "label.logout": "Uitloggen", "label.name": "Naam", "label.new-password": "Nieuw wachtwoord", + "label.pageview": "Pageview", "label.password": "Wachtwoord", "label.passwords-dont-match": "Wachtwoorden komen niet overeen", "label.profile": "Profiel", @@ -45,8 +47,11 @@ "label.this-year": "Dit jaar", "label.timezone": "Tijdzone", "label.today": "Vandaag", + "label.type": "Type", "label.unknown": "Onbekend", "label.username": "Gebruikersnaam", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Websites", "message.active-users": "{x} actieve {x, plural, one {bezoeker} other {bezoekers}}", "message.confirm-delete": "Weet je zeker dat je {target} wilt verwijderen?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Tracking code", "message.go-to-settings": "Naar instellingen", "message.incorrect-username-password": "Incorrecte gebruikersnaam/wachtwoord.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Een nieuwe versie van umami {version} is beschikbaar!", "message.no-data-available": "Geen gegevens beschikbaar.", "message.no-websites-configured": "Je hebt geen websites ingesteld.", diff --git a/lang/pt-PT.json b/lang/pt-PT.json index 971c1aa7..ca31437b 100644 --- a/lang/pt-PT.json +++ b/lang/pt-PT.json @@ -26,6 +26,7 @@ "label.default-date-range": "Intervalo de datas predefinido", "label.domain": "Domínio", "label.enable-share-url": "Ativar link de partilha", + "label.event": "Event", "label.invalid": "Inválido", "label.invalid-domain": "Domínio inválido", "label.last-days": "Últimos {x} dias", @@ -34,6 +35,7 @@ "label.logout": "Sair", "label.name": "Nome", "label.new-password": "Nova palavra-passe", + "label.pageview": "Pageview", "label.password": "Palavra-passe", "label.passwords-dont-match": "Palavra-passes não correspondem", "label.profile": "Perfil", @@ -45,8 +47,11 @@ "label.this-year": "Este ano", "label.timezone": "Fuso horário", "label.today": "Hoje", + "label.type": "Type", "label.unknown": "Desconhecido", "label.username": "Nome de utilizador", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Websites", "message.active-users": "{x} {x, plural, one {visitante} other {visitantes}} neste momento", "message.confirm-delete": "Tens a certeza que queres eliminar {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Obter código de tracking", "message.go-to-settings": "Ir para as definições", "message.incorrect-username-password": "Nome de utilizador/palavra-passe incorretos.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Uma nova versão de umami {version} está disponível!", "message.no-data-available": "Sem dados disponíveis.", "message.no-websites-configured": "Não tens nenhum website configurado.", diff --git a/lang/ro-RO.json b/lang/ro-RO.json index 8e28f887..7103759a 100644 --- a/lang/ro-RO.json +++ b/lang/ro-RO.json @@ -26,6 +26,7 @@ "label.default-date-range": "Interval de date implicit", "label.domain": "Domeniu", "label.enable-share-url": "Activare adresa URL de distribuire", + "label.event": "Event", "label.invalid": "Invalid", "label.invalid-domain": "Invalid domain", "label.last-days": "Ultimele {x} zile", @@ -34,6 +35,7 @@ "label.logout": "Dezautentificare", "label.name": "Nume", "label.new-password": "Parola nouă", + "label.pageview": "Pageview", "label.password": "Parolă", "label.passwords-dont-match": "Parolele nu se potrivesc", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Acest an", "label.timezone": "Fus orar", "label.today": "Astăzi", + "label.type": "Type", "label.unknown": "Necunoscut", "label.username": "Username", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Site-uri web", "message.active-users": "{x} {x, plural, one {vizitator activ} other {vizitatori activi}}", "message.confirm-delete": "Sunteți sigur că doriți să ștergeți {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Obține codul de urmărire", "message.go-to-settings": "Mergi la Setări", "message.incorrect-username-password": "Username/parolă incorecte.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Este disponibilă o nouă versiune {version} de umami!", "message.no-data-available": "Nicio informație disponibilă.", "message.no-websites-configured": "Nu aveți niciun site web configurat.", diff --git a/lang/ru-RU.json b/lang/ru-RU.json index 05c9e0da..fb2c4088 100644 --- a/lang/ru-RU.json +++ b/lang/ru-RU.json @@ -26,6 +26,7 @@ "label.default-date-range": "Диапазон дат по-умолчанию", "label.domain": "Домен", "label.enable-share-url": "Разрешить делиться ссылкой", + "label.event": "Event", "label.invalid": "Некорректный", "label.invalid-domain": "Некорректный домен", "label.last-days": "Последние {x} дней", @@ -34,6 +35,7 @@ "label.logout": "Выйти", "label.name": "Имя", "label.new-password": "Новый пароль", + "label.pageview": "Pageview", "label.password": "Пароль", "label.passwords-dont-match": "Пароли не совпадают", "label.profile": "Профиль", @@ -45,8 +47,11 @@ "label.this-year": "Этот год", "label.timezone": "Часовой пояс", "label.today": "Сегодня", + "label.type": "Type", "label.unknown": "Неизвестно", "label.username": "Имя пользователя", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Сайты", "message.active-users": "{x} текущих посетителей", "message.confirm-delete": "Вы уверены, что хотите удалить {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Получить код отслеживания", "message.go-to-settings": "Перейти к настройкам", "message.incorrect-username-password": "Неверное имя пользователя/пароль.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Доступна новая версия umami {version}", "message.no-data-available": "Нет данных.", "message.no-websites-configured": "У вас нет настроенных сайтов.", diff --git a/lang/sv-SE.json b/lang/sv-SE.json index 5a1662a5..35e61fc7 100644 --- a/lang/sv-SE.json +++ b/lang/sv-SE.json @@ -26,6 +26,7 @@ "label.default-date-range": "Standard datum-urval", "label.domain": "Domän", "label.enable-share-url": "Aktivera delnings-URL", + "label.event": "Event", "label.invalid": "Ogiltig", "label.invalid-domain": "Ogiltig domän", "label.last-days": "Senaste {x} dagarna", @@ -34,6 +35,7 @@ "label.logout": "Logga ut", "label.name": "Namn", "label.new-password": "Nytt lösenord", + "label.pageview": "Pageview", "label.password": "Lösenord", "label.passwords-dont-match": "Lösenorden är inte samma", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Detta år", "label.timezone": "Tidszon", "label.today": "Idag", + "label.type": "Type", "label.unknown": "Okänd", "label.username": "Användarnamn", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Webbsajt", "message.active-users": "{x} {x, plural, one {besökare} other {besökare}} just nu", "message.confirm-delete": "Är du säker på att du vill radera {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Visa spårningskod", "message.go-to-settings": "Gå till inställningar", "message.incorrect-username-password": "Felaktikt användarnamn/lösenord.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Ingen data tillgänglig.", "message.no-websites-configured": "Du har inga webbsajter.", diff --git a/lang/tr-TR.json b/lang/tr-TR.json index b1b206f3..c16ba8e5 100644 --- a/lang/tr-TR.json +++ b/lang/tr-TR.json @@ -26,6 +26,7 @@ "label.default-date-range": "Varsayılan tarih aralığı", "label.domain": "Alan adı", "label.enable-share-url": "Anonim paylaşım URL'i aktif", + "label.event": "Event", "label.invalid": "Geçeriz", "label.invalid-domain": "Geçersiz alan adı", "label.last-days": "Son {x} gün", @@ -34,6 +35,7 @@ "label.logout": "Çıkış Yap", "label.name": "İsim", "label.new-password": "Yeni parola", + "label.pageview": "Pageview", "label.password": "Parola", "label.passwords-dont-match": "Parolalar uyuşmuyor", "label.profile": "Profil", @@ -45,8 +47,11 @@ "label.this-year": "Bu yıl", "label.timezone": "Zaman dilimi", "label.today": "Bugün", + "label.type": "Type", "label.unknown": "Bilinmeyen", "label.username": "Kullanıcı adı", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Web siteleri", "message.active-users": "{x} aktif ziyaretçi", "message.confirm-delete": "{target} kaydını silmek istediğinizden emin misiniz?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "İzleme kodunu al", "message.go-to-settings": "Ayarlara git", "message.incorrect-username-password": "Hatalı kullanıcı adı ya da parola.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "Henüz hiç veri yok.", "message.no-websites-configured": "Henüz hiç web sitesi tanımlamadınız", diff --git a/lang/uk-UA.json b/lang/uk-UA.json index 4d077847..7f92162e 100644 --- a/lang/uk-UA.json +++ b/lang/uk-UA.json @@ -26,6 +26,7 @@ "label.default-date-range": "Діапазон дат за умовчанням", "label.domain": "Домен", "label.enable-share-url": "Дозволити ділитися посиланням", + "label.event": "Event", "label.invalid": "Некоректний", "label.invalid-domain": "Некоректний домен", "label.last-days": "Останні {x} днів", @@ -34,6 +35,7 @@ "label.logout": "Вийти", "label.name": "Ім'я", "label.new-password": "Новий пароль", + "label.pageview": "Pageview", "label.password": "Пароль", "label.passwords-dont-match": "Паролі не співпадають", "label.profile": "Профіль", @@ -45,8 +47,11 @@ "label.this-year": "Поточний рік", "label.timezone": "Часовий пояс", "label.today": "Сьогодні", + "label.type": "Type", "label.unknown": "Невідомо", "label.username": "Ім'я користувача", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "Веб-сайти", "message.active-users": "{x} поточних відвідувачів", "message.confirm-delete": "Ви впевнені, що бажаєте видалити {target}?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "Отримати код для відслідковування", "message.go-to-settings": "Перейти до налаштувань", "message.incorrect-username-password": "Невірне ім'я користувача або пароль.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "Нова версія umami {version} доступна!", "message.no-data-available": "Немає даних.", "message.no-websites-configured": "У вас немає налаштованих веб-сайтів.", diff --git a/lang/zh-CN.json b/lang/zh-CN.json index 761ed17a..6f7150d9 100644 --- a/lang/zh-CN.json +++ b/lang/zh-CN.json @@ -26,6 +26,7 @@ "label.default-date-range": "默认日期范围", "label.domain": "域名", "label.enable-share-url": "激活共享链接", + "label.event": "Event", "label.invalid": "输入无效", "label.invalid-domain": "无效域名", "label.last-days": "最近 {x} 天", @@ -34,6 +35,7 @@ "label.logout": "退出", "label.name": "名字", "label.new-password": "新密码", + "label.pageview": "Pageview", "label.password": "密码", "label.passwords-dont-match": "密码不一致", "label.profile": "个人资料", @@ -45,8 +47,11 @@ "label.this-year": "今年", "label.timezone": "时区", "label.today": "今天", + "label.type": "Type", "label.unknown": "未知", "label.username": "用户名", + "label.visitor": "Visitor", + "label.website": "Website", "label.websites": "网站", "message.active-users": "当前在线 {x} 人", "message.confirm-delete": "你确定要删除{target}吗?", @@ -57,6 +62,7 @@ "message.get-tracking-code": "获得跟踪代码", "message.go-to-settings": "去设置", "message.incorrect-username-password": "用户名密码不正确.", + "message.log.visitor": "A visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", "message.no-data-available": "无可用数据.", "message.no-websites-configured": "你还没有设置任何网站.",