+
} size="large" className={styles.logo} />
umami
-
-
- {user ? (
- <>
-
-
-
-
-
-
-
-
- >
- ) : (
+
+ {user ? (
+
+
+
+
+
+
+
- )}
-
+
+
+ ) : (
+
+ )}
diff --git a/components/layout/Header.module.css b/components/layout/Header.module.css
index 7b63d754..6853eeda 100644
--- a/components/layout/Header.module.css
+++ b/components/layout/Header.module.css
@@ -12,15 +12,14 @@
}
.nav {
- list-style: none;
display: flex;
justify-content: flex-end;
align-items: center;
+ font-size: var(--font-size-normal);
+ font-weight: 600;
}
.nav > * {
- font-size: var(--font-size-normal);
- font-weight: 600;
margin-left: 40px;
}
@@ -28,9 +27,4 @@
.title {
text-align: center;
}
-
- .nav {
- display: flex;
- justify-content: space-evenly;
- }
}
diff --git a/components/settings/WebsiteSettings.js b/components/settings/WebsiteSettings.js
index e7ab18cc..3bcf6bb4 100644
--- a/components/settings/WebsiteSettings.js
+++ b/components/settings/WebsiteSettings.js
@@ -67,16 +67,16 @@ export default function WebsiteSettings() {
{
key: 'name',
label:
,
- className: 'col-6 col-md-4',
+ className: 'col-6 col-xl-4',
},
{
key: 'domain',
label:
,
- className: 'col-6 col-md-4',
+ className: 'col-6 col-xl-4',
},
{
key: 'action',
- className: classNames(styles.buttons, 'col-12 col-md-4 pt-2 pt-md-0'),
+ className: classNames(styles.buttons, 'col-12 col-xl-4 pt-2 pt-xl-0'),
render: Buttons,
},
];
diff --git a/lang/de-DE.json b/lang/de-DE.json
index 6a2fd992..e0186442 100644
--- a/lang/de-DE.json
+++ b/lang/de-DE.json
@@ -1,239 +1,239 @@
{
- "active-users.message": {
+ "active-users.message": {
"defaultMessage": "{x} {x, plural, one {aktiver Besucher} other {aktive Besucher}}"
- },
- "button.add-account": {
- "defaultMessage": "Konto hinzufügen"
- },
- "button.add-website": {
- "defaultMessage": "Webseite hinzufügen"
- },
- "button.back": {
- "defaultMessage": "Zurück"
- },
- "button.cancel": {
- "defaultMessage": "Abbrechen"
- },
- "button.change-password": {
- "defaultMessage": "Passwort ändern"
- },
- "button.copy-to-clipboard": {
+ },
+ "button.add-account": {
+ "defaultMessage": "Konto hinzufügen"
+ },
+ "button.add-website": {
+ "defaultMessage": "Webseite hinzufügen"
+ },
+ "button.back": {
+ "defaultMessage": "Zurück"
+ },
+ "button.cancel": {
+ "defaultMessage": "Abbrechen"
+ },
+ "button.change-password": {
+ "defaultMessage": "Passwort ändern"
+ },
+ "button.copy-to-clipboard": {
"defaultMessage": "In die Zwischenablage kopieren"
- },
- "button.delete": {
- "defaultMessage": "Löschen"
- },
- "button.edit": {
- "defaultMessage": "Bearbeiten"
- },
- "button.login": {
+ },
+ "button.delete": {
+ "defaultMessage": "Löschen"
+ },
+ "button.edit": {
+ "defaultMessage": "Bearbeiten"
+ },
+ "button.login": {
"defaultMessage": "Anmelden"
- },
- "button.more": {
- "defaultMessage": "Mehr"
- },
- "button.save": {
- "defaultMessage": "Speichern"
- },
- "button.view-details": {
+ },
+ "button.more": {
+ "defaultMessage": "Mehr"
+ },
+ "button.save": {
+ "defaultMessage": "Speichern"
+ },
+ "button.view-details": {
"defaultMessage": "Details anzeigen"
- },
- "footer.powered-by": {
- "defaultMessage": "powered by"
- },
- "header.nav.dashboard": {
- "defaultMessage": "Übersicht"
- },
- "header.nav.settings": {
- "defaultMessage": "Einstellungen"
- },
- "label.administrator": {
- "defaultMessage": "Administrator"
- },
- "label.confirm-password": {
- "defaultMessage": "Passwort wiederholen"
- },
- "label.current-password": {
- "defaultMessage": "Derzeitiges Passwort"
- },
- "label.domain": {
+ },
+ "footer.powered-by": {
+ "defaultMessage": "Powered by"
+ },
+ "header.nav.dashboard": {
+ "defaultMessage": "Übersicht"
+ },
+ "header.nav.settings": {
+ "defaultMessage": "Einstellungen"
+ },
+ "label.administrator": {
+ "defaultMessage": "Administrator"
+ },
+ "label.confirm-password": {
+ "defaultMessage": "Passwort wiederholen"
+ },
+ "label.current-password": {
+ "defaultMessage": "Derzeitiges Passwort"
+ },
+ "label.domain": {
"defaultMessage": "Domain"
- },
- "label.enable-share-url": {
+ },
+ "label.enable-share-url": {
"defaultMessage": "Freigabe-URL aktivieren"
- },
- "label.invalid": {
- "defaultMessage": "Ungültig"
- },
- "label.invalid-domain": {
+ },
+ "label.invalid": {
+ "defaultMessage": "Ungültig"
+ },
+ "label.invalid-domain": {
"defaultMessage": "Ungültige Domain"
- },
- "label.last-days": {
- "defaultMessage": "Letzten {x} Tage"
- },
- "label.last-hours": {
- "defaultMessage": "Letzten {x} Stunden"
- },
- "label.logged-in-as": {
+ },
+ "label.last-days": {
+ "defaultMessage": "Letzten {x} Tage"
+ },
+ "label.last-hours": {
+ "defaultMessage": "Letzten {x} Stunden"
+ },
+ "label.logged-in-as": {
"defaultMessage": "Angemeldet als {username}"
- },
- "label.logout": {
- "defaultMessage": "Abmelden"
- },
- "label.name": {
- "defaultMessage": "Name"
- },
- "label.new-password": {
- "defaultMessage": "Neues Passwort"
- },
- "label.password": {
- "defaultMessage": "Passwort"
- },
- "label.passwords-dont-match": {
- "defaultMessage": "Passwörter stimmen nicht überein"
- },
- "label.required": {
- "defaultMessage": "Erforderlich"
- },
- "label.this-month": {
- "defaultMessage": "Diesen Monat"
- },
- "label.this-week": {
- "defaultMessage": "Diese Woche"
- },
- "label.this-year": {
- "defaultMessage": "Dieses Jahr"
- },
- "label.today": {
- "defaultMessage": "Heute"
- },
- "label.username": {
- "defaultMessage": "Benutzername"
- },
- "message.confirm-delete": {
- "defaultMessage": "Sind sie sich sicher {target} zu löschen?"
- },
- "message.copied": {
- "defaultMessage": "In Zwischenablage kopiert!"
- },
- "message.delete-warning": {
+ },
+ "label.logout": {
+ "defaultMessage": "Abmelden"
+ },
+ "label.name": {
+ "defaultMessage": "Name"
+ },
+ "label.new-password": {
+ "defaultMessage": "Neues Passwort"
+ },
+ "label.password": {
+ "defaultMessage": "Passwort"
+ },
+ "label.passwords-dont-match": {
+ "defaultMessage": "Passwörter stimmen nicht überein"
+ },
+ "label.required": {
+ "defaultMessage": "Erforderlich"
+ },
+ "label.this-month": {
+ "defaultMessage": "Diesen Monat"
+ },
+ "label.this-week": {
+ "defaultMessage": "Diese Woche"
+ },
+ "label.this-year": {
+ "defaultMessage": "Dieses Jahr"
+ },
+ "label.today": {
+ "defaultMessage": "Heute"
+ },
+ "label.username": {
+ "defaultMessage": "Benutzername"
+ },
+ "message.confirm-delete": {
+ "defaultMessage": "Sind sie sich sicher {target} zu löschen?"
+ },
+ "message.copied": {
+ "defaultMessage": "In Zwischenablage kopiert!"
+ },
+ "message.delete-warning": {
"defaultMessage": "Alle zugehörigen Daten werden auch gelöscht."
- },
- "message.failure": {
- "defaultMessage": "Es it ein Fehler aufgetreten."
- },
- "message.incorrect-username-password": {
- "defaultMessage": "Falsches Passwort oder Benutzername."
- },
- "message.no-data-available": {
+ },
+ "message.failure": {
+ "defaultMessage": "Es it ein Fehler aufgetreten."
+ },
+ "message.incorrect-username-password": {
+ "defaultMessage": "Falsches Passwort oder Benutzername."
+ },
+ "message.no-data-available": {
"defaultMessage": "Keine Daten vorhanden."
- },
- "message.save-success": {
- "defaultMessage": "Erfolgreich gespeichert."
- },
- "message.share-url": {
- "defaultMessage": "Dies ist der öffentliche URL zum Teilen für {target}."
- },
- "message.track-stats": {
- "defaultMessage": "Um die Statistiken für {target} zu übermitteln, platzieren Sie bitte den folgenden Quelltext im {head} ihrer Homepage."
- },
- "message.type-delete": {
+ },
+ "message.save-success": {
+ "defaultMessage": "Erfolgreich gespeichert."
+ },
+ "message.share-url": {
+ "defaultMessage": "Dies ist der öffentliche URL zum Teilen für {target}."
+ },
+ "message.track-stats": {
+ "defaultMessage": "Um die Statistiken für {target} zu übermitteln, platzieren Sie bitte den folgenden Quelltext im {head} ihrer Homepage."
+ },
+ "message.type-delete": {
"defaultMessage": "Geben Sie {delete} in das Feld unten ein um zu bestätigen."
- },
- "metrics.actions": {
- "defaultMessage": "Aktionen"
- },
- "metrics.average-visit-time": {
+ },
+ "metrics.actions": {
+ "defaultMessage": "Aktionen"
+ },
+ "metrics.average-visit-time": {
"defaultMessage": "Durchschn. Besuchszeit"
- },
- "metrics.bounce-rate": {
+ },
+ "metrics.bounce-rate": {
"defaultMessage": "Absprungrate"
- },
- "metrics.browsers": {
- "defaultMessage": "Browsers"
- },
- "metrics.countries": {
- "defaultMessage": "Länder"
- },
- "metrics.devices": {
- "defaultMessage": "Geräte"
- },
- "metrics.events": {
- "defaultMessage": "Events"
- },
- "metrics.filter.combined": {
- "defaultMessage": "Kombiniert"
- },
- "metrics.filter.domain-only": {
- "defaultMessage": "Nur diese Domain"
- },
- "metrics.filter.raw": {
+ },
+ "metrics.browsers": {
+ "defaultMessage": "Browsers"
+ },
+ "metrics.countries": {
+ "defaultMessage": "Länder"
+ },
+ "metrics.devices": {
+ "defaultMessage": "Geräte"
+ },
+ "metrics.events": {
+ "defaultMessage": "Events"
+ },
+ "metrics.filter.combined": {
+ "defaultMessage": "Kombiniert"
+ },
+ "metrics.filter.domain-only": {
+ "defaultMessage": "Nur diese Domain"
+ },
+ "metrics.filter.raw": {
"defaultMessage": "Rohdaten"
- },
- "metrics.operating-system": {
- "defaultMessage": "Betriebssystem"
- },
- "metrics.page-views": {
- "defaultMessage": "Seitenaufrufe"
- },
- "metrics.pages": {
- "defaultMessage": "Seiten"
- },
- "metrics.referrers": {
- "defaultMessage": "Referrers"
- },
- "metrics.unique-visitors": {
- "defaultMessage": "Eindeutige Besucher"
- },
- "metrics.views": {
+ },
+ "metrics.operating-system": {
+ "defaultMessage": "Betriebssystem"
+ },
+ "metrics.page-views": {
+ "defaultMessage": "Seitenaufrufe"
+ },
+ "metrics.pages": {
+ "defaultMessage": "Seiten"
+ },
+ "metrics.referrers": {
+ "defaultMessage": "Referrers"
+ },
+ "metrics.unique-visitors": {
+ "defaultMessage": "Eindeutige Besucher"
+ },
+ "metrics.views": {
"defaultMessage": "Aufrufe"
- },
- "metrics.visitors": {
- "defaultMessage": "Besucher"
- },
- "placeholder.message.go-to-settings": {
+ },
+ "metrics.visitors": {
+ "defaultMessage": "Besucher"
+ },
+ "placeholder.message.go-to-settings": {
"defaultMessage": "Zu den Einstellungen"
- },
- "placeholder.message.no-websites-configured": {
- "defaultMessage": "Es ist keine Webseite vorhanden."
- },
- "settings.accounts": {
- "defaultMessage": "Konten"
- },
- "settings.profile": {
- "defaultMessage": "Profil"
- },
- "settings.websites": {
- "defaultMessage": "Webseiten"
- },
- "title.add-account": {
- "defaultMessage": "Konto hinzugfügen"
- },
- "title.add-website": {
- "defaultMessage": "Webseite hinzufügen"
- },
- "title.delete-account": {
- "defaultMessage": "Konto löschen"
- },
- "title.delete-website": {
- "defaultMessage": "Webseite löschen"
- },
- "title.edit-account": {
- "defaultMessage": "Konto bearbeiten"
- },
- "title.edit-website": {
- "defaultMessage": "Webseite bearbeiten"
- },
- "title.share-url": {
+ },
+ "placeholder.message.no-websites-configured": {
+ "defaultMessage": "Es ist keine Webseite vorhanden."
+ },
+ "settings.accounts": {
+ "defaultMessage": "Konten"
+ },
+ "settings.profile": {
+ "defaultMessage": "Profil"
+ },
+ "settings.websites": {
+ "defaultMessage": "Webseiten"
+ },
+ "title.add-account": {
+ "defaultMessage": "Konto hinzugfügen"
+ },
+ "title.add-website": {
+ "defaultMessage": "Webseite hinzufügen"
+ },
+ "title.delete-account": {
+ "defaultMessage": "Konto löschen"
+ },
+ "title.delete-website": {
+ "defaultMessage": "Webseite löschen"
+ },
+ "title.edit-account": {
+ "defaultMessage": "Konto bearbeiten"
+ },
+ "title.edit-website": {
+ "defaultMessage": "Webseite bearbeiten"
+ },
+ "title.share-url": {
"defaultMessage": "Freigabe-URL"
- },
- "title.tracking-code": {
- "defaultMessage": "Tracking Kennung"
- },
- "tooltip.get-share-url": {
+ },
+ "title.tracking-code": {
+ "defaultMessage": "Tracking Kennung"
+ },
+ "tooltip.get-share-url": {
"defaultMessage": "Freigabe-URL abrufen"
- },
- "tooltip.get-tracking-code": {
- "defaultMessage": "Erstelle Tracking Kennung"
- }
- }
\ No newline at end of file
+ },
+ "tooltip.get-tracking-code": {
+ "defaultMessage": "Erstelle Tracking Kennung"
+ }
+}
diff --git a/lang/en.json b/lang/en.json
index 3084be8a..bcc7bcb4 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -39,7 +39,7 @@
"defaultMessage": "View details"
},
"footer.powered-by": {
- "defaultMessage": "powered by"
+ "defaultMessage": "Powered by"
},
"header.nav.dashboard": {
"defaultMessage": "Dashboard"
@@ -236,4 +236,4 @@
"tooltip.get-tracking-code": {
"defaultMessage": "Get tracking code"
}
-}
\ No newline at end of file
+}
diff --git a/lang/tr-TR.json b/lang/tr-TR.json
index 3783f595..cdeed558 100644
--- a/lang/tr-TR.json
+++ b/lang/tr-TR.json
@@ -236,4 +236,4 @@
"tooltip.get-tracking-code": {
"defaultMessage": "İzleme kodunu al"
}
-}
\ No newline at end of file
+}
diff --git a/lang/zh-CN.json b/lang/zh-CN.json
index 72427a77..7bea19ca 100644
--- a/lang/zh-CN.json
+++ b/lang/zh-CN.json
@@ -236,4 +236,4 @@
"tooltip.get-tracking-code": {
"defaultMessage": "获得跟踪代码"
}
-}
\ No newline at end of file
+}
diff --git a/lib/lang.js b/lib/lang.js
index 446e2e9b..e05a7d42 100644
--- a/lib/lang.js
+++ b/lib/lang.js
@@ -1,11 +1,11 @@
+import { format } from 'date-fns';
+import { enUS, nl, zhCN, tr, ru, de } from 'date-fns/locale';
import enMessages from 'lang-compiled/en.json';
import nlMessages from 'lang-compiled/nl-NL.json';
import zhCNMessages from 'lang-compiled/zh-CN.json';
import trTRMessages from 'lang-compiled/tr-TR.json';
import ruRUMessages from 'lang-compiled/ru-RU.json';
import deDEMessages from 'lang-compiled/de-DE.json';
-import { format } from 'date-fns';
-import { enUS, nl, zhCN , tr, ru, de} from 'date-fns/locale';
export const messages = {
en: enMessages,
@@ -27,10 +27,10 @@ export const dateLocales = {
export const menuOptions = [
{ label: 'English', value: 'en', display: 'EN' },
- { label: 'Nederlands', value: 'nl-NL', display: 'NL' },
{ label: '中文 (Chinese Simplified)', value: 'zh-CN', display: '中文' },
- { label: 'Deutsch' , value:"de-DE", display: 'DE'},
- { label: 'Русский', value: 'ru-RU', display: 'РУ' },
+ { label: 'Deutsch (German)', value: 'de-DE', display: 'DE' },
+ { label: 'Nederlands (Dutch)', value: 'nl-NL', display: 'NL' },
+ { label: 'Русский (Russian)', value: 'ru-RU', display: 'РУ' },
{ label: 'Turkish', value: 'tr-TR', display: 'TR' },
];
diff --git a/next.config.js b/next.config.js
index 119d48c3..0ddfc76a 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,6 +1,10 @@
require('dotenv').config();
+const pkg = require('./package.json');
module.exports = {
+ env: {
+ VERSION: pkg.version,
+ },
webpack(config) {
config.module.rules.push({
test: /\.svg$/,
diff --git a/package.json b/package.json
index 9bcda131..b8ff901c 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,9 @@
"**/*.css": [
"stylelint --fix",
"prettier --write"
+ ],
+ "**/*.json": [
+ "prettier --write"
]
},
"husky": {