diff --git a/Dockerfile b/Dockerfile index e0c7e8c3..6674163a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -53,6 +53,7 @@ USER nextjs EXPOSE 3000 +ENV HOSTNAME 0.0.0.0 ENV PORT 3000 CMD ["yarn", "start-docker"] diff --git a/src/components/input/ProfileButton.js b/src/components/input/ProfileButton.js index 015c0ad8..35b0eb45 100644 --- a/src/components/input/ProfileButton.js +++ b/src/components/input/ProfileButton.js @@ -3,8 +3,9 @@ import { useRouter } from 'next/router'; import Icons from 'components/icons'; import useMessages from 'components/hooks/useMessages'; import useUser from 'components/hooks/useUser'; -import styles from './ProfileButton.module.css'; import useLocale from 'components/hooks/useLocale'; +import { CURRENT_VERSION } from 'lib/constants'; +import styles from './ProfileButton.module.css'; export function ProfileButton() { const { formatMessage, labels } = useMessages(); @@ -51,6 +52,7 @@ export function ProfileButton() { {formatMessage(labels.logout)} )} +
{`v${CURRENT_VERSION}`}
diff --git a/src/components/input/ProfileButton.module.css b/src/components/input/ProfileButton.module.css index 8b1897bd..e7843344 100644 --- a/src/components/input/ProfileButton.module.css +++ b/src/components/input/ProfileButton.module.css @@ -8,3 +8,11 @@ gap: 12px; background: var(--base50); } + +.version { + font-family: monospace; + font-size: 11px; + color: var(--base600); + text-align: right; + margin-right: 10px; +} diff --git a/src/lang/de-DE.json b/src/lang/de-DE.json index 0724c181..68889803 100644 --- a/src/lang/de-DE.json +++ b/src/lang/de-DE.json @@ -2,18 +2,18 @@ "label.access-code": "Zugangscode", "label.actions": "Aktionen", "label.activity-log": "Aktivitätsverlauf", - "label.add": "Add", + "label.add": "Hinzufügen", "label.add-description": "Beschreibung hinzufügen", - "label.add-website": "Webseite hinzufügen", + "label.add-website": "Website hinzufügen", "label.admin": "Administrator", - "label.after": "After", + "label.after": "Nach", "label.all": "Alle", "label.all-time": "Gesamter Zeitraum", "label.analytics": "Analytics", "label.average": "Durchschnitt", "label.average-visit-time": "Durchschn. Besuchszeit", "label.back": "Zurück", - "label.before": "Before", + "label.before": "Vor", "label.bounce-rate": "Absprungrate", "label.breakdown": "Breakdown", "label.browser": "Browser", @@ -21,16 +21,15 @@ "label.cancel": "Abbrechen", "label.change-password": "Passwort ändern", "label.cities": "Städte", - "label.city": "City", + "label.city": "Stadt", "label.clear-all": "Alles löschen", "label.confirm": "Bestätigen", "label.confirm-password": "Passwort wiederholen", - "label.contains": "Contains", + "label.contains": "Enthält", "label.continue": "Weiter", "label.countries": "Länder", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Report erstellen", + "label.country": "Land", + "label.create-report": "Bericht erstellen", "label.create-team": "Team erstellen", "label.create-user": "Benutzer erstellen", "label.created": "Erstellt", @@ -38,46 +37,45 @@ "label.custom-range": "Benutzerdefinierter Bereich", "label.dashboard": "Übersicht", "label.data": "Daten", - "label.date": "Date", + "label.date": "Datum", "label.date-range": "Datumsbereich", - "label.day": "Day", + "label.day": "Tag", "label.default-date-range": "Voreingestellter Datumsbereich", "label.delete": "Löschen", "label.delete-team": "Team löschen", "label.delete-user": "Benutzer löschen", - "label.delete-website": "Webseite löschen", + "label.delete-website": "Website löschen", "label.description": "Beschreibung", "label.desktop": "Desktop", "label.details": "Details", - "label.device": "Device", + "label.device": "Gerät", "label.devices": "Geräte", "label.dismiss": "Verwerfen", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Enthält nicht", "label.domain": "Domain", "label.dropoff": "Dropoff", "label.edit": "Bearbeiten", "label.edit-dashboard": "Dashboard bearbeiten", "label.enable-share-url": "Freigabe-URL aktivieren", "label.event": "Event", - "label.event-data": "Event daten", + "label.event-data": "Eventdaten", "label.events": "Ereignisse", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", - "label.filter": "Filter", + "label.false": "Falsch", + "label.field": "Feld", + "label.fields": "Felder", "label.filter": "Filter", "label.filter-combined": "Kombiniert", "label.filter-raw": "Rohdaten", - "label.filters": "Filters", + "label.filters": "Filter", "label.funnel": "Funnel", "label.funnel-description": "Understand the conversion and drop-off rate of users.", "label.greater-than": "Größer als", "label.greater-than-equals": "Größer oder gleich", "label.insights": "Insights", "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", + "label.is": "Ist", + "label.is-not": "Ist nicht", + "label.is-not-set": "Ist nicht gesetzt", + "label.is-set": "Ist gesetzt", "label.join": "Beitreten", "label.join-team": "Team beitreten", "label.language": "Sprache", @@ -96,16 +94,16 @@ "label.min": "Min", "label.mobile": "Handy", "label.more": "Mehr", - "label.my-websites": "My websites", + "label.my-websites": "Meine Websites", "label.name": "Name", "label.new-password": "Neues Passwort", "label.none": "Keine", "label.os": "OS", "label.overview": "Übersicht", "label.owner": "Besitzer", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Seite {current} von {total}", "label.page-views": "Seitenaufrufe", - "label.pageTitle": "Page title", + "label.pageTitle": "Seitentitel", "label.pages": "Seiten", "label.password": "Passwort", "label.powered-by": "Betrieben durch {name}", @@ -121,7 +119,7 @@ "label.region": "Region", "label.regions": "Regionen", "label.remove": "Entfernen", - "label.reports": "Reporte", + "label.reports": "Berichte", "label.required": "Erforderlich", "label.reset": "Zurücksetzen", "label.reset-website": "Statistik zurücksetzen", @@ -134,19 +132,19 @@ "label.search": "Search", "label.select-date": "Datum auswählen", "label.select-website": "Website auswählen", - "label.sessions": "Sessions", + "label.sessions": "Sitzungen", "label.settings": "Einstellungen", "label.share-url": "Freigabe-URL", "label.single-day": "Ein Tag", "label.sum": "Summe", "label.tablet": "Tablet", "label.team": "Team", - "label.team-guest": "Team Gast", - "label.team-id": "Team ID", - "label.team-member": "Team Mitglied", - "label.team-name": "Team name", - "label.team-owner": "Team Eigentümer", - "label.team-websites": "Team websites", + "label.team-guest": "Gast des Teams", + "label.team-id": "Team-ID", + "label.team-member": "Team-Mitglied", + "label.team-name": "Name des Teams", + "label.team-owner": "Team-Eigentümer", + "label.team-websites": "Team-Websites", "label.teams": "Teams", "label.theme": "Thema", "label.this-month": "Diesen Monat", @@ -156,61 +154,61 @@ "label.title": "Titel", "label.today": "Heute", "label.toggle-charts": "Schaubilder umschalten", - "label.total": "Total", - "label.total-records": "Total records", + "label.total": "Gesamt", + "label.total-records": "Datensätze insgesamt", "label.tracking-code": "Tracking Code", - "label.true": "True", - "label.type": "Type", - "label.unique": "Unique", + "label.true": "Wahr", + "label.type": "Typ", + "label.unique": "Eindeutig", "label.unique-visitors": "Eindeutige Besucher", "label.unknown": "Unbekannt", - "label.untitled": "Untitled", + "label.untitled": "Unbenannt", "label.url": "URL", "label.urls": "URLs", "label.user": "Benutzer", "label.username": "Benutzername", "label.users": "Benutzer", - "label.value": "Value", + "label.value": "Wert", "label.view": "Anzeigen", "label.view-details": "Details anzeigen", - "label.view-only": "View only", + "label.view-only": "Nur ansehen", "label.views": "Aufrufe", "label.visitors": "Besucher", - "label.website": "Webseite", - "label.website-id": "Webseite ID", - "label.websites": "Webseiten", - "label.window": "Window", + "label.website": "Website", + "label.website-id": "Website ID", + "label.websites": "Websites", + "label.window": "Fenster", "label.yesterday": "Gestern", "message.active-users": "{x} {x, plural, one {aktiver Besucher} other {aktive Besucher}}", "message.confirm-delete": "Sind Sie sich sicher, {target} zu löschen?", "message.confirm-leave": "Sind Sie sicher, dass die {target} verlassen möchten?", "message.confirm-reset": "Sind Sie sicher, dass Sie die Statistiken von {target} zurücksetzen wollen?", - "message.delete-account": "To delete this account, type {confirmation} in the box below to confirm.", - "message.delete-website": "To delete this website, type {confirmation} in the box below to confirm.", + "message.delete-account": "Um dieses Konto zu löschen, geben Sie zur Bestätigung {confirmation} in das Feld unten ein.", + "message.delete-website": "Um diese Website zu löschen, geben Sie zur Bestätigung {confirmation} in das Feld unten ein.", "message.delete-website-warning": "Alle zugehörigen Daten werden ebenfalls gelöscht.", "message.error": "Es ist ein Fehler aufgetreten.", "message.event-log": "{event} auf {url}", "message.go-to-settings": "Zu den Einstellungen", "message.incorrect-username-password": "Falsches Passwort oder Benutzername.", "message.invalid-domain": "Ungültige Domain", - "message.min-password-length": "Minimale länge von {n} Zeichen", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.min-password-length": "Minimale Länge von {n} Zeichen", + "message.new-version-available": "Eine neue Version von Umami ist verfügbar: {version}", "message.no-data-available": "Keine Daten vorhanden.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Es sind keine Ereignisdaten verfügbar.", "message.no-match-password": "Passwörter stimmen nicht überein", "message.no-results-found": "Keine Ergebnisse gefunden.", "message.no-team-websites": "Diesem Team sind keine Websites zugeordnet.", "message.no-teams": "Bisher wurden keine Teams erstellt.", "message.no-users": "Hier gibt es keine Benutzer.", - "message.no-websites-configured": "Es ist keine Webseite vorhanden.", + "message.no-websites-configured": "Es ist keine Website vorhanden.", "message.page-not-found": "Seite nicht gefunden.", - "message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.", - "message.reset-website-warning": "Alle Daten für diese Webseite werden gelöscht, jedoch bleibt der Tracking Code bestehen.", + "message.reset-website": "Um diese Website zurückzusetzen, geben Sie zur Bestätigung {confirmation} in das Feld unten ein.", + "message.reset-website-warning": "Alle Daten für diese Website werden gelöscht, jedoch bleibt der Tracking Code bestehen.", "message.saved": "Erfolgreich gespeichert.", - "message.share-url": "Ihre Webseitenstatistik ist unter der folgenden URL öffentlich zugänglich:", + "message.share-url": "Die Statistiken Ihrer Website sind unter folgender URL öffentlich zugänglich:", "message.team-already-member": "Sie sind bereits Mitglied des Teams.", "message.team-not-found": "Team nicht gefunden.", - "message.team-websites-info": "Webseiten können von jedem im Team eingesehen werden.", + "message.team-websites-info": "Websites können von jedem im Team eingesehen werden.", "message.tracking-code": "Tracking Code", "message.user-deleted": "Benutzer gelöscht.", "message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}"