mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-15 17:55:08 +01:00
commit
fe084756b2
@ -17,7 +17,7 @@ export default function EventsTable({ websiteId, ...props }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const Label = ({ value }) => {
|
const Label = ({ value }) => {
|
||||||
const [event, label] = value.split(':');
|
const [event, label] = value.split('\t');
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Tag>{event}</Tag>
|
<Tag>{event}</Tag>
|
||||||
|
@ -60,7 +60,7 @@
|
|||||||
"message.confirm-delete": "Sind sie sich sicher {target} zu löschen?",
|
"message.confirm-delete": "Sind sie sich sicher {target} zu löschen?",
|
||||||
"message.copied": "In Zwischenablage kopiert!",
|
"message.copied": "In Zwischenablage kopiert!",
|
||||||
"message.delete-warning": "Alle zugehörigen Daten werden auch gelöscht.",
|
"message.delete-warning": "Alle zugehörigen Daten werden auch gelöscht.",
|
||||||
"message.failure": "Es it ein Fehler aufgetreten.",
|
"message.failure": "Es ist ein Fehler aufgetreten.",
|
||||||
"message.get-share-url": "Freigabe-URL abrufen",
|
"message.get-share-url": "Freigabe-URL abrufen",
|
||||||
"message.get-tracking-code": "Erstelle Tracking Kennung",
|
"message.get-tracking-code": "Erstelle Tracking Kennung",
|
||||||
"message.go-to-settings": "Zu den Einstellungen",
|
"message.go-to-settings": "Zu den Einstellungen",
|
||||||
@ -72,7 +72,7 @@
|
|||||||
"message.page-not-found": "Seite nicht gefunden.",
|
"message.page-not-found": "Seite nicht gefunden.",
|
||||||
"message.powered-by": "Ermöglicht durch {name}",
|
"message.powered-by": "Ermöglicht durch {name}",
|
||||||
"message.save-success": "Erfolgreich gespeichert.",
|
"message.save-success": "Erfolgreich gespeichert.",
|
||||||
"message.share-url": "Dies ist der öffentliche URL zum Teilen für {target}.",
|
"message.share-url": "Dies ist die öffentliche URL zum Teilen für {target}.",
|
||||||
"message.track-stats": "Um die Statistiken für {target} zu übermitteln, platzieren Sie bitte den folgenden Quelltext im {head} ihrer Homepage.",
|
"message.track-stats": "Um die Statistiken für {target} zu übermitteln, platzieren Sie bitte den folgenden Quelltext im {head} ihrer Homepage.",
|
||||||
"message.type-delete": "Geben Sie {delete} in das Feld unten ein um zu bestätigen.",
|
"message.type-delete": "Geben Sie {delete} in das Feld unten ein um zu bestätigen.",
|
||||||
"metrics.actions": "Aktionen",
|
"metrics.actions": "Aktionen",
|
||||||
|
99
lang/he-IL.json
Normal file
99
lang/he-IL.json
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"label.accounts": "חשבונות",
|
||||||
|
"label.add-account": "הוספה",
|
||||||
|
"label.add-website": "הוספת אתר",
|
||||||
|
"label.administrator": "מנהל",
|
||||||
|
"label.all": "הכל",
|
||||||
|
"label.all-websites": "כל האתרים",
|
||||||
|
"label.back": "חזרה",
|
||||||
|
"label.cancel": "ביטול",
|
||||||
|
"label.change-password": "שינוי סיסמה",
|
||||||
|
"label.confirm-password": "אישור סיסמה",
|
||||||
|
"label.copy-to-clipboard": "העתקה",
|
||||||
|
"label.current-password": "סיסמה נוכחית",
|
||||||
|
"label.custom-range": "טווח מותאם",
|
||||||
|
"label.dashboard": "דשבורד",
|
||||||
|
"label.date-range": "טווח תאריכים",
|
||||||
|
"label.default-date-range": "טווח תאריכים בברירת מחדל",
|
||||||
|
"label.delete": "הסרה",
|
||||||
|
"label.delete-account": "הסרת חשבון",
|
||||||
|
"label.delete-website": "הסרת אתר",
|
||||||
|
"label.dismiss": "שיחרור",
|
||||||
|
"label.domain": "דומיין",
|
||||||
|
"label.edit": "עריכה",
|
||||||
|
"label.edit-account": "עריכת חשבון",
|
||||||
|
"label.edit-website": "עריכת אתר",
|
||||||
|
"label.enable-share-url": "הפעלת URL שיתוף",
|
||||||
|
"label.invalid": "לא תקין",
|
||||||
|
"label.invalid-domain": "דומיין לא תקין",
|
||||||
|
"label.last-days": "{x} ימים אחרונים",
|
||||||
|
"label.last-hours": "{x} שעות אחרונות",
|
||||||
|
"label.logged-in-as": "מחובר כ-{username}",
|
||||||
|
"label.login": "התחברות",
|
||||||
|
"label.logout": "התנתקות",
|
||||||
|
"label.more": "עוד",
|
||||||
|
"label.name": "שם",
|
||||||
|
"label.new-password": "סיסמה חדשה",
|
||||||
|
"label.password": "סיסמה",
|
||||||
|
"label.passwords-dont-match": "סיסמאות לא תואמות",
|
||||||
|
"label.profile": "פרופיל",
|
||||||
|
"label.realtime": "זמן אמת",
|
||||||
|
"label.realtime-logs": "לוגים - זמן אמת",
|
||||||
|
"label.refresh": "רענון",
|
||||||
|
"label.required": "נדרש",
|
||||||
|
"label.reset": "איפוס",
|
||||||
|
"label.save": "שמירה",
|
||||||
|
"label.settings": "הגדרות",
|
||||||
|
"label.share-url": "שיתוף URL",
|
||||||
|
"label.single-day": "יום בודד",
|
||||||
|
"label.this-month": "החודש",
|
||||||
|
"label.this-week": "השבוע",
|
||||||
|
"label.this-year": "השנה",
|
||||||
|
"label.timezone": "אזור זמן",
|
||||||
|
"label.today": "היום",
|
||||||
|
"label.tracking-code": "קוד מעקב",
|
||||||
|
"label.unknown": "לא ידוע",
|
||||||
|
"label.username": "שם משתמש",
|
||||||
|
"label.view-details": "פרטים נוספים",
|
||||||
|
"label.websites": "אתרים",
|
||||||
|
"message.active-users": "{x} נוכחיים {x, plural, one {מבקר} other {מבקרים}}",
|
||||||
|
"message.confirm-delete": "האם באמת למחוק את {target}?",
|
||||||
|
"message.copied": "הועתק!",
|
||||||
|
"message.delete-warning": "כל המידע המקושר יימחק",
|
||||||
|
"message.failure": "משהו השתבש",
|
||||||
|
"message.get-share-url": "קבלת URL שיתוף",
|
||||||
|
"message.get-tracking-code": "קבלת קוד מעקב",
|
||||||
|
"message.go-to-settings": "להדרותג",
|
||||||
|
"message.incorrect-username-password": "שם משתמש או סיסמה לא נכונים",
|
||||||
|
"message.log.visitor": "מבקר ממדינת {country} משתמבש בדפדפן {browser} ב-{os} {device}",
|
||||||
|
"message.new-version-available": "גרסה חדשה של Umami {version} זמינה!",
|
||||||
|
"message.no-data-available": "אין מידע זמין",
|
||||||
|
"message.no-websites-configured": "לא מוגדרים אתרים",
|
||||||
|
"message.page-not-found": "דף לא נמצא",
|
||||||
|
"message.powered-by": "Powered by {name}",
|
||||||
|
"message.save-success": "נשמר בהצלחה",
|
||||||
|
"message.share-url": "זהו URL ציבורי עבור {target}",
|
||||||
|
"message.track-stats": "יש להוסיף את הקוד הבא לאזור ה-{head} של האתר",
|
||||||
|
"message.type-delete": "הקלידו {delete} בתיבה על מנת לאשר",
|
||||||
|
"metrics.actions": "פעולות",
|
||||||
|
"metrics.average-visit-time": "זמן ביקור ממוצע",
|
||||||
|
"metrics.bounce-rate": "Bounce rate",
|
||||||
|
"metrics.browsers": "דפדפנים",
|
||||||
|
"metrics.countries": "מדינות",
|
||||||
|
"metrics.device.desktop": "דסקטופ",
|
||||||
|
"metrics.device.laptop": "לפטופ",
|
||||||
|
"metrics.device.mobile": "מובייל",
|
||||||
|
"metrics.device.tablet": "טאבלט",
|
||||||
|
"metrics.devices": "מכשירים",
|
||||||
|
"metrics.events": "אירועים",
|
||||||
|
"metrics.filter.combined": "משותף",
|
||||||
|
"metrics.filter.domain-only": "דומיין בלבד",
|
||||||
|
"metrics.filter.raw": "גולמי",
|
||||||
|
"metrics.operating-systems": "מערכות הפעלה",
|
||||||
|
"metrics.page-views": "צפיות בדפים",
|
||||||
|
"metrics.pages": "דפים",
|
||||||
|
"metrics.referrers": "מפנים",
|
||||||
|
"metrics.unique-visitors": "מבקרים ייחודיים",
|
||||||
|
"metrics.views": "צפיות",
|
||||||
|
"metrics.visitors": "מבקרים"
|
||||||
|
}
|
@ -8,6 +8,7 @@ import {
|
|||||||
es,
|
es,
|
||||||
fi,
|
fi,
|
||||||
fr,
|
fr,
|
||||||
|
he,
|
||||||
hi,
|
hi,
|
||||||
id,
|
id,
|
||||||
ja,
|
ja,
|
||||||
@ -49,6 +50,7 @@ import csMessages from 'lang-compiled/cs-CZ.json';
|
|||||||
import plMessages from 'lang-compiled/pl-PL.json';
|
import plMessages from 'lang-compiled/pl-PL.json';
|
||||||
import taMessages from 'lang-compiled/ta-IN.json';
|
import taMessages from 'lang-compiled/ta-IN.json';
|
||||||
import hiMessages from 'lang-compiled/hi-IN.json';
|
import hiMessages from 'lang-compiled/hi-IN.json';
|
||||||
|
import heMessages from 'lang-compiled/he-IL.json';
|
||||||
|
|
||||||
export const messages = {
|
export const messages = {
|
||||||
'en-US': enMessages,
|
'en-US': enMessages,
|
||||||
@ -76,6 +78,7 @@ export const messages = {
|
|||||||
'pl-PL': plMessages,
|
'pl-PL': plMessages,
|
||||||
'ta-IN': taMessages,
|
'ta-IN': taMessages,
|
||||||
'hi-IN': hiMessages,
|
'hi-IN': hiMessages,
|
||||||
|
'he-IL': heMessages,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const dateLocales = {
|
export const dateLocales = {
|
||||||
@ -104,6 +107,7 @@ export const dateLocales = {
|
|||||||
'pl-PL': pl,
|
'pl-PL': pl,
|
||||||
'ta-In': ta,
|
'ta-In': ta,
|
||||||
'hi-IN': hi,
|
'hi-IN': hi,
|
||||||
|
'he-IL': he,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const menuOptions = [
|
export const menuOptions = [
|
||||||
@ -117,6 +121,7 @@ export const menuOptions = [
|
|||||||
{ label: 'Føroyskt', value: 'fo-FO', display: 'fo' },
|
{ label: 'Føroyskt', value: 'fo-FO', display: 'fo' },
|
||||||
{ label: 'Français', value: 'fr-FR', display: 'fr' },
|
{ label: 'Français', value: 'fr-FR', display: 'fr' },
|
||||||
{ label: 'Ελληνικά', value: 'el-GR', display: 'el' },
|
{ label: 'Ελληνικά', value: 'el-GR', display: 'el' },
|
||||||
|
{ label: 'עברית', value: 'he-IL', display: 'he' },
|
||||||
{ label: 'हिन्दी', value: 'hi-IN', display: 'hi' },
|
{ label: 'हिन्दी', value: 'hi-IN', display: 'hi' },
|
||||||
{ label: 'Bahasa Indonesia', value: 'id-ID', display: 'id' },
|
{ label: 'Bahasa Indonesia', value: 'id-ID', display: 'id' },
|
||||||
{ label: '日本語', value: 'ja-JP', display: 'ja' },
|
{ label: '日本語', value: 'ja-JP', display: 'ja' },
|
||||||
|
@ -6,6 +6,7 @@ module.exports = {
|
|||||||
VERSION: pkg.version,
|
VERSION: pkg.version,
|
||||||
FORCE_SSL: !!process.env.FORCE_SSL,
|
FORCE_SSL: !!process.env.FORCE_SSL,
|
||||||
},
|
},
|
||||||
|
basePath: process.env.BASE_PATH,
|
||||||
webpack(config) {
|
webpack(config) {
|
||||||
config.module.rules.push({
|
config.module.rules.push({
|
||||||
test: /\.svg$/,
|
test: /\.svg$/,
|
||||||
@ -28,6 +29,6 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
18
package.json
18
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "umami",
|
"name": "umami",
|
||||||
"version": "1.8.0",
|
"version": "1.9.0",
|
||||||
"description": "A simple, fast, website analytics alternative to Google Analytics. ",
|
"description": "A simple, fast, website analytics alternative to Google Analytics. ",
|
||||||
"author": "Mike Cao <mike@mikecao.com>",
|
"author": "Mike Cao <mike@mikecao.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -57,7 +57,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/client": "2.12.1",
|
"@prisma/client": "2.12.1",
|
||||||
"@reduxjs/toolkit": "^1.4.0",
|
"@reduxjs/toolkit": "^1.5.0",
|
||||||
"bcrypt": "^5.0.0",
|
"bcrypt": "^5.0.0",
|
||||||
"chalk": "^4.1.0",
|
"chalk": "^4.1.0",
|
||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
@ -69,10 +69,10 @@
|
|||||||
"detect-browser": "^5.2.0",
|
"detect-browser": "^5.2.0",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"formik": "^2.2.5",
|
"formik": "^2.2.5",
|
||||||
"immer": "^7.0.14",
|
"immer": "^8.0.0",
|
||||||
"is-localhost-ip": "^1.4.0",
|
"is-localhost-ip": "^1.4.0",
|
||||||
"isbot-fast": "^1.2.0",
|
"isbot-fast": "^1.2.0",
|
||||||
"jose": "^2.0.3",
|
"jose": "2.0.3",
|
||||||
"maxmind": "^4.3.1",
|
"maxmind": "^4.3.1",
|
||||||
"moment-timezone": "^0.5.32",
|
"moment-timezone": "^0.5.32",
|
||||||
"next": "^10.0.3",
|
"next": "^10.0.3",
|
||||||
@ -89,7 +89,7 @@
|
|||||||
"redux": "^4.0.5",
|
"redux": "^4.0.5",
|
||||||
"redux-thunk": "^2.3.0",
|
"redux-thunk": "^2.3.0",
|
||||||
"request-ip": "^2.1.3",
|
"request-ip": "^2.1.3",
|
||||||
"semver": "^7.3.2",
|
"semver": "^7.3.4",
|
||||||
"thenby": "^1.3.4",
|
"thenby": "^1.3.4",
|
||||||
"timezone-support": "^2.0.2",
|
"timezone-support": "^2.0.2",
|
||||||
"tinycolor2": "^1.4.2",
|
"tinycolor2": "^1.4.2",
|
||||||
@ -99,10 +99,10 @@
|
|||||||
"@formatjs/cli": "^2.13.15",
|
"@formatjs/cli": "^2.13.15",
|
||||||
"@prisma/cli": "2.12.1",
|
"@prisma/cli": "2.12.1",
|
||||||
"@rollup/plugin-buble": "^0.21.3",
|
"@rollup/plugin-buble": "^0.21.3",
|
||||||
"@rollup/plugin-node-resolve": "^10.0.0",
|
"@rollup/plugin-node-resolve": "^11.0.0",
|
||||||
"@rollup/plugin-replace": "^2.3.4",
|
"@rollup/plugin-replace": "^2.3.4",
|
||||||
"@svgr/webpack": "^5.4.0",
|
"@svgr/webpack": "^5.5.0",
|
||||||
"cross-env": "^7.0.2",
|
"cross-env": "^7.0.3",
|
||||||
"del": "^6.0.0",
|
"del": "^6.0.0",
|
||||||
"dotenv-cli": "^4.0.0",
|
"dotenv-cli": "^4.0.0",
|
||||||
"eslint": "^7.14.0",
|
"eslint": "^7.14.0",
|
||||||
@ -115,7 +115,7 @@
|
|||||||
"lint-staged": "^10.5.2",
|
"lint-staged": "^10.5.2",
|
||||||
"loadtest": "5.1.0",
|
"loadtest": "5.1.0",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"postcss-flexbugs-fixes": "^4.2.1",
|
"postcss-flexbugs-fixes": "^5.0.2",
|
||||||
"postcss-import": "^13.0.0",
|
"postcss-import": "^13.0.0",
|
||||||
"postcss-preset-env": "^6.7.0",
|
"postcss-preset-env": "^6.7.0",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Head from "next/head";
|
import Head from 'next/head';
|
||||||
import { IntlProvider } from 'react-intl';
|
import { IntlProvider } from 'react-intl';
|
||||||
import { Provider } from 'react-redux';
|
import { Provider } from 'react-redux';
|
||||||
import { useStore } from 'redux/store';
|
import { useStore } from 'redux/store';
|
||||||
@ -10,7 +10,6 @@ import 'styles/variables.css';
|
|||||||
import 'styles/bootstrap-grid.css';
|
import 'styles/bootstrap-grid.css';
|
||||||
import 'styles/index.css';
|
import 'styles/index.css';
|
||||||
|
|
||||||
|
|
||||||
const Intl = ({ children }) => {
|
const Intl = ({ children }) => {
|
||||||
const [locale] = useLocale();
|
const [locale] = useLocale();
|
||||||
|
|
||||||
@ -29,15 +28,15 @@ export default function App({ Component, pageProps }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<Head>
|
<Head>
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||||
<link rel="manifest" href="/site.webmanifest" />
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
|
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
|
||||||
<meta name="msapplication-TileColor" content="#da532c" />
|
<meta name="msapplication-TileColor" content="#da532c" />
|
||||||
<meta name="theme-color" content="#ffffff" />
|
<meta name="theme-color" content="#ffffff" />
|
||||||
</Head>
|
</Head>
|
||||||
<Intl>
|
<Intl>
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
</Intl>
|
</Intl>
|
||||||
|
@ -20,7 +20,7 @@ function getTable(type) {
|
|||||||
|
|
||||||
function getColumn(type) {
|
function getColumn(type) {
|
||||||
if (type === 'event') {
|
if (type === 'event') {
|
||||||
return `concat(event_type, ':', event_value)`;
|
return `concat(event_type, '\t', event_value)`;
|
||||||
}
|
}
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
1
public/country/he-IL.json
Normal file
1
public/country/he-IL.json
Normal file
File diff suppressed because one or more lines are too long
@ -35,7 +35,7 @@ import { removeTrailingSlash } from '../lib/url';
|
|||||||
|
|
||||||
const root = hostUrl
|
const root = hostUrl
|
||||||
? removeTrailingSlash(hostUrl)
|
? removeTrailingSlash(hostUrl)
|
||||||
: new URL(script.src).href.split('/').slice(0, -1).join('/');
|
: script.src.split('/').slice(0, -1).join('/');
|
||||||
const screen = `${width}x${height}`;
|
const screen = `${width}x${height}`;
|
||||||
const listeners = [];
|
const listeners = [];
|
||||||
let currentUrl = `${pathname}${search}`;
|
let currentUrl = `${pathname}${search}`;
|
||||||
@ -139,8 +139,7 @@ import { removeTrailingSlash } from '../lib/url';
|
|||||||
const newUrl = url.toString();
|
const newUrl = url.toString();
|
||||||
|
|
||||||
if (newUrl.substring(0, 4) === 'http') {
|
if (newUrl.substring(0, 4) === 'http') {
|
||||||
const { pathname, search } = new URL(newUrl);
|
currentUrl = '/' + newUrl.split('/').splice(3).join('/');
|
||||||
currentUrl = `${pathname}${search}`;
|
|
||||||
} else {
|
} else {
|
||||||
currentUrl = newUrl;
|
currentUrl = newUrl;
|
||||||
}
|
}
|
||||||
@ -156,6 +155,8 @@ import { removeTrailingSlash } from '../lib/url';
|
|||||||
const umami = event_value => trackEvent(event_value);
|
const umami = event_value => trackEvent(event_value);
|
||||||
umami.trackView = trackView;
|
umami.trackView = trackView;
|
||||||
umami.trackEvent = trackEvent;
|
umami.trackEvent = trackEvent;
|
||||||
|
umami.addEvents = addEvents;
|
||||||
|
umami.removeEvents = removeEvents;
|
||||||
|
|
||||||
window.umami = umami;
|
window.umami = umami;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user