diff --git a/components/common/LanguageButton.js b/components/common/LanguageButton.js index 291f27d2..76154e24 100644 --- a/components/common/LanguageButton.js +++ b/components/common/LanguageButton.js @@ -32,6 +32,7 @@ export default function LanguageButton({ menuPosition = 'bottom', menuAlign = 'l {showMenu && ( -
setShowMenu(state => !state)}> +
setShowMenu(state => !state)}> } size="large" /> } size="small" />
diff --git a/components/common/UserButton.module.css b/components/common/UserButton.module.css index 0865cde3..d848c8e3 100644 --- a/components/common/UserButton.module.css +++ b/components/common/UserButton.module.css @@ -4,6 +4,11 @@ cursor: pointer; } +.button { + display: flex; + flex-wrap: nowrap; +} + .username { border-bottom: 1px solid var(--gray500); } diff --git a/components/layout/Footer.js b/components/layout/Footer.js index b246c544..241ac275 100644 --- a/components/layout/Footer.js +++ b/components/layout/Footer.js @@ -1,23 +1,22 @@ import React from 'react'; import { FormattedMessage } from 'react-intl'; -import Link from 'next/link'; import classNames from 'classnames'; import Button from 'components/common/Button'; import Logo from 'assets/logo.svg'; import styles from './Footer.module.css'; export default function Footer() { + const version = process.env.VERSION; return ( ); diff --git a/components/layout/Footer.module.css b/components/layout/Footer.module.css index 45567f87..87008340 100644 --- a/components/layout/Footer.module.css +++ b/components/layout/Footer.module.css @@ -11,5 +11,5 @@ } .button { - margin-left: 10px; + margin: 0 5px; } diff --git a/components/layout/Header.js b/components/layout/Header.js index e52d986f..782d4327 100644 --- a/components/layout/Header.js +++ b/components/layout/Header.js @@ -15,29 +15,27 @@ export default function Header() { return (
-
+
} 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": {