mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Merge branch 'dev' into analytics
This commit is contained in:
commit
b603ae294f
@ -50,7 +50,8 @@
|
|||||||
"@next/next/no-img-element": "off",
|
"@next/next/no-img-element": "off",
|
||||||
"@typescript-eslint/no-empty-function": "off",
|
"@typescript-eslint/no-empty-function": "off",
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
"@typescript-eslint/no-var-requires": "off"
|
"@typescript-eslint/no-var-requires": "off",
|
||||||
|
"@typescript-eslint/no-empty-interface": "off"
|
||||||
},
|
},
|
||||||
"globals": {
|
"globals": {
|
||||||
"React": "writable"
|
"React": "writable"
|
||||||
|
2
.github/workflows/stale-issues.yml
vendored
2
.github/workflows/stale-issues.yml
vendored
@ -19,4 +19,6 @@ jobs:
|
|||||||
close-issue-message: 'This issue was closed because it has been inactive for 7 days since being marked as stale.'
|
close-issue-message: 'This issue was closed because it has been inactive for 7 days since being marked as stale.'
|
||||||
days-before-pr-stale: -1
|
days-before-pr-stale: -1
|
||||||
days-before-pr-close: -1
|
days-before-pr-close: -1
|
||||||
|
operations-per-run: 200
|
||||||
|
ascending: true
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
1
assets/magnet.svg
Normal file
1
assets/magnet.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg height="512" viewBox="0 0 508.467 508.467" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m426.815 239.006c-11.722-11.724-30.702-11.729-42.427-.001-65.928 65.929 49.291-49.292-116.718 116.718-53.811 53.809-142.478 19.197-140.68-54.511.547-22.415 9.826-43.738 26.129-60.041l116.717-116.717c11.724-11.722 11.728-30.702 0-42.427l-46.668-46.669c-11.725-11.725-30.702-11.726-42.427 0-16.642 16.643-102.078 102.078-120.112 120.112-39.05 39.05-60.582 90.97-60.629 146.195-.093 110.827 88.182 206.288 206.244 206.394 56.778 0 109.204-21.924 148.29-61.01l118.948-118.948c11.724-11.722 11.728-30.702 0-42.427zm-224.861-182.434 46.669 46.669-58.455 58.456-46.669-46.669zm131.367 369.264c-69.043 69.043-182.868 70.02-251.708.933-68.763-69.009-68.66-181.196.229-250.086l40.443-40.443 46.669 46.669-37.049 37.049c-45.115 45.112-46.916 116.85-3.395 160.371 43.279 43.279 115.221 41.756 160.372-3.394l37.049-37.049 46.669 46.669zm60.494-60.493-46.669-46.669 58.456-58.456 46.669 46.669z"/><path d="m379.357 95.099c15.199 3.839 30.418 19.07 34.336 34.192 2.089 8.058 10.303 12.828 18.283 10.758 8.02-2.078 12.836-10.264 10.758-18.283-6.651-25.662-30.176-49.223-56.03-55.753-8.032-2.027-16.188 2.838-18.217 10.869-2.029 8.032 2.837 16.189 10.87 18.217z"/><path d="m507.984 102.124c-12.016-46.375-55.215-89.504-101.745-101.256-8.032-2.027-16.188 2.838-18.217 10.869-2.029 8.032 2.838 16.188 10.87 18.217 35.882 9.063 70.769 43.871 80.051 79.695 2.088 8.058 10.304 12.828 18.283 10.758 8.02-2.078 12.836-10.263 10.758-18.283z"/></g></svg>
|
After Width: | Height: | Size: 1.5 KiB |
45
components/common/Pager.js
Normal file
45
components/common/Pager.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import styles from './Pager.module.css';
|
||||||
|
import { Button, Flexbox, Icon, Icons } from 'react-basics';
|
||||||
|
import useMessages from 'hooks/useMessages';
|
||||||
|
|
||||||
|
export function Pager({ page, pageSize, count, onPageChange }) {
|
||||||
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const maxPage = Math.ceil(count / pageSize);
|
||||||
|
const lastPage = page === maxPage;
|
||||||
|
const firstPage = page === 1;
|
||||||
|
|
||||||
|
if (count === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const handlePageChange = value => {
|
||||||
|
const nextPage = page + value;
|
||||||
|
if (nextPage > 0 && nextPage <= maxPage) {
|
||||||
|
onPageChange(nextPage);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (maxPage === 1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Flexbox justifyContent="center" className={styles.container}>
|
||||||
|
<Button onClick={() => handlePageChange(-1)} disabled={firstPage}>
|
||||||
|
<Icon rotate={90}>
|
||||||
|
<Icons.ChevronDown />
|
||||||
|
</Icon>
|
||||||
|
</Button>
|
||||||
|
<Flexbox alignItems="center" className={styles.text}>
|
||||||
|
{formatMessage(labels.pageOf, { current: page, total: maxPage })}
|
||||||
|
</Flexbox>
|
||||||
|
<Button onClick={() => handlePageChange(1)} disabled={lastPage}>
|
||||||
|
<Icon rotate={270}>
|
||||||
|
<Icons.ChevronDown />
|
||||||
|
</Icon>
|
||||||
|
</Button>
|
||||||
|
</Flexbox>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Pager;
|
7
components/common/Pager.module.css
Normal file
7
components/common/Pager.module.css
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.container {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin: 0 16px;
|
||||||
|
}
|
@ -1,37 +1,99 @@
|
|||||||
import { Table, TableHeader, TableBody, TableRow, TableCell, TableColumn } from 'react-basics';
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import {
|
||||||
|
SearchField,
|
||||||
|
Table,
|
||||||
|
TableBody,
|
||||||
|
TableCell,
|
||||||
|
TableColumn,
|
||||||
|
TableHeader,
|
||||||
|
TableRow,
|
||||||
|
} from 'react-basics';
|
||||||
import styles from './SettingsTable.module.css';
|
import styles from './SettingsTable.module.css';
|
||||||
|
import Pager from 'components/common/Pager';
|
||||||
|
|
||||||
|
export function SettingsTable({
|
||||||
|
columns = [],
|
||||||
|
data,
|
||||||
|
children,
|
||||||
|
cellRender,
|
||||||
|
showSearch,
|
||||||
|
showPaging,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
filterValue,
|
||||||
|
}) {
|
||||||
|
const { formatMessage, messages } = useMessages();
|
||||||
|
const [filter, setFilter] = useState(filterValue);
|
||||||
|
const { data: value, page, count, pageSize } = data;
|
||||||
|
|
||||||
|
const handleFilterChange = value => {
|
||||||
|
setFilter(value);
|
||||||
|
onFilterChange(value);
|
||||||
|
};
|
||||||
|
|
||||||
export function SettingsTable({ columns = [], data = [], children, cellRender }) {
|
|
||||||
return (
|
return (
|
||||||
<Table columns={columns} rows={data}>
|
<>
|
||||||
<TableHeader className={styles.header}>
|
{showSearch && (
|
||||||
{(column, index) => {
|
<SearchField
|
||||||
return (
|
onChange={handleFilterChange}
|
||||||
<TableColumn key={index} className={styles.cell} style={columns[index].style}>
|
delay={1000}
|
||||||
{column.label}
|
value={filter}
|
||||||
</TableColumn>
|
autoFocus={true}
|
||||||
);
|
placeholder="Search"
|
||||||
}}
|
style={{ maxWidth: '300px', marginBottom: '10px' }}
|
||||||
</TableHeader>
|
/>
|
||||||
<TableBody className={styles.body}>
|
)}
|
||||||
{(row, keys, rowIndex) => {
|
{value.length === 0 && filterValue && (
|
||||||
row.action = children(row, keys, rowIndex);
|
<EmptyPlaceholder message={formatMessage(messages.noResultsFound)}></EmptyPlaceholder>
|
||||||
|
)}
|
||||||
|
{value.length > 0 && (
|
||||||
|
<Table columns={columns} rows={value}>
|
||||||
|
<TableHeader className={styles.header}>
|
||||||
|
{(column, index) => {
|
||||||
|
return (
|
||||||
|
<TableColumn key={index} className={styles.cell} style={columns[index].style}>
|
||||||
|
{column.label}
|
||||||
|
</TableColumn>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</TableHeader>
|
||||||
|
<TableBody className={styles.body}>
|
||||||
|
{(row, keys, rowIndex) => {
|
||||||
|
row.action = children(row, keys, rowIndex);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableRow key={rowIndex} data={row} keys={keys} className={styles.row}>
|
<TableRow key={rowIndex} data={row} keys={keys} className={styles.row}>
|
||||||
{(data, key, colIndex) => {
|
{(data, key, colIndex) => {
|
||||||
return (
|
return (
|
||||||
<TableCell key={colIndex} className={styles.cell} style={columns[colIndex].style}>
|
<TableCell
|
||||||
<label className={styles.label}>{columns[colIndex].label}</label>
|
key={colIndex}
|
||||||
{cellRender ? cellRender(row, data, key, colIndex) : data[key]}
|
className={styles.cell}
|
||||||
</TableCell>
|
style={columns[colIndex].style}
|
||||||
);
|
>
|
||||||
}}
|
<label className={styles.label}>{columns[colIndex].label}</label>
|
||||||
</TableRow>
|
{cellRender ? cellRender(row, data, key, colIndex) : data[key]}
|
||||||
);
|
</TableCell>
|
||||||
}}
|
);
|
||||||
</TableBody>
|
}}
|
||||||
</Table>
|
</TableRow>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</TableBody>
|
||||||
|
{showPaging && (
|
||||||
|
<Pager
|
||||||
|
page={page}
|
||||||
|
pageSize={pageSize}
|
||||||
|
count={count}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Table>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ import Gear from 'assets/gear.svg';
|
|||||||
import Globe from 'assets/globe.svg';
|
import Globe from 'assets/globe.svg';
|
||||||
import Lock from 'assets/lock.svg';
|
import Lock from 'assets/lock.svg';
|
||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
|
import Magnet from 'assets/magnet.svg';
|
||||||
import Moon from 'assets/moon.svg';
|
import Moon from 'assets/moon.svg';
|
||||||
import Nodes from 'assets/nodes.svg';
|
import Nodes from 'assets/nodes.svg';
|
||||||
import Overview from 'assets/overview.svg';
|
import Overview from 'assets/overview.svg';
|
||||||
@ -35,6 +36,7 @@ const icons = {
|
|||||||
Globe,
|
Globe,
|
||||||
Lock,
|
Lock,
|
||||||
Logo,
|
Logo,
|
||||||
|
Magnet,
|
||||||
Moon,
|
Moon,
|
||||||
Nodes,
|
Nodes,
|
||||||
Overview,
|
Overview,
|
||||||
|
@ -3,7 +3,7 @@ import { Icon, Modal, Dropdown, Item, Text, Flexbox } from 'react-basics';
|
|||||||
import { endOfYear, isSameDay } from 'date-fns';
|
import { endOfYear, isSameDay } from 'date-fns';
|
||||||
import DatePickerForm from 'components/metrics/DatePickerForm';
|
import DatePickerForm from 'components/metrics/DatePickerForm';
|
||||||
import useLocale from 'hooks/useLocale';
|
import useLocale from 'hooks/useLocale';
|
||||||
import { dateFormat } from 'lib/date';
|
import { formatDate } from 'lib/date';
|
||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
|
|
||||||
@ -135,8 +135,8 @@ const CustomRange = ({ startDate, endDate, onClick }) => {
|
|||||||
<Icons.Calendar />
|
<Icons.Calendar />
|
||||||
</Icon>
|
</Icon>
|
||||||
<Text>
|
<Text>
|
||||||
{dateFormat(startDate, 'd LLL y', locale)}
|
{formatDate(startDate, 'd LLL y', locale)}
|
||||||
{!isSameDay(startDate, endDate) && ` — ${dateFormat(endDate, 'd LLL y', locale)}`}
|
{!isSameDay(startDate, endDate) && ` — ${formatDate(endDate, 'd LLL y', locale)}`}
|
||||||
</Text>
|
</Text>
|
||||||
</Flexbox>
|
</Flexbox>
|
||||||
);
|
);
|
||||||
|
71
components/input/MonthSelect.js
Normal file
71
components/input/MonthSelect.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import { useRef } from 'react';
|
||||||
|
import {
|
||||||
|
Text,
|
||||||
|
Icon,
|
||||||
|
CalendarMonthSelect,
|
||||||
|
CalendarYearSelect,
|
||||||
|
Button,
|
||||||
|
PopupTrigger,
|
||||||
|
Popup,
|
||||||
|
} from 'react-basics';
|
||||||
|
import { startOfMonth, endOfMonth } from 'date-fns';
|
||||||
|
import Icons from 'components/icons';
|
||||||
|
import { useLocale } from 'hooks';
|
||||||
|
import { formatDate } from 'lib/date';
|
||||||
|
import { getDateLocale } from 'lib/lang';
|
||||||
|
import styles from './MonthSelect.module.css';
|
||||||
|
|
||||||
|
export function MonthSelect({ date = new Date(), onChange }) {
|
||||||
|
const { locale } = useLocale();
|
||||||
|
const month = formatDate(date, 'MMMM', locale);
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const ref = useRef();
|
||||||
|
|
||||||
|
const handleChange = (close, date) => {
|
||||||
|
onChange(`range:${startOfMonth(date).getTime()}:${endOfMonth(date).getTime()}`);
|
||||||
|
close();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div ref={ref} className={styles.container}>
|
||||||
|
<PopupTrigger>
|
||||||
|
<Button className={styles.input} variant="quiet">
|
||||||
|
<Text>{month}</Text>
|
||||||
|
<Icon size="sm">
|
||||||
|
<Icons.ChevronDown />
|
||||||
|
</Icon>
|
||||||
|
</Button>
|
||||||
|
<Popup className={styles.popup} alignment="start">
|
||||||
|
{close => (
|
||||||
|
<CalendarMonthSelect
|
||||||
|
date={date}
|
||||||
|
locale={getDateLocale(locale)}
|
||||||
|
onSelect={handleChange.bind(null, close)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Popup>
|
||||||
|
</PopupTrigger>
|
||||||
|
<PopupTrigger>
|
||||||
|
<Button className={styles.input} variant="quiet">
|
||||||
|
<Text>{year}</Text>
|
||||||
|
<Icon size="sm">
|
||||||
|
<Icons.ChevronDown />
|
||||||
|
</Icon>
|
||||||
|
</Button>
|
||||||
|
<Popup className={styles.popup} alignment="start">
|
||||||
|
{close => (
|
||||||
|
<CalendarYearSelect
|
||||||
|
date={date}
|
||||||
|
locale={getDateLocale(locale)}
|
||||||
|
onSelect={handleChange.bind(null, close)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Popup>
|
||||||
|
</PopupTrigger>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default MonthSelect;
|
22
components/input/MonthSelect.module.css
Normal file
22
components/input/MonthSelect.module.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: 1px solid var(--base400);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.input {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup {
|
||||||
|
border: 1px solid var(--base400);
|
||||||
|
background: var(--base50);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
padding: 20px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
@ -8,12 +8,12 @@ export function WebsiteSelect({ websiteId, onSelect }) {
|
|||||||
const { data } = useQuery(['websites:me'], () => get('/me/websites'));
|
const { data } = useQuery(['websites:me'], () => get('/me/websites'));
|
||||||
|
|
||||||
const renderValue = value => {
|
const renderValue = value => {
|
||||||
return data?.find(({ id }) => id === value)?.name;
|
return data?.data?.find(({ id }) => id === value)?.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dropdown
|
<Dropdown
|
||||||
items={data}
|
items={data?.data}
|
||||||
value={websiteId}
|
value={websiteId}
|
||||||
renderValue={renderValue}
|
renderValue={renderValue}
|
||||||
onChange={onSelect}
|
onChange={onSelect}
|
||||||
|
@ -2,9 +2,7 @@ import { Container } from 'react-basics';
|
|||||||
import Head from 'next/head';
|
import Head from 'next/head';
|
||||||
import NavBar from 'components/layout/NavBar';
|
import NavBar from 'components/layout/NavBar';
|
||||||
import UpdateNotice from 'components/common/UpdateNotice';
|
import UpdateNotice from 'components/common/UpdateNotice';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import { useRequireLogin, useConfig } from 'hooks';
|
||||||
import useConfig from 'hooks/useConfig';
|
|
||||||
import { CURRENT_VERSION } from 'lib/constants';
|
|
||||||
import styles from './AppLayout.module.css';
|
import styles from './AppLayout.module.css';
|
||||||
|
|
||||||
export function AppLayout({ title, children }) {
|
export function AppLayout({ title, children }) {
|
||||||
@ -16,7 +14,7 @@ export function AppLayout({ title, children }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.layout} data-app-version={CURRENT_VERSION}>
|
<div className={styles.layout}>
|
||||||
<UpdateNotice user={user} config={config} />
|
<UpdateNotice user={user} config={config} />
|
||||||
<Head>
|
<Head>
|
||||||
<title>{title ? `${title} | umami` : 'umami'}</title>
|
<title>{title ? `${title} | umami` : 'umami'}</title>
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
width: 100vw;
|
width: 100vw;
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
grid-row: 1 / 2;
|
grid-row: 1 / 2;
|
||||||
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.body {
|
.body {
|
||||||
|
@ -18,6 +18,8 @@ export function NavBar() {
|
|||||||
|
|
||||||
const links = [
|
const links = [
|
||||||
{ label: formatMessage(labels.dashboard), url: '/dashboard' },
|
{ label: formatMessage(labels.dashboard), url: '/dashboard' },
|
||||||
|
{ label: formatMessage(labels.websites), url: '/websites' },
|
||||||
|
{ label: formatMessage(labels.reports), url: '/reports' },
|
||||||
!cloudMode && { label: formatMessage(labels.settings), url: '/settings' },
|
!cloudMode && { label: formatMessage(labels.settings), url: '/settings' },
|
||||||
].filter(n => n);
|
].filter(n => n);
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding-top: 40px;
|
padding-top: 40px;
|
||||||
|
padding-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
|
@ -21,6 +21,8 @@ export const labels = defineMessages({
|
|||||||
details: { id: 'label.details', defaultMessage: 'Details' },
|
details: { id: 'label.details', defaultMessage: 'Details' },
|
||||||
website: { id: 'label.website', defaultMessage: 'Website' },
|
website: { id: 'label.website', defaultMessage: 'Website' },
|
||||||
websites: { id: 'label.websites', defaultMessage: 'Websites' },
|
websites: { id: 'label.websites', defaultMessage: 'Websites' },
|
||||||
|
myWebsites: { id: 'label.my-websites', defaultMessage: 'My websites' },
|
||||||
|
teamWebsites: { id: 'label.team-websites', defaultMessage: 'Team websites' },
|
||||||
created: { id: 'label.created', defaultMessage: 'Created' },
|
created: { id: 'label.created', defaultMessage: 'Created' },
|
||||||
edit: { id: 'label.edit', defaultMessage: 'Edit' },
|
edit: { id: 'label.edit', defaultMessage: 'Edit' },
|
||||||
name: { id: 'label.name', defaultMessage: 'Name' },
|
name: { id: 'label.name', defaultMessage: 'Name' },
|
||||||
@ -28,6 +30,7 @@ export const labels = defineMessages({
|
|||||||
accessCode: { id: 'label.access-code', defaultMessage: 'Access code' },
|
accessCode: { id: 'label.access-code', defaultMessage: 'Access code' },
|
||||||
teamId: { id: 'label.team-id', defaultMessage: 'Team ID' },
|
teamId: { id: 'label.team-id', defaultMessage: 'Team ID' },
|
||||||
team: { id: 'label.team', defaultMessage: 'Team' },
|
team: { id: 'label.team', defaultMessage: 'Team' },
|
||||||
|
teamName: { id: 'label.team-name', defaultMessage: 'Team name' },
|
||||||
regenerate: { id: 'label.regenerate', defaultMessage: 'Regenerate' },
|
regenerate: { id: 'label.regenerate', defaultMessage: 'Regenerate' },
|
||||||
remove: { id: 'label.remove', defaultMessage: 'Remove' },
|
remove: { id: 'label.remove', defaultMessage: 'Remove' },
|
||||||
join: { id: 'label.join', defaultMessage: 'Join' },
|
join: { id: 'label.join', defaultMessage: 'Join' },
|
||||||
@ -77,7 +80,7 @@ export const labels = defineMessages({
|
|||||||
referrers: { id: 'label.referrers', defaultMessage: 'Referrers' },
|
referrers: { id: 'label.referrers', defaultMessage: 'Referrers' },
|
||||||
screens: { id: 'label.screens', defaultMessage: 'Screens' },
|
screens: { id: 'label.screens', defaultMessage: 'Screens' },
|
||||||
browsers: { id: 'label.browsers', defaultMessage: 'Browsers' },
|
browsers: { id: 'label.browsers', defaultMessage: 'Browsers' },
|
||||||
os: { id: 'label.operating-systems', defaultMessage: 'Operating systems' },
|
os: { id: 'label.os', defaultMessage: 'OS' },
|
||||||
devices: { id: 'label.devices', defaultMessage: 'Devices' },
|
devices: { id: 'label.devices', defaultMessage: 'Devices' },
|
||||||
countries: { id: 'label.countries', defaultMessage: 'Countries' },
|
countries: { id: 'label.countries', defaultMessage: 'Countries' },
|
||||||
languages: { id: 'label.languages', defaultMessage: 'Languages' },
|
languages: { id: 'label.languages', defaultMessage: 'Languages' },
|
||||||
@ -133,35 +136,48 @@ export const labels = defineMessages({
|
|||||||
runQuery: { id: 'label.run-query', defaultMessage: 'Run query' },
|
runQuery: { id: 'label.run-query', defaultMessage: 'Run query' },
|
||||||
field: { id: 'label.field', defaultMessage: 'Field' },
|
field: { id: 'label.field', defaultMessage: 'Field' },
|
||||||
fields: { id: 'label.fields', defaultMessage: 'Fields' },
|
fields: { id: 'label.fields', defaultMessage: 'Fields' },
|
||||||
createReport: { id: 'labels.create-report', defaultMessage: 'Create report' },
|
createReport: { id: 'label.create-report', defaultMessage: 'Create report' },
|
||||||
description: { id: 'labels.description', defaultMessage: 'Description' },
|
description: { id: 'label.description', defaultMessage: 'Description' },
|
||||||
untitled: { id: 'labels.untitled', defaultMessage: 'Untitled' },
|
untitled: { id: 'label.untitled', defaultMessage: 'Untitled' },
|
||||||
type: { id: 'labels.type', defaultMessage: 'Type' },
|
type: { id: 'label.type', defaultMessage: 'Type' },
|
||||||
filters: { id: 'labels.filters', defaultMessage: 'Filters' },
|
filters: { id: 'label.filters', defaultMessage: 'Filters' },
|
||||||
breakdown: { id: 'labels.breakdown', defaultMessage: 'Breakdown' },
|
breakdown: { id: 'label.breakdown', defaultMessage: 'Breakdown' },
|
||||||
true: { id: 'labels.true', defaultMessage: 'True' },
|
true: { id: 'label.true', defaultMessage: 'True' },
|
||||||
false: { id: 'labels.false', defaultMessage: 'False' },
|
false: { id: 'label.false', defaultMessage: 'False' },
|
||||||
equals: { id: 'labels.equals', defaultMessage: 'Equals' },
|
is: { id: 'label.is', defaultMessage: 'Is' },
|
||||||
doesNotEqual: { id: 'labels.does-not-equal', defaultMessage: 'Does not equal' },
|
isNot: { id: 'label.is-not', defaultMessage: 'Is not' },
|
||||||
greaterThan: { id: 'labels.greater-than', defaultMessage: 'Greater than' },
|
isSet: { id: 'label.is-set', defaultMessage: 'Is set' },
|
||||||
lessThan: { id: 'labels.less-than', defaultMessage: 'Less than' },
|
isNotSet: { id: 'label.is-not-set', defaultMessage: 'Is not set' },
|
||||||
greaterThanEquals: { id: 'labels.greater-than-equals', defaultMessage: 'Greater than or equals' },
|
greaterThan: { id: 'label.greater-than', defaultMessage: 'Greater than' },
|
||||||
lessThanEquals: { id: 'labels.less-than-equals', defaultMessage: 'Less than or equals' },
|
lessThan: { id: 'label.less-than', defaultMessage: 'Less than' },
|
||||||
contains: { id: 'labels.contains', defaultMessage: 'Contains' },
|
greaterThanEquals: { id: 'label.greater-than-equals', defaultMessage: 'Greater than or equals' },
|
||||||
doesNotContain: { id: 'labels.does-not-contain', defaultMessage: 'Does not contain' },
|
lessThanEquals: { id: 'label.less-than-equals', defaultMessage: 'Less than or equals' },
|
||||||
before: { id: 'labels.before', defaultMessage: 'Before' },
|
contains: { id: 'label.contains', defaultMessage: 'Contains' },
|
||||||
after: { id: 'labels.after', defaultMessage: 'After' },
|
doesNotContain: { id: 'label.does-not-contain', defaultMessage: 'Does not contain' },
|
||||||
total: { id: 'labels.total', defaultMessage: 'Total' },
|
before: { id: 'label.before', defaultMessage: 'Before' },
|
||||||
sum: { id: 'labels.sum', defaultMessage: 'Sum' },
|
after: { id: 'label.after', defaultMessage: 'After' },
|
||||||
average: { id: 'labels.average', defaultMessage: 'Average' },
|
total: { id: 'label.total', defaultMessage: 'Total' },
|
||||||
min: { id: 'labels.min', defaultMessage: 'Min' },
|
sum: { id: 'label.sum', defaultMessage: 'Sum' },
|
||||||
max: { id: 'labels.max', defaultMessage: 'Max' },
|
average: { id: 'label.average', defaultMessage: 'Average' },
|
||||||
unique: { id: 'labels.unique', defaultMessage: 'Unique' },
|
min: { id: 'label.min', defaultMessage: 'Min' },
|
||||||
value: { id: 'labels.value', defaultMessage: 'Value' },
|
max: { id: 'label.max', defaultMessage: 'Max' },
|
||||||
overview: { id: 'labels.overview', defaultMessage: 'Overview' },
|
unique: { id: 'label.unique', defaultMessage: 'Unique' },
|
||||||
totalRecords: { id: 'labels.total-records', defaultMessage: 'Total records' },
|
value: { id: 'label.value', defaultMessage: 'Value' },
|
||||||
|
overview: { id: 'label.overview', defaultMessage: 'Overview' },
|
||||||
|
totalRecords: { id: 'label.total-records', defaultMessage: 'Total records' },
|
||||||
insights: { id: 'label.insights', defaultMessage: 'Insights' },
|
insights: { id: 'label.insights', defaultMessage: 'Insights' },
|
||||||
|
retention: { id: 'label.retention', defaultMessage: 'Retention' },
|
||||||
dropoff: { id: 'label.dropoff', defaultMessage: 'Dropoff' },
|
dropoff: { id: 'label.dropoff', defaultMessage: 'Dropoff' },
|
||||||
|
referrer: { id: 'label.referrer', defaultMessage: 'Referrer' },
|
||||||
|
country: { id: 'label.country', defaultMessage: 'Country' },
|
||||||
|
region: { id: 'label.region', defaultMessage: 'Region' },
|
||||||
|
city: { id: 'label.city', defaultMessage: 'City' },
|
||||||
|
browser: { id: 'label.browser', defaultMessage: 'Browser' },
|
||||||
|
device: { id: 'label.device', defaultMessage: 'Device' },
|
||||||
|
pageTitle: { id: 'label.pageTitle', defaultMessage: 'Page title' },
|
||||||
|
day: { id: 'label.day', defaultMessage: 'Day' },
|
||||||
|
date: { id: 'label.date', defaultMessage: 'Date' },
|
||||||
|
pageOf: { id: 'label.page-of', defaultMessage: 'Page {current} of {total}' },
|
||||||
});
|
});
|
||||||
|
|
||||||
export const messages = defineMessages({
|
export const messages = defineMessages({
|
||||||
@ -230,7 +246,7 @@ export const messages = defineMessages({
|
|||||||
},
|
},
|
||||||
noResultsFound: {
|
noResultsFound: {
|
||||||
id: 'message.no-results-found',
|
id: 'message.no-results-found',
|
||||||
defaultMessage: 'No results were found.',
|
defaultMessage: 'No results found.',
|
||||||
},
|
},
|
||||||
noWebsitesConfigured: {
|
noWebsitesConfigured: {
|
||||||
id: 'message.no-websites-configured',
|
id: 'message.no-websites-configured',
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
|
import { useRouter } from 'next/router';
|
||||||
import FilterLink from 'components/common/FilterLink';
|
import FilterLink from 'components/common/FilterLink';
|
||||||
import MetricsTable from 'components/metrics/MetricsTable';
|
import MetricsTable from 'components/metrics/MetricsTable';
|
||||||
import { BROWSERS } from 'lib/constants';
|
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import { useRouter } from 'next/router';
|
import useFormat from 'hooks/useFormat';
|
||||||
|
|
||||||
export function BrowsersTable({ websiteId, ...props }) {
|
export function BrowsersTable({ websiteId, ...props }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { basePath } = useRouter();
|
const { basePath } = useRouter();
|
||||||
|
const { formatBrowser } = useFormat();
|
||||||
|
|
||||||
function renderLink({ x: browser }) {
|
function renderLink({ x: browser }) {
|
||||||
return (
|
return (
|
||||||
<FilterLink id="browser" value={browser} label={BROWSERS[browser] || browser}>
|
<FilterLink id="browser" value={browser} label={formatBrowser(browser)}>
|
||||||
<img
|
<img
|
||||||
src={`${basePath}/images/browsers/${browser || 'unknown'}.png`}
|
src={`${basePath}/images/browsers/${browser || 'unknown'}.png`}
|
||||||
alt={browser}
|
alt={browser}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import FilterLink from 'components/common/FilterLink';
|
import FilterLink from 'components/common/FilterLink';
|
||||||
import useCountryNames from 'hooks/useCountryNames';
|
import useCountryNames from 'hooks/useCountryNames';
|
||||||
import useLocale from 'hooks/useLocale';
|
import { useLocale, useMessages, useFormat } from 'hooks';
|
||||||
import useMessages from 'hooks/useMessages';
|
|
||||||
import MetricsTable from './MetricsTable';
|
import MetricsTable from './MetricsTable';
|
||||||
|
|
||||||
export function CountriesTable({ websiteId, ...props }) {
|
export function CountriesTable({ websiteId, ...props }) {
|
||||||
@ -10,6 +9,7 @@ export function CountriesTable({ websiteId, ...props }) {
|
|||||||
const countryNames = useCountryNames(locale);
|
const countryNames = useCountryNames(locale);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { basePath } = useRouter();
|
const { basePath } = useRouter();
|
||||||
|
const { formatCountry } = useFormat();
|
||||||
|
|
||||||
function renderLink({ x: code }) {
|
function renderLink({ x: code }) {
|
||||||
return (
|
return (
|
||||||
@ -17,7 +17,7 @@ export function CountriesTable({ websiteId, ...props }) {
|
|||||||
id="country"
|
id="country"
|
||||||
className={locale}
|
className={locale}
|
||||||
value={countryNames[code] && code}
|
value={countryNames[code] && code}
|
||||||
label={countryNames[code]}
|
label={formatCountry(code)}
|
||||||
>
|
>
|
||||||
<img src={`${basePath}/images/flags/${code?.toLowerCase() || 'xx'}.png`} alt={code} />
|
<img src={`${basePath}/images/flags/${code?.toLowerCase() || 'xx'}.png`} alt={code} />
|
||||||
</FilterLink>
|
</FilterLink>
|
||||||
|
@ -2,18 +2,16 @@ import MetricsTable from './MetricsTable';
|
|||||||
import FilterLink from 'components/common/FilterLink';
|
import FilterLink from 'components/common/FilterLink';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
|
import { useFormat } from 'hooks';
|
||||||
|
|
||||||
export function DevicesTable({ websiteId, ...props }) {
|
export function DevicesTable({ websiteId, ...props }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { basePath } = useRouter();
|
const { basePath } = useRouter();
|
||||||
|
const { formatDevice } = useFormat();
|
||||||
|
|
||||||
function renderLink({ x: device }) {
|
function renderLink({ x: device }) {
|
||||||
return (
|
return (
|
||||||
<FilterLink
|
<FilterLink id="device" value={labels[device] && device} label={formatDevice(device)}>
|
||||||
id="device"
|
|
||||||
value={labels[device] && device}
|
|
||||||
label={formatMessage(labels[device] || labels.unknown)}
|
|
||||||
>
|
|
||||||
<img
|
<img
|
||||||
src={`${basePath}/images/device/${device?.toLowerCase() || 'unknown'}.png`}
|
src={`${basePath}/images/device/${device?.toLowerCase() || 'unknown'}.png`}
|
||||||
alt={device}
|
alt={device}
|
||||||
|
@ -72,7 +72,7 @@ export function TestConsole() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const [websiteId] = id || [];
|
const [websiteId] = id || [];
|
||||||
const website = data.find(({ id }) => websiteId === id);
|
const website = data?.data.find(({ id }) => websiteId === id);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page loading={isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
|
@ -12,16 +12,17 @@ import useDashboard from 'store/dashboard';
|
|||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import useLocale from 'hooks/useLocale';
|
import useLocale from 'hooks/useLocale';
|
||||||
|
|
||||||
export function Dashboard({ userId }) {
|
export function Dashboard() {
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const dashboard = useDashboard();
|
const dashboard = useDashboard();
|
||||||
const { showCharts, limit, editing } = dashboard;
|
const { showCharts, limit, editing } = dashboard;
|
||||||
const [max, setMax] = useState(limit);
|
const [max, setMax] = useState(limit);
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, error } = useQuery(['websites'], () =>
|
const { data, isLoading, error } = useQuery(['websites'], () =>
|
||||||
get('/websites', { userId, includeTeams: 1 }),
|
get('/websites', { includeTeams: 1 }),
|
||||||
);
|
);
|
||||||
const hasData = data && data.length !== 0;
|
const hasData = data && data?.data.length !== 0;
|
||||||
|
|
||||||
const { dir } = useLocale();
|
const { dir } = useLocale();
|
||||||
|
|
||||||
function handleMore() {
|
function handleMore() {
|
||||||
@ -47,8 +48,10 @@ export function Dashboard({ userId }) {
|
|||||||
)}
|
)}
|
||||||
{hasData && (
|
{hasData && (
|
||||||
<>
|
<>
|
||||||
{editing && <DashboardEdit websites={data} />}
|
{editing && <DashboardEdit websites={data?.data} />}
|
||||||
{!editing && <WebsiteChartList websites={data} showCharts={showCharts} limit={max} />}
|
{!editing && (
|
||||||
|
<WebsiteChartList websites={data?.data} showCharts={showCharts} limit={max} />
|
||||||
|
)}
|
||||||
{max < data.length && (
|
{max < data.length && (
|
||||||
<Flexbox justifyContent="center">
|
<Flexbox justifyContent="center">
|
||||||
<Button onClick={handleMore}>
|
<Button onClick={handleMore}>
|
||||||
|
@ -28,6 +28,11 @@ export function EventDataMetricsBar({ websiteId }) {
|
|||||||
<MetricsBar isLoading={isLoading} isFetched={isFetched} error={error}>
|
<MetricsBar isLoading={isLoading} isFetched={isFetched} error={error}>
|
||||||
{!error && isFetched && (
|
{!error && isFetched && (
|
||||||
<>
|
<>
|
||||||
|
<MetricCard
|
||||||
|
className={styles.card}
|
||||||
|
label={formatMessage(labels.events)}
|
||||||
|
value={data?.events}
|
||||||
|
/>
|
||||||
<MetricCard
|
<MetricCard
|
||||||
className={styles.card}
|
className={styles.card}
|
||||||
label={formatMessage(labels.fields)}
|
label={formatMessage(labels.fields)}
|
||||||
|
@ -2,6 +2,7 @@ import Link from 'next/link';
|
|||||||
import { GridTable, GridColumn } from 'react-basics';
|
import { GridTable, GridColumn } from 'react-basics';
|
||||||
import { useMessages, usePageQuery } from 'hooks';
|
import { useMessages, usePageQuery } from 'hooks';
|
||||||
import Empty from 'components/common/Empty';
|
import Empty from 'components/common/Empty';
|
||||||
|
import { DATA_TYPES } from 'lib/constants';
|
||||||
|
|
||||||
export function EventDataTable({ data = [] }) {
|
export function EventDataTable({ data = [] }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
@ -13,15 +14,18 @@ export function EventDataTable({ data = [] }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<GridTable data={data}>
|
<GridTable data={data}>
|
||||||
<GridColumn name="event" label={formatMessage(labels.event)}>
|
<GridColumn name="eventName" label={formatMessage(labels.event)}>
|
||||||
{row => (
|
{row => (
|
||||||
<Link href={resolveUrl({ event: row.event })} shallow={true}>
|
<Link href={resolveUrl({ event: row.eventName })} shallow={true}>
|
||||||
{row.event}
|
{row.eventName}
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
<GridColumn name="field" label={formatMessage(labels.field)}>
|
<GridColumn name="fieldName" label={formatMessage(labels.field)}>
|
||||||
{row => row.field}
|
{row => row.fieldName}
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn name="dataType" label={formatMessage(labels.type)}>
|
||||||
|
{row => DATA_TYPES[row.dataType]}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
<GridColumn name="total" label={formatMessage(labels.totalRecords)}>
|
<GridColumn name="total" label={formatMessage(labels.totalRecords)}>
|
||||||
{({ total }) => total.toLocaleString()}
|
{({ total }) => total.toLocaleString()}
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { GridTable, GridColumn, Button, Icon, Text, Flexbox } from 'react-basics';
|
import { GridTable, GridColumn, Button, Icon, Text } from 'react-basics';
|
||||||
import { useMessages, usePageQuery } from 'hooks';
|
import { useMessages, usePageQuery } from 'hooks';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import Empty from 'components/common/Empty';
|
import Empty from 'components/common/Empty';
|
||||||
|
import { DATA_TYPES } from 'lib/constants';
|
||||||
|
|
||||||
export function EventDataValueTable({ data = [], event }) {
|
export function EventDataValueTable({ data = [], event }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
@ -31,8 +32,11 @@ export function EventDataValueTable({ data = [], event }) {
|
|||||||
{data.length <= 0 && <Empty />}
|
{data.length <= 0 && <Empty />}
|
||||||
{data.length > 0 && (
|
{data.length > 0 && (
|
||||||
<GridTable data={data}>
|
<GridTable data={data}>
|
||||||
<GridColumn name="field" label={formatMessage(labels.field)} />
|
<GridColumn name="fieldName" label={formatMessage(labels.field)} />
|
||||||
<GridColumn name="value" label={formatMessage(labels.value)} />
|
<GridColumn name="dataType" label={formatMessage(labels.type)}>
|
||||||
|
{row => DATA_TYPES[row.dataType]}
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn name="fieldValue" label={formatMessage(labels.value)} />
|
||||||
<GridColumn name="total" label={formatMessage(labels.totalRecords)} width="200px">
|
<GridColumn name="total" label={formatMessage(labels.totalRecords)} width="200px">
|
||||||
{({ total }) => total.toLocaleString()}
|
{({ total }) => total.toLocaleString()}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
|
@ -8,7 +8,7 @@ import useLocale from 'hooks/useLocale';
|
|||||||
import useCountryNames from 'hooks/useCountryNames';
|
import useCountryNames from 'hooks/useCountryNames';
|
||||||
import { BROWSERS } from 'lib/constants';
|
import { BROWSERS } from 'lib/constants';
|
||||||
import { stringToColor } from 'lib/format';
|
import { stringToColor } from 'lib/format';
|
||||||
import { dateFormat } from 'lib/date';
|
import { formatDate } from 'lib/date';
|
||||||
import { safeDecodeURI } from 'next-basics';
|
import { safeDecodeURI } from 'next-basics';
|
||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
import styles from './RealtimeLog.module.css';
|
import styles from './RealtimeLog.module.css';
|
||||||
@ -50,7 +50,7 @@ export function RealtimeLog({ data, websiteDomain }) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getTime = ({ createdAt }) => dateFormat(new Date(createdAt), 'pp', locale);
|
const getTime = ({ createdAt }) => formatDate(new Date(createdAt), 'pp', locale);
|
||||||
|
|
||||||
const getColor = ({ id, sessionId }) => stringToColor(sessionId || id);
|
const getColor = ({ id, sessionId }) => stringToColor(sessionId || id);
|
||||||
|
|
||||||
|
@ -6,7 +6,12 @@ import { useContext } from 'react';
|
|||||||
import { ReportContext } from './Report';
|
import { ReportContext } from './Report';
|
||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
|
|
||||||
export function BaseParameters() {
|
export function BaseParameters({
|
||||||
|
showWebsiteSelect = true,
|
||||||
|
allowWebsiteSelect = true,
|
||||||
|
showDateSelect = true,
|
||||||
|
allowDateSelect = true,
|
||||||
|
}) {
|
||||||
const { report, updateReport } = useContext(ReportContext);
|
const { report, updateReport } = useContext(ReportContext);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
@ -24,17 +29,25 @@ export function BaseParameters() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<FormRow label={formatMessage(labels.website)}>
|
{showWebsiteSelect && (
|
||||||
<WebsiteSelect websiteId={websiteId} onSelect={handleWebsiteSelect} />
|
<FormRow label={formatMessage(labels.website)}>
|
||||||
</FormRow>
|
{allowWebsiteSelect && (
|
||||||
<FormRow label={formatMessage(labels.dateRange)}>
|
<WebsiteSelect websiteId={websiteId} onSelect={handleWebsiteSelect} />
|
||||||
<DateFilter
|
)}
|
||||||
value={value}
|
</FormRow>
|
||||||
startDate={startDate}
|
)}
|
||||||
endDate={endDate}
|
{showDateSelect && (
|
||||||
onChange={handleDateChange}
|
<FormRow label={formatMessage(labels.dateRange)}>
|
||||||
/>
|
{allowDateSelect && (
|
||||||
</FormRow>
|
<DateFilter
|
||||||
|
value={value}
|
||||||
|
startDate={startDate}
|
||||||
|
endDate={endDate}
|
||||||
|
onChange={handleDateChange}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</FormRow>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,55 +1,58 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { Form, FormRow, Menu, Item, Flexbox, Dropdown, TextField, Button } from 'react-basics';
|
import { Form, FormRow, Item, Flexbox, Dropdown, Button } from 'react-basics';
|
||||||
import { useFilters } from 'hooks';
|
import { useMessages, useFilters, useFormat } from 'hooks';
|
||||||
import styles from './FieldFilterForm.module.css';
|
import styles from './FieldFilterForm.module.css';
|
||||||
|
|
||||||
export default function FieldFilterForm({ name, type, onSelect }) {
|
export default function FieldFilterForm({ name, label, type, values, onSelect }) {
|
||||||
const [filter, setFilter] = useState('');
|
const { formatMessage, labels } = useMessages();
|
||||||
const [value, setValue] = useState('');
|
const [filter, setFilter] = useState('eq');
|
||||||
const { filters, types } = useFilters();
|
const [value, setValue] = useState();
|
||||||
const items = types[type];
|
const { getFilters } = useFilters();
|
||||||
|
const { formatValue } = useFormat();
|
||||||
|
const filters = getFilters(type);
|
||||||
|
|
||||||
const renderValue = value => {
|
const renderFilterValue = value => {
|
||||||
return filters[value];
|
return filters.find(f => f.value === value)?.label;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (type === 'boolean') {
|
const renderValue = value => {
|
||||||
return (
|
return formatValue(value, name);
|
||||||
<Form>
|
};
|
||||||
<FormRow label={name}>
|
|
||||||
<Menu onSelect={value => onSelect({ name, type, value: ['eq', value] })}>
|
const handleAdd = () => {
|
||||||
{items.map(value => {
|
onSelect({ name, type, filter, value });
|
||||||
return <Item key={value}>{filters[value]}</Item>;
|
};
|
||||||
})}
|
|
||||||
</Menu>
|
|
||||||
</FormRow>
|
|
||||||
</Form>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form>
|
<Form>
|
||||||
<FormRow label={name} className={styles.filter}>
|
<FormRow label={label} className={styles.filter}>
|
||||||
<Flexbox gap={10}>
|
<Flexbox gap={10}>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
className={styles.dropdown}
|
className={styles.dropdown}
|
||||||
items={items}
|
items={filters}
|
||||||
value={filter}
|
value={filter}
|
||||||
renderValue={renderValue}
|
renderValue={renderFilterValue}
|
||||||
onChange={setFilter}
|
onChange={setFilter}
|
||||||
>
|
>
|
||||||
{value => {
|
{({ value, label }) => {
|
||||||
return <Item key={value}>{filters[value]}</Item>;
|
return <Item key={value}>{label}</Item>;
|
||||||
|
}}
|
||||||
|
</Dropdown>
|
||||||
|
<Dropdown
|
||||||
|
className={styles.dropdown}
|
||||||
|
menuProps={{ className: styles.menu }}
|
||||||
|
items={values}
|
||||||
|
value={value}
|
||||||
|
renderValue={renderValue}
|
||||||
|
onChange={setValue}
|
||||||
|
>
|
||||||
|
{value => {
|
||||||
|
return <Item key={value}>{formatValue(value, name)}</Item>;
|
||||||
}}
|
}}
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
<TextField value={value} onChange={e => setValue(e.target.value)} autoFocus={true} />
|
|
||||||
</Flexbox>
|
</Flexbox>
|
||||||
<Button
|
<Button variant="primary" onClick={handleAdd} disabled={!filter || !value}>
|
||||||
variant="primary"
|
{formatMessage(labels.add)}
|
||||||
onClick={() => onSelect({ name, type, value: [filter, value] })}
|
|
||||||
disabled={!filter || !value}
|
|
||||||
>
|
|
||||||
Add
|
|
||||||
</Button>
|
</Button>
|
||||||
</FormRow>
|
</FormRow>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -15,3 +15,8 @@
|
|||||||
.dropdown {
|
.dropdown {
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
min-width: 360px;
|
||||||
|
max-height: 300px;
|
||||||
|
}
|
||||||
|
@ -2,18 +2,18 @@ import { Menu, Item, Form, FormRow } from 'react-basics';
|
|||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
import styles from './FieldSelectForm.module.css';
|
import styles from './FieldSelectForm.module.css';
|
||||||
|
|
||||||
export default function FieldSelectForm({ fields, onSelect }) {
|
export default function FieldSelectForm({ items, onSelect, showType = true }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form>
|
<Form>
|
||||||
<FormRow label={formatMessage(labels.fields)}>
|
<FormRow label={formatMessage(labels.fields)}>
|
||||||
<Menu className={styles.menu} onSelect={key => onSelect(fields[key])}>
|
<Menu className={styles.menu} onSelect={key => onSelect(items[key])}>
|
||||||
{fields.map(({ label, name, type }, index) => {
|
{items.map(({ name, label, type }, index) => {
|
||||||
return (
|
return (
|
||||||
<Item key={index} className={styles.item}>
|
<Item key={index} className={styles.item}>
|
||||||
<div>{label || name}</div>
|
<div>{label || name}</div>
|
||||||
<div className={styles.type}>{type}</div>
|
{showType && type && <div className={styles.type}>{type}</div>}
|
||||||
</Item>
|
</Item>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
42
components/pages/reports/FilterSelectForm.js
Normal file
42
components/pages/reports/FilterSelectForm.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
import FieldSelectForm from './FieldSelectForm';
|
||||||
|
import FieldFilterForm from './FieldFilterForm';
|
||||||
|
import { useApi } from 'hooks';
|
||||||
|
import { Loading } from 'react-basics';
|
||||||
|
|
||||||
|
function useValues(websiteId, type) {
|
||||||
|
const { get, useQuery } = useApi();
|
||||||
|
const { data, error, isLoading } = useQuery(
|
||||||
|
['websites:values', websiteId, type],
|
||||||
|
() =>
|
||||||
|
get(`/websites/${websiteId}/values`, {
|
||||||
|
type,
|
||||||
|
}),
|
||||||
|
{ enabled: !!(websiteId && type) },
|
||||||
|
);
|
||||||
|
|
||||||
|
return { data, error, isLoading };
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function FilterSelectForm({ websiteId, items, onSelect }) {
|
||||||
|
const [field, setField] = useState();
|
||||||
|
const { data, isLoading } = useValues(websiteId, field?.name);
|
||||||
|
|
||||||
|
if (!field) {
|
||||||
|
return <FieldSelectForm items={items} onSelect={setField} showType={false} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLoading) {
|
||||||
|
return <Loading position="center" icon="dots" />;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<FieldFilterForm
|
||||||
|
name={field?.name}
|
||||||
|
label={field?.label}
|
||||||
|
type={field?.type}
|
||||||
|
values={data}
|
||||||
|
onSelect={onSelect}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
@ -1,29 +1,15 @@
|
|||||||
import { createPortal } from 'react-dom';
|
|
||||||
import { useDocumentClick, useKeyDown } from 'react-basics';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import styles from './PopupForm.module.css';
|
import styles from './PopupForm.module.css';
|
||||||
|
|
||||||
export function PopupForm({ element, className, children, onClose }) {
|
export function PopupForm({ className, style, children }) {
|
||||||
const { right, top } = element.getBoundingClientRect();
|
return (
|
||||||
const style = { position: 'absolute', left: right, top };
|
<div
|
||||||
|
className={classNames(styles.form, className)}
|
||||||
useKeyDown('Escape', onClose);
|
style={style}
|
||||||
|
onClick={e => e.stopPropagation()}
|
||||||
useDocumentClick(e => {
|
>
|
||||||
if (e.target !== element && !element?.parentElement?.contains(e.target)) {
|
|
||||||
onClose();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const handleClick = e => {
|
|
||||||
e.stopPropagation();
|
|
||||||
};
|
|
||||||
|
|
||||||
return createPortal(
|
|
||||||
<div className={classNames(styles.form, className)} style={style} onClick={handleClick}>
|
|
||||||
{children}
|
{children}
|
||||||
</div>,
|
</div>
|
||||||
document.body,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
background: var(--base50);
|
background: var(--base50);
|
||||||
min-width: 300px;
|
min-width: 300px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin-left: 30px;
|
|
||||||
border: 1px solid var(--base400);
|
border: 1px solid var(--base400);
|
||||||
border-radius: var(--border-radius);
|
border-radius: var(--border-radius);
|
||||||
box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.1);
|
||||||
|
z-index: 1000;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ export const ReportContext = createContext(null);
|
|||||||
export function Report({ reportId, defaultParameters, children, ...props }) {
|
export function Report({ reportId, defaultParameters, children, ...props }) {
|
||||||
const report = useReport(reportId, defaultParameters);
|
const report = useReport(reportId, defaultParameters);
|
||||||
|
|
||||||
|
//console.log({ report });
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ReportContext.Provider value={{ ...report }}>
|
<ReportContext.Provider value={{ ...report }}>
|
||||||
<Page {...props} className={styles.container}>
|
<Page {...props} className={styles.container}>
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
import FunnelReport from './funnel/FunnelReport';
|
import FunnelReport from './funnel/FunnelReport';
|
||||||
import EventDataReport from './event-data/EventDataReport';
|
import EventDataReport from './event-data/EventDataReport';
|
||||||
|
import InsightsReport from './insights/InsightsReport';
|
||||||
|
import RetentionReport from './retention/RetentionReport';
|
||||||
|
|
||||||
const reports = {
|
const reports = {
|
||||||
funnel: FunnelReport,
|
funnel: FunnelReport,
|
||||||
'event-data': EventDataReport,
|
'event-data': EventDataReport,
|
||||||
|
insights: InsightsReport,
|
||||||
|
retention: RetentionReport,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function ReportDetails({ reportId, reportType }) {
|
export default function ReportDetails({ reportId, reportType }) {
|
||||||
|
@ -4,6 +4,7 @@ import Page from 'components/layout/Page';
|
|||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import Funnel from 'assets/funnel.svg';
|
import Funnel from 'assets/funnel.svg';
|
||||||
import Lightbulb from 'assets/lightbulb.svg';
|
import Lightbulb from 'assets/lightbulb.svg';
|
||||||
|
import Magnet from 'assets/magnet.svg';
|
||||||
import styles from './ReportTemplates.module.css';
|
import styles from './ReportTemplates.module.css';
|
||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
|
|
||||||
@ -33,20 +34,24 @@ export function ReportTemplates() {
|
|||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
const reports = [
|
const reports = [
|
||||||
/*
|
|
||||||
{
|
{
|
||||||
title: formatMessage(labels.insights),
|
title: formatMessage(labels.insights),
|
||||||
description: 'Dive deeper into your data by using segments and filters.',
|
description: 'Dive deeper into your data by using segments and filters.',
|
||||||
url: '/reports/insights',
|
url: '/reports/insights',
|
||||||
icon: <Lightbulb />,
|
icon: <Lightbulb />,
|
||||||
},
|
},
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
title: formatMessage(labels.funnel),
|
title: formatMessage(labels.funnel),
|
||||||
description: 'Understand the conversion and drop-off rate of users.',
|
description: 'Understand the conversion and drop-off rate of users.',
|
||||||
url: '/reports/funnel',
|
url: '/reports/funnel',
|
||||||
icon: <Funnel />,
|
icon: <Funnel />,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: formatMessage(labels.retention),
|
||||||
|
description: 'Measure you website stickiness by tracking how often users return.',
|
||||||
|
url: '/reports/retention',
|
||||||
|
icon: <Magnet />,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
width: 360px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.report {
|
.report {
|
||||||
|
@ -1,27 +1,59 @@
|
|||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import Link from 'next/link';
|
|
||||||
import { Button, Icon, Icons, Text } from 'react-basics';
|
|
||||||
import { useMessages, useReports } from 'hooks';
|
import { useMessages, useReports } from 'hooks';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import useConfig from 'hooks/useConfig';
|
||||||
|
import { Button, Icon, Icons, Text } from 'react-basics';
|
||||||
import ReportsTable from './ReportsTable';
|
import ReportsTable from './ReportsTable';
|
||||||
|
|
||||||
export function ReportsPage() {
|
export function ReportsPage() {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { reports, error, isLoading } = useReports();
|
const { cloudMode } = useConfig();
|
||||||
|
const {
|
||||||
|
reports,
|
||||||
|
error,
|
||||||
|
isLoading,
|
||||||
|
deleteReport,
|
||||||
|
filter,
|
||||||
|
handleFilterChange,
|
||||||
|
handlePageChange,
|
||||||
|
handlePageSizeChange,
|
||||||
|
} = useReports();
|
||||||
|
|
||||||
|
const hasData = (reports && reports?.data.length !== 0) || filter;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page loading={isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
<PageHeader title={formatMessage(labels.reports)}>
|
<PageHeader title={formatMessage(labels.reports)}>
|
||||||
<Link href="/reports/create">
|
{!cloudMode && (
|
||||||
<Button variant="primary">
|
<Link href="/reports/create">
|
||||||
<Icon>
|
<Button variant="primary">
|
||||||
<Icons.Plus />
|
<Icon>
|
||||||
</Icon>
|
<Icons.Plus />
|
||||||
<Text>{formatMessage(labels.createReport)}</Text>
|
</Icon>
|
||||||
</Button>
|
<Text>{formatMessage(labels.createReport)}</Text>
|
||||||
</Link>
|
</Button>
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
<ReportsTable data={reports} />
|
|
||||||
|
{hasData && (
|
||||||
|
<ReportsTable
|
||||||
|
data={reports}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
onDelete={deleteReport}
|
||||||
|
filterValue={filter}
|
||||||
|
showDomain={true}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{!hasData && (
|
||||||
|
<EmptyPlaceholder message={formatMessage(messages.noDataAvailable)}></EmptyPlaceholder>
|
||||||
|
)}
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,36 @@
|
|||||||
import { useState } from 'react';
|
import ConfirmDeleteForm from 'components/common/ConfirmDeleteForm';
|
||||||
import { Flexbox, Icon, Icons, Text, Button, Modal } from 'react-basics';
|
|
||||||
import LinkButton from 'components/common/LinkButton';
|
import LinkButton from 'components/common/LinkButton';
|
||||||
import SettingsTable from 'components/common/SettingsTable';
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
import ConfirmDeleteForm from 'components/common/ConfirmDeleteForm';
|
|
||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { Button, Flexbox, Icon, Icons, Modal, Text } from 'react-basics';
|
||||||
|
|
||||||
export function ReportsTable({ data = [], onDelete = () => {} }) {
|
export function ReportsTable({
|
||||||
|
data = [],
|
||||||
|
onDelete = () => {},
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
showDomain,
|
||||||
|
}) {
|
||||||
const [report, setReport] = useState(null);
|
const [report, setReport] = useState(null);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const { user } = useUser();
|
||||||
|
|
||||||
|
const domainColumn = [
|
||||||
|
{
|
||||||
|
name: 'domain',
|
||||||
|
label: formatMessage(labels.domain),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{ name: 'name', label: formatMessage(labels.name) },
|
{ name: 'name', label: formatMessage(labels.name) },
|
||||||
{ name: 'description', label: formatMessage(labels.description) },
|
{ name: 'description', label: formatMessage(labels.description) },
|
||||||
{ name: 'type', label: formatMessage(labels.type) },
|
{ name: 'type', label: formatMessage(labels.type) },
|
||||||
|
...(showDomain ? domainColumn : []),
|
||||||
{ name: 'action', label: ' ' },
|
{ name: 'action', label: ' ' },
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -22,13 +40,26 @@ export function ReportsTable({ data = [], onDelete = () => {} }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<SettingsTable columns={columns} data={data}>
|
<SettingsTable
|
||||||
|
columns={columns}
|
||||||
|
data={data}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
{row => {
|
{row => {
|
||||||
const { id } = row;
|
const { id, userId: reportOwnerId, website } = row;
|
||||||
|
if (showDomain) {
|
||||||
|
row.domain = website.domain;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Flexbox gap={10}>
|
<Flexbox gap={10}>
|
||||||
<LinkButton href={`/reports/${id}`}>{formatMessage(labels.view)}</LinkButton>
|
<LinkButton href={`/reports/${id}`}>{formatMessage(labels.view)}</LinkButton>
|
||||||
|
{!showDomain || user.id === reportOwnerId || user.id === website?.userId}
|
||||||
<Button onClick={() => setReport(row)}>
|
<Button onClick={() => setReport(row)}>
|
||||||
<Icon>
|
<Icon>
|
||||||
<Icons.Trash />
|
<Icons.Trash />
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useCallback, useContext, useMemo } from 'react';
|
import { useCallback, useContext, useMemo } from 'react';
|
||||||
import { Loading } from 'react-basics';
|
import { Loading, StatusLight } from 'react-basics';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import useTheme from 'hooks/useTheme';
|
import useTheme from 'hooks/useTheme';
|
||||||
import BarChart from 'components/metrics/BarChart';
|
import BarChart from 'components/metrics/BarChart';
|
||||||
@ -22,14 +22,25 @@ export function FunnelChart({ className, loading }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const renderTooltipPopup = useCallback((setTooltipPopup, model) => {
|
const renderTooltipPopup = useCallback((setTooltipPopup, model) => {
|
||||||
const { opacity, dataPoints } = model.tooltip;
|
const { opacity, labelColors, dataPoints } = model.tooltip;
|
||||||
|
|
||||||
if (!dataPoints?.length || !opacity) {
|
if (!dataPoints?.length || !opacity) {
|
||||||
setTooltipPopup(null);
|
setTooltipPopup(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setTooltipPopup(`${formatLongNumber(dataPoints[0].raw.y)} ${formatMessage(labels.visitors)}`);
|
setTooltipPopup(
|
||||||
|
<>
|
||||||
|
<div>
|
||||||
|
{formatLongNumber(dataPoints[0].raw.y)} {formatMessage(labels.visitors)}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<StatusLight color={labelColors?.[0]?.backgroundColor}>
|
||||||
|
{formatLongNumber(dataPoints[0].raw.z)}% {formatMessage(labels.dropoff)}
|
||||||
|
</StatusLight>
|
||||||
|
</div>
|
||||||
|
</>,
|
||||||
|
);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const datasets = useMemo(() => {
|
const datasets = useMemo(() => {
|
||||||
|
@ -16,6 +16,7 @@ import UrlAddForm from './UrlAddForm';
|
|||||||
import { ReportContext } from 'components/pages/reports/Report';
|
import { ReportContext } from 'components/pages/reports/Report';
|
||||||
import BaseParameters from '../BaseParameters';
|
import BaseParameters from '../BaseParameters';
|
||||||
import ParameterList from '../ParameterList';
|
import ParameterList from '../ParameterList';
|
||||||
|
import PopupForm from '../PopupForm';
|
||||||
|
|
||||||
export function FunnelParameters() {
|
export function FunnelParameters() {
|
||||||
const { report, runReport, updateReport, isRunning } = useContext(ReportContext);
|
const { report, runReport, updateReport, isRunning } = useContext(ReportContext);
|
||||||
@ -53,7 +54,11 @@ export function FunnelParameters() {
|
|||||||
</Icon>
|
</Icon>
|
||||||
<Popup position="bottom" alignment="start">
|
<Popup position="bottom" alignment="start">
|
||||||
{(close, element) => {
|
{(close, element) => {
|
||||||
return <UrlAddForm element={element} onAdd={handleAddUrl} onClose={close} />;
|
return (
|
||||||
|
<PopupForm element={element} onClose={close}>
|
||||||
|
<UrlAddForm onAdd={handleAddUrl} />
|
||||||
|
</PopupForm>
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
</Popup>
|
</Popup>
|
||||||
</PopupTrigger>
|
</PopupTrigger>
|
||||||
|
@ -6,9 +6,10 @@ import ReportHeader from '../ReportHeader';
|
|||||||
import ReportMenu from '../ReportMenu';
|
import ReportMenu from '../ReportMenu';
|
||||||
import ReportBody from '../ReportBody';
|
import ReportBody from '../ReportBody';
|
||||||
import Funnel from 'assets/funnel.svg';
|
import Funnel from 'assets/funnel.svg';
|
||||||
|
import { REPORT_TYPES } from 'lib/constants';
|
||||||
|
|
||||||
const defaultParameters = {
|
const defaultParameters = {
|
||||||
type: 'funnel',
|
type: REPORT_TYPES.funnel,
|
||||||
parameters: { window: 60, urls: [] },
|
parameters: { window: 60, urls: [] },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,16 +2,14 @@ import { useState } from 'react';
|
|||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
import { Button, Form, FormRow, TextField, Flexbox } from 'react-basics';
|
import { Button, Form, FormRow, TextField, Flexbox } from 'react-basics';
|
||||||
import styles from './UrlAddForm.module.css';
|
import styles from './UrlAddForm.module.css';
|
||||||
import PopupForm from '../PopupForm';
|
|
||||||
|
|
||||||
export function UrlAddForm({ defaultValue = '', element, onAdd, onClose }) {
|
export function UrlAddForm({ defaultValue = '', onAdd }) {
|
||||||
const [url, setUrl] = useState(defaultValue);
|
const [url, setUrl] = useState(defaultValue);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
onAdd(url);
|
onAdd(url);
|
||||||
setUrl('');
|
setUrl('');
|
||||||
onClose();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleChange = e => {
|
const handleChange = e => {
|
||||||
@ -26,25 +24,23 @@ export function UrlAddForm({ defaultValue = '', element, onAdd, onClose }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PopupForm element={element}>
|
<Form>
|
||||||
<Form>
|
<FormRow label={formatMessage(labels.url)}>
|
||||||
<FormRow label={formatMessage(labels.url)}>
|
<Flexbox gap={10}>
|
||||||
<Flexbox gap={10}>
|
<TextField
|
||||||
<TextField
|
className={styles.input}
|
||||||
className={styles.input}
|
value={url}
|
||||||
value={url}
|
onChange={handleChange}
|
||||||
onChange={handleChange}
|
autoFocus={true}
|
||||||
autoFocus={true}
|
autoComplete="off"
|
||||||
autoComplete="off"
|
onKeyDown={handleKeyDown}
|
||||||
onKeyDown={handleKeyDown}
|
/>
|
||||||
/>
|
<Button variant="primary" onClick={handleSave}>
|
||||||
<Button variant="primary" onClick={handleSave}>
|
{formatMessage(labels.add)}
|
||||||
{formatMessage(labels.add)}
|
</Button>
|
||||||
</Button>
|
</Flexbox>
|
||||||
</Flexbox>
|
</FormRow>
|
||||||
</FormRow>
|
</Form>
|
||||||
</Form>
|
|
||||||
</PopupForm>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,69 +1,104 @@
|
|||||||
import { useContext, useRef } from 'react';
|
import { useContext, useRef } from 'react';
|
||||||
import { useMessages } from 'hooks';
|
import { useFormat, useMessages, useFilters } from 'hooks';
|
||||||
import { Form, FormRow, FormButtons, SubmitButton, PopupTrigger, Icon, Popup } from 'react-basics';
|
import {
|
||||||
|
Form,
|
||||||
|
FormRow,
|
||||||
|
FormButtons,
|
||||||
|
SubmitButton,
|
||||||
|
PopupTrigger,
|
||||||
|
Icon,
|
||||||
|
Popup,
|
||||||
|
TooltipPopup,
|
||||||
|
} from 'react-basics';
|
||||||
import { ReportContext } from 'components/pages/reports/Report';
|
import { ReportContext } from 'components/pages/reports/Report';
|
||||||
import { REPORT_PARAMETERS, WEBSITE_EVENT_FIELDS } from 'lib/constants';
|
|
||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
import BaseParameters from '../BaseParameters';
|
import BaseParameters from '../BaseParameters';
|
||||||
import FieldAddForm from '../FieldAddForm';
|
|
||||||
import ParameterList from '../ParameterList';
|
import ParameterList from '../ParameterList';
|
||||||
import styles from './InsightsParameters.module.css';
|
import styles from './InsightsParameters.module.css';
|
||||||
|
import PopupForm from '../PopupForm';
|
||||||
|
import FilterSelectForm from '../FilterSelectForm';
|
||||||
|
import FieldSelectForm from '../FieldSelectForm';
|
||||||
|
|
||||||
export function InsightsParameters() {
|
export function InsightsParameters() {
|
||||||
const { report, runReport, updateReport, isRunning } = useContext(ReportContext);
|
const { report, runReport, updateReport, isRunning } = useContext(ReportContext);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const { formatValue } = useFormat();
|
||||||
|
const { filterLabels } = useFilters();
|
||||||
const ref = useRef(null);
|
const ref = useRef(null);
|
||||||
const { parameters } = report || {};
|
const { parameters } = report || {};
|
||||||
const { websiteId, dateRange, fields, filters, groups } = parameters || {};
|
const { websiteId, dateRange, fields, filters } = parameters || {};
|
||||||
const queryEnabled = websiteId && dateRange && fields?.length;
|
const { startDate, endDate } = dateRange || {};
|
||||||
const fieldOptions = Object.keys(WEBSITE_EVENT_FIELDS).map(key => WEBSITE_EVENT_FIELDS[key]);
|
const parametersSelected = websiteId && startDate && endDate;
|
||||||
|
const queryEnabled = websiteId && dateRange && (fields?.length || filters?.length);
|
||||||
|
|
||||||
|
const fieldOptions = [
|
||||||
|
{ name: 'url', type: 'string', label: formatMessage(labels.url) },
|
||||||
|
{ name: 'title', type: 'string', label: formatMessage(labels.pageTitle) },
|
||||||
|
{ name: 'referrer', type: 'string', label: formatMessage(labels.referrer) },
|
||||||
|
{ name: 'query', type: 'string', label: formatMessage(labels.query) },
|
||||||
|
{ name: 'browser', type: 'string', label: formatMessage(labels.browser) },
|
||||||
|
{ name: 'os', type: 'string', label: formatMessage(labels.os) },
|
||||||
|
{ name: 'device', type: 'string', label: formatMessage(labels.device) },
|
||||||
|
{ name: 'country', type: 'string', label: formatMessage(labels.country) },
|
||||||
|
{ name: 'region', type: 'string', label: formatMessage(labels.region) },
|
||||||
|
{ name: 'city', type: 'string', label: formatMessage(labels.city) },
|
||||||
|
];
|
||||||
|
|
||||||
const parameterGroups = [
|
const parameterGroups = [
|
||||||
{ label: formatMessage(labels.fields), group: REPORT_PARAMETERS.fields },
|
{ id: 'fields', label: formatMessage(labels.fields) },
|
||||||
{ label: formatMessage(labels.filters), group: REPORT_PARAMETERS.filters },
|
{ id: 'filters', label: formatMessage(labels.filters) },
|
||||||
{ label: formatMessage(labels.breakdown), group: REPORT_PARAMETERS.groups },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const parameterData = {
|
const parameterData = {
|
||||||
fields,
|
fields,
|
||||||
filters,
|
filters,
|
||||||
groups,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSubmit = values => {
|
const handleSubmit = values => {
|
||||||
runReport(values);
|
runReport(values);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAdd = (group, value) => {
|
const handleAdd = (id, value) => {
|
||||||
const data = parameterData[group];
|
const data = parameterData[id];
|
||||||
|
|
||||||
if (!data.find(({ name }) => name === value.name)) {
|
if (!data.find(({ name }) => name === value.name)) {
|
||||||
updateReport({ parameters: { [group]: data.concat(value) } });
|
updateReport({ parameters: { [id]: data.concat(value) } });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRemove = (group, index) => {
|
const handleRemove = (id, index) => {
|
||||||
const data = [...parameterData[group]];
|
const data = [...parameterData[id]];
|
||||||
data.splice(index, 1);
|
data.splice(index, 1);
|
||||||
updateReport({ parameters: { [group]: data } });
|
updateReport({ parameters: { [id]: data } });
|
||||||
};
|
};
|
||||||
|
|
||||||
const AddButton = ({ group }) => {
|
const AddButton = ({ id }) => {
|
||||||
return (
|
return (
|
||||||
<PopupTrigger>
|
<PopupTrigger>
|
||||||
<Icon>
|
<TooltipPopup label={formatMessage(labels.add)} position="top">
|
||||||
<Icons.Plus />
|
<Icon>
|
||||||
</Icon>
|
<Icons.Plus />
|
||||||
<Popup position="bottom" alignment="start">
|
</Icon>
|
||||||
{(close, element) => {
|
</TooltipPopup>
|
||||||
|
<Popup position="bottom" alignment="start" className={styles.popup}>
|
||||||
|
{close => {
|
||||||
return (
|
return (
|
||||||
<FieldAddForm
|
<PopupForm onClose={close}>
|
||||||
fields={fieldOptions}
|
{id === 'fields' && (
|
||||||
group={group}
|
<FieldSelectForm
|
||||||
element={element}
|
items={fieldOptions}
|
||||||
onAdd={handleAdd}
|
onSelect={handleAdd.bind(null, id)}
|
||||||
onClose={close}
|
showType={false}
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
|
{id === 'filters' && (
|
||||||
|
<FilterSelectForm
|
||||||
|
websiteId={websiteId}
|
||||||
|
items={fieldOptions}
|
||||||
|
onSelect={handleAdd.bind(null, id)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</PopupForm>
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</Popup>
|
</Popup>
|
||||||
@ -74,41 +109,33 @@ export function InsightsParameters() {
|
|||||||
return (
|
return (
|
||||||
<Form ref={ref} values={parameters} onSubmit={handleSubmit}>
|
<Form ref={ref} values={parameters} onSubmit={handleSubmit}>
|
||||||
<BaseParameters />
|
<BaseParameters />
|
||||||
{parameterGroups.map(({ label, group }) => {
|
{parametersSelected &&
|
||||||
return (
|
parameterGroups.map(({ id, label }) => {
|
||||||
<FormRow key={label} label={label} action={<AddButton group={group} onAdd={handleAdd} />}>
|
return (
|
||||||
<ParameterList
|
<FormRow key={label} label={label} action={<AddButton id={id} onAdd={handleAdd} />}>
|
||||||
items={parameterData[group]}
|
<ParameterList items={parameterData[id]} onRemove={index => handleRemove(id, index)}>
|
||||||
onRemove={index => handleRemove(group, index)}
|
{({ name, filter, value }) => {
|
||||||
>
|
return (
|
||||||
{({ name, value }) => {
|
<div className={styles.parameter}>
|
||||||
return (
|
{id === 'fields' && (
|
||||||
<div className={styles.parameter}>
|
<>
|
||||||
{group === REPORT_PARAMETERS.fields && (
|
<div>{fieldOptions.find(f => f.name === name)?.label}</div>
|
||||||
<>
|
</>
|
||||||
<div>{name}</div>
|
)}
|
||||||
<div className={styles.op}>{value}</div>
|
{id === 'filters' && (
|
||||||
</>
|
<>
|
||||||
)}
|
<div>{fieldOptions.find(f => f.name === name)?.label}</div>
|
||||||
{group === REPORT_PARAMETERS.filters && (
|
<div className={styles.op}>{filterLabels[filter]}</div>
|
||||||
<>
|
<div>{formatValue(value, name)}</div>
|
||||||
<div>{name}</div>
|
</>
|
||||||
<div className={styles.op}>{value[0]}</div>
|
)}
|
||||||
<div>{value[1]}</div>
|
</div>
|
||||||
</>
|
);
|
||||||
)}
|
}}
|
||||||
{group === REPORT_PARAMETERS.groups && (
|
</ParameterList>
|
||||||
<>
|
</FormRow>
|
||||||
<div>{name}</div>
|
);
|
||||||
</>
|
})}
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
</ParameterList>
|
|
||||||
</FormRow>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
<FormButtons>
|
<FormButtons>
|
||||||
<SubmitButton variant="primary" disabled={!queryEnabled} loading={isRunning}>
|
<SubmitButton variant="primary" disabled={!queryEnabled} loading={isRunning}>
|
||||||
{formatMessage(labels.runQuery)}
|
{formatMessage(labels.runQuery)}
|
||||||
|
@ -10,3 +10,8 @@
|
|||||||
.op {
|
.op {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.popup {
|
||||||
|
margin-top: -10px;
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
@ -5,10 +5,11 @@ import ReportBody from '../ReportBody';
|
|||||||
import InsightsParameters from './InsightsParameters';
|
import InsightsParameters from './InsightsParameters';
|
||||||
import InsightsTable from './InsightsTable';
|
import InsightsTable from './InsightsTable';
|
||||||
import Lightbulb from 'assets/lightbulb.svg';
|
import Lightbulb from 'assets/lightbulb.svg';
|
||||||
|
import { REPORT_TYPES } from 'lib/constants';
|
||||||
|
|
||||||
const defaultParameters = {
|
const defaultParameters = {
|
||||||
type: 'insights',
|
type: REPORT_TYPES.insights,
|
||||||
parameters: { fields: [], filters: [], groups: [] },
|
parameters: { fields: [], filters: [] },
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function InsightsReport({ reportId }) {
|
export default function InsightsReport({ reportId }) {
|
||||||
|
@ -1,17 +1,47 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext, useEffect, useState } from 'react';
|
||||||
import { GridTable, GridColumn } from 'react-basics';
|
import { GridTable, GridColumn } from 'react-basics';
|
||||||
import { useMessages } from 'hooks';
|
import { useFormat, useMessages } from 'hooks';
|
||||||
import { ReportContext } from '../Report';
|
import { ReportContext } from '../Report';
|
||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
|
|
||||||
export function InsightsTable() {
|
export function InsightsTable() {
|
||||||
|
const [fields, setFields] = useState();
|
||||||
const { report } = useContext(ReportContext);
|
const { report } = useContext(ReportContext);
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const { formatValue } = useFormat();
|
||||||
|
|
||||||
|
useEffect(
|
||||||
|
() => {
|
||||||
|
setFields(report?.parameters?.fields);
|
||||||
|
},
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
[report?.data],
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!fields || !report?.parameters) {
|
||||||
|
return <EmptyPlaceholder />;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<GridTable data={report?.data || []}>
|
<GridTable data={report?.data || []}>
|
||||||
<GridColumn name="field" label={formatMessage(labels.field)} />
|
{fields.map(({ name, label }) => {
|
||||||
<GridColumn name="value" label={formatMessage(labels.value)} />
|
return (
|
||||||
<GridColumn name="total" label={formatMessage(labels.total)} />
|
<GridColumn key={name} name={name} label={label}>
|
||||||
|
{row => formatValue(row[name], name)}
|
||||||
|
</GridColumn>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
<GridColumn
|
||||||
|
name="visitors"
|
||||||
|
label={formatMessage(labels.visitors)}
|
||||||
|
width="100px"
|
||||||
|
alignment="end"
|
||||||
|
>
|
||||||
|
{row => row.visitors.toLocaleString()}
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn name="views" label={formatMessage(labels.views)} width="100px" alignment="end">
|
||||||
|
{row => row.views.toLocaleString()}
|
||||||
|
</GridColumn>
|
||||||
</GridTable>
|
</GridTable>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
46
components/pages/reports/retention/RetentionParameters.js
Normal file
46
components/pages/reports/retention/RetentionParameters.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { useContext, useRef } from 'react';
|
||||||
|
import { useMessages } from 'hooks';
|
||||||
|
import { Form, FormButtons, FormRow, SubmitButton } from 'react-basics';
|
||||||
|
import { ReportContext } from 'components/pages/reports/Report';
|
||||||
|
import { MonthSelect } from 'components/input/MonthSelect';
|
||||||
|
import BaseParameters from '../BaseParameters';
|
||||||
|
import { parseDateRange } from 'lib/date';
|
||||||
|
|
||||||
|
export function RetentionParameters() {
|
||||||
|
const { report, runReport, isRunning, updateReport } = useContext(ReportContext);
|
||||||
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const ref = useRef(null);
|
||||||
|
|
||||||
|
const { parameters } = report || {};
|
||||||
|
const { websiteId, dateRange } = parameters || {};
|
||||||
|
const { startDate } = dateRange || {};
|
||||||
|
const queryDisabled = !websiteId || !dateRange;
|
||||||
|
|
||||||
|
const handleSubmit = (data, e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
if (!queryDisabled) {
|
||||||
|
runReport(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleDateChange = value => {
|
||||||
|
updateReport({ parameters: { dateRange: { ...parseDateRange(value) } } });
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Form ref={ref} values={parameters} onSubmit={handleSubmit} preventSubmit={true}>
|
||||||
|
<BaseParameters showDateSelect={false} />
|
||||||
|
<FormRow label={formatMessage(labels.date)}>
|
||||||
|
<MonthSelect date={startDate} onChange={handleDateChange} />
|
||||||
|
</FormRow>
|
||||||
|
<FormButtons>
|
||||||
|
<SubmitButton variant="primary" disabled={queryDisabled} loading={isRunning}>
|
||||||
|
{formatMessage(labels.runQuery)}
|
||||||
|
</SubmitButton>
|
||||||
|
</FormButtons>
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RetentionParameters;
|
33
components/pages/reports/retention/RetentionReport.js
Normal file
33
components/pages/reports/retention/RetentionReport.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import RetentionTable from './RetentionTable';
|
||||||
|
import RetentionParameters from './RetentionParameters';
|
||||||
|
import Report from '../Report';
|
||||||
|
import ReportHeader from '../ReportHeader';
|
||||||
|
import ReportMenu from '../ReportMenu';
|
||||||
|
import ReportBody from '../ReportBody';
|
||||||
|
import Magnet from 'assets/magnet.svg';
|
||||||
|
import { REPORT_TYPES } from 'lib/constants';
|
||||||
|
import { parseDateRange } from 'lib/date';
|
||||||
|
import { endOfMonth, startOfMonth } from 'date-fns';
|
||||||
|
|
||||||
|
const defaultParameters = {
|
||||||
|
type: REPORT_TYPES.retention,
|
||||||
|
parameters: {
|
||||||
|
dateRange: parseDateRange(
|
||||||
|
`range:${startOfMonth(new Date()).getTime()}:${endOfMonth(new Date()).getTime()}`,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function RetentionReport({ reportId }) {
|
||||||
|
return (
|
||||||
|
<Report reportId={reportId} defaultParameters={defaultParameters}>
|
||||||
|
<ReportHeader icon={<Magnet />} />
|
||||||
|
<ReportMenu>
|
||||||
|
<RetentionParameters />
|
||||||
|
</ReportMenu>
|
||||||
|
<ReportBody>
|
||||||
|
<RetentionTable />
|
||||||
|
</ReportBody>
|
||||||
|
</Report>
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
.filters {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
border: 1px solid var(--base400);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
line-height: 32px;
|
||||||
|
padding: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
78
components/pages/reports/retention/RetentionTable.js
Normal file
78
components/pages/reports/retention/RetentionTable.js
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import { useContext } from 'react';
|
||||||
|
import classNames from 'classnames';
|
||||||
|
import { ReportContext } from '../Report';
|
||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
|
import { useMessages } from 'hooks';
|
||||||
|
import { formatDate } from 'lib/date';
|
||||||
|
import styles from './RetentionTable.module.css';
|
||||||
|
|
||||||
|
export function RetentionTable() {
|
||||||
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const { report } = useContext(ReportContext);
|
||||||
|
const { data } = report || {};
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return <EmptyPlaceholder />;
|
||||||
|
}
|
||||||
|
|
||||||
|
const days = [1, 2, 3, 4, 5, 6, 7, 14, 21, 28];
|
||||||
|
|
||||||
|
const rows = data.reduce((arr, row) => {
|
||||||
|
const { date, visitors, day } = row;
|
||||||
|
if (day === 0) {
|
||||||
|
return arr.concat({
|
||||||
|
date,
|
||||||
|
visitors,
|
||||||
|
records: days
|
||||||
|
.reduce((arr, day) => {
|
||||||
|
arr[day] = data.find(x => x.date === date && x.day === day);
|
||||||
|
return arr;
|
||||||
|
}, [])
|
||||||
|
.filter(n => n),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const totalDays = rows.length;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className={styles.table}>
|
||||||
|
<div className={classNames(styles.row, styles.header)}>
|
||||||
|
<div className={styles.date}>{formatMessage(labels.date)}</div>
|
||||||
|
<div className={styles.visitors}>{formatMessage(labels.visitors)}</div>
|
||||||
|
{days.map(n => (
|
||||||
|
<div key={n} className={styles.day}>
|
||||||
|
{formatMessage(labels.day)} {n}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
{rows.map(({ date, visitors, records }, rowIndex) => {
|
||||||
|
return (
|
||||||
|
<div key={rowIndex} className={styles.row}>
|
||||||
|
<div className={styles.date}>{formatDate(`${date} 00:00:00`, 'PP')}</div>
|
||||||
|
<div className={styles.visitors}>{visitors}</div>
|
||||||
|
{days.map(day => {
|
||||||
|
if (totalDays - rowIndex < day) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const percentage = records[day]?.percentage;
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
key={day}
|
||||||
|
className={classNames(styles.cell, { [styles.empty]: !percentage })}
|
||||||
|
>
|
||||||
|
{percentage ? `${percentage.toFixed(2)}%` : ''}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RetentionTable;
|
52
components/pages/reports/retention/RetentionTable.module.css
Normal file
52
components/pages/reports/retention/RetentionTable.module.css
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.table {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 1px;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
background: var(--blue200);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
min-width: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visitors {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
min-width: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.day {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty {
|
||||||
|
background: var(--blue100);
|
||||||
|
}
|
@ -12,6 +12,8 @@ export function TeamAddWebsiteForm({ teamId, onSave, onClose }) {
|
|||||||
const [newWebsites, setNewWebsites] = useState([]);
|
const [newWebsites, setNewWebsites] = useState([]);
|
||||||
const formRef = useRef();
|
const formRef = useRef();
|
||||||
|
|
||||||
|
const hasData = websites && websites.data.length > 0;
|
||||||
|
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
mutate(
|
mutate(
|
||||||
{ websiteIds: newWebsites },
|
{ websiteIds: newWebsites },
|
||||||
@ -42,20 +44,22 @@ export function TeamAddWebsiteForm({ teamId, onSave, onClose }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Form onSubmit={handleSubmit} error={error} ref={formRef}>
|
{hasData && (
|
||||||
<FormRow label={formatMessage(labels.websites)}>
|
<Form onSubmit={handleSubmit} error={error} ref={formRef}>
|
||||||
<Dropdown items={websites} onChange={handleAddWebsite} style={{ width: 300 }}>
|
<FormRow label={formatMessage(labels.websites)}>
|
||||||
{({ id, name }) => <Item key={id}>{name}</Item>}
|
<Dropdown items={websites.data} onChange={handleAddWebsite} style={{ width: 300 }}>
|
||||||
</Dropdown>
|
{({ id, name }) => <Item key={id}>{name}</Item>}
|
||||||
</FormRow>
|
</Dropdown>
|
||||||
<WebsiteTags items={websites} websites={newWebsites} onClick={handleRemoveWebsite} />
|
</FormRow>
|
||||||
<FormButtons flex>
|
<WebsiteTags items={websites.data} websites={newWebsites} onClick={handleRemoveWebsite} />
|
||||||
<SubmitButton disabled={newWebsites && newWebsites.length === 0}>
|
<FormButtons flex>
|
||||||
{formatMessage(labels.addWebsite)}
|
<SubmitButton disabled={newWebsites && newWebsites.length === 0}>
|
||||||
</SubmitButton>
|
{formatMessage(labels.addWebsite)}
|
||||||
<Button onClick={onClose}>{formatMessage(labels.cancel)}</Button>
|
</SubmitButton>
|
||||||
</FormButtons>
|
<Button onClick={onClose}>{formatMessage(labels.cancel)}</Button>
|
||||||
</Form>
|
</FormButtons>
|
||||||
|
</Form>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,22 @@ import { Loading, useToasts } from 'react-basics';
|
|||||||
import TeamMembersTable from 'components/pages/settings/teams/TeamMembersTable';
|
import TeamMembersTable from 'components/pages/settings/teams/TeamMembersTable';
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
export function TeamMembers({ teamId, readOnly }) {
|
export function TeamMembers({ teamId, readOnly }) {
|
||||||
const { showToast } = useToasts();
|
const { showToast } = useToasts();
|
||||||
const { get, useQuery } = useApi();
|
|
||||||
const { formatMessage, messages } = useMessages();
|
const { formatMessage, messages } = useMessages();
|
||||||
const { data, isLoading, refetch } = useQuery(['teams:users', teamId], () =>
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
get(`/teams/${teamId}/users`),
|
useApiFilter();
|
||||||
|
const { get, useQuery } = useApi();
|
||||||
|
const { data, isLoading, refetch } = useQuery(
|
||||||
|
['teams:users', teamId, filter, page, pageSize],
|
||||||
|
() =>
|
||||||
|
get(`/teams/${teamId}/users`, {
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
@ -22,7 +31,15 @@ export function TeamMembers({ teamId, readOnly }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<TeamMembersTable onSave={handleSave} data={data} readOnly={readOnly} />
|
<TeamMembersTable
|
||||||
|
onSave={handleSave}
|
||||||
|
data={data}
|
||||||
|
readOnly={readOnly}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,15 @@ import { ROLES } from 'lib/constants';
|
|||||||
import TeamMemberRemoveButton from './TeamMemberRemoveButton';
|
import TeamMemberRemoveButton from './TeamMemberRemoveButton';
|
||||||
import SettingsTable from 'components/common/SettingsTable';
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
|
|
||||||
export function TeamMembersTable({ data = [], onSave, readOnly }) {
|
export function TeamMembersTable({
|
||||||
|
data = [],
|
||||||
|
onSave,
|
||||||
|
readOnly,
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
}) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
|
||||||
@ -16,7 +24,7 @@ export function TeamMembersTable({ data = [], onSave, readOnly }) {
|
|||||||
|
|
||||||
const cellRender = (row, data, key) => {
|
const cellRender = (row, data, key) => {
|
||||||
if (key === 'username') {
|
if (key === 'username') {
|
||||||
return row?.user?.username;
|
return row?.username;
|
||||||
}
|
}
|
||||||
if (key === 'role') {
|
if (key === 'role') {
|
||||||
return formatMessage(
|
return formatMessage(
|
||||||
@ -27,13 +35,23 @@ export function TeamMembersTable({ data = [], onSave, readOnly }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsTable data={data} columns={columns} cellRender={cellRender}>
|
<SettingsTable
|
||||||
|
data={data}
|
||||||
|
columns={columns}
|
||||||
|
cellRender={cellRender}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
{row => {
|
{row => {
|
||||||
return (
|
return (
|
||||||
!readOnly && (
|
!readOnly && (
|
||||||
<TeamMemberRemoveButton
|
<TeamMemberRemoveButton
|
||||||
teamId={row.teamId}
|
teamId={row.teamId}
|
||||||
userId={row.userId}
|
userId={row.id}
|
||||||
disabled={user.id === row?.user?.id || row.role === ROLES.teamOwner}
|
disabled={user.id === row?.user?.id || row.role === ROLES.teamOwner}
|
||||||
onSave={onSave}
|
onSave={onSave}
|
||||||
/>
|
/>
|
||||||
|
@ -13,13 +13,22 @@ import TeamWebsitesTable from 'components/pages/settings/teams/TeamWebsitesTable
|
|||||||
import TeamAddWebsiteForm from 'components/pages/settings/teams/TeamAddWebsiteForm';
|
import TeamAddWebsiteForm from 'components/pages/settings/teams/TeamAddWebsiteForm';
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
export function TeamWebsites({ teamId }) {
|
export function TeamWebsites({ teamId }) {
|
||||||
const { showToast } = useToasts();
|
const { showToast } = useToasts();
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
|
useApiFilter();
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, refetch } = useQuery(['teams:websites', teamId], () =>
|
const { data, isLoading, refetch } = useQuery(
|
||||||
get(`/teams/${teamId}/websites`),
|
['teams:websites', teamId, filter, page, pageSize],
|
||||||
|
() =>
|
||||||
|
get(`/teams/${teamId}/websites`, {
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
}),
|
||||||
);
|
);
|
||||||
const hasData = data && data.length !== 0;
|
const hasData = data && data.length !== 0;
|
||||||
|
|
||||||
@ -49,7 +58,17 @@ export function TeamWebsites({ teamId }) {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<ActionForm description={formatMessage(messages.teamWebsitesInfo)}>{addButton}</ActionForm>
|
<ActionForm description={formatMessage(messages.teamWebsitesInfo)}>{addButton}</ActionForm>
|
||||||
{hasData && <TeamWebsitesTable teamId={teamId} data={data} onSave={handleSave} />}
|
{hasData && (
|
||||||
|
<TeamWebsitesTable
|
||||||
|
teamId={teamId}
|
||||||
|
data={data}
|
||||||
|
onSave={handleSave}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,17 @@ import TeamWebsiteRemoveButton from './TeamWebsiteRemoveButton';
|
|||||||
import SettingsTable from 'components/common/SettingsTable';
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
import useConfig from 'hooks/useConfig';
|
import useConfig from 'hooks/useConfig';
|
||||||
|
|
||||||
export function TeamWebsitesTable({ data = [], onSave }) {
|
export function TeamWebsitesTable({
|
||||||
|
data = [],
|
||||||
|
onSave,
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
}) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { openExternal } = useConfig();
|
const { openExternal } = useConfig();
|
||||||
|
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const columns = [
|
const columns = [
|
||||||
{ name: 'name', label: formatMessage(labels.name) },
|
{ name: 'name', label: formatMessage(labels.name) },
|
||||||
@ -17,11 +25,19 @@ export function TeamWebsitesTable({ data = [], onSave }) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsTable columns={columns} data={data}>
|
<SettingsTable
|
||||||
|
columns={columns}
|
||||||
|
data={data}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
{row => {
|
{row => {
|
||||||
const { teamId } = row;
|
const { id: teamId, teamUser } = row.teamWebsite[0].team;
|
||||||
const { id: websiteId, name, domain, userId } = row.website;
|
const { id: websiteId, name, domain, userId } = row;
|
||||||
const { teamUser } = row.team;
|
|
||||||
const owner = teamUser[0];
|
const owner = teamUser[0];
|
||||||
const canRemove = user.id === userId || user.id === owner.userId;
|
const canRemove = user.id === userId || user.id === owner.userId;
|
||||||
|
|
||||||
|
@ -1,24 +1,37 @@
|
|||||||
import { useState } from 'react';
|
|
||||||
import { Button, Icon, Modal, ModalTrigger, useToasts, Text, Flexbox } from 'react-basics';
|
|
||||||
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import TeamAddForm from 'components/pages/settings/teams/TeamAddForm';
|
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
|
||||||
import TeamsTable from 'components/pages/settings/teams/TeamsTable';
|
|
||||||
import Page from 'components/layout/Page';
|
|
||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
import TeamJoinForm from './TeamJoinForm';
|
import Page from 'components/layout/Page';
|
||||||
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
|
import TeamAddForm from 'components/pages/settings/teams/TeamAddForm';
|
||||||
|
import TeamsTable from 'components/pages/settings/teams/TeamsTable';
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import { ROLES } from 'lib/constants';
|
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
import { ROLES } from 'lib/constants';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { Button, Flexbox, Icon, Modal, ModalTrigger, Text, useToasts } from 'react-basics';
|
||||||
|
import TeamJoinForm from './TeamJoinForm';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
export default function TeamsList() {
|
export default function TeamsList() {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
|
useApiFilter();
|
||||||
const [update, setUpdate] = useState(0);
|
const [update, setUpdate] = useState(0);
|
||||||
|
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, error } = useQuery(['teams', update], () => get(`/teams`));
|
const { data, isLoading, error } = useQuery(['teams', update, filter, page, pageSize], () => {
|
||||||
const hasData = data && data.length !== 0;
|
return get(`/teams`, {
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const hasData = data && data?.data.length !== 0;
|
||||||
|
const isFiltered = filter;
|
||||||
|
|
||||||
const { showToast } = useToasts();
|
const { showToast } = useToasts();
|
||||||
|
|
||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
@ -71,15 +84,26 @@ export default function TeamsList() {
|
|||||||
return (
|
return (
|
||||||
<Page loading={isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
<PageHeader title={formatMessage(labels.teams)}>
|
<PageHeader title={formatMessage(labels.teams)}>
|
||||||
{hasData && (
|
{(hasData || isFiltered) && (
|
||||||
<Flexbox gap={10}>
|
<Flexbox gap={10}>
|
||||||
{joinButton}
|
{joinButton}
|
||||||
{createButton}
|
{createButton}
|
||||||
</Flexbox>
|
</Flexbox>
|
||||||
)}
|
)}
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
{hasData && <TeamsTable data={data} onDelete={handleDelete} />}
|
|
||||||
{!hasData && (
|
{(hasData || isFiltered) && (
|
||||||
|
<TeamsTable
|
||||||
|
data={data}
|
||||||
|
onDelete={handleDelete}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{!hasData && !isFiltered && (
|
||||||
<EmptyPlaceholder message={formatMessage(messages.noTeams)}>
|
<EmptyPlaceholder message={formatMessage(messages.noTeams)}>
|
||||||
<Flexbox gap={10}>
|
<Flexbox gap={10}>
|
||||||
{joinButton}
|
{joinButton}
|
||||||
|
@ -1,14 +1,21 @@
|
|||||||
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
|
import useLocale from 'hooks/useLocale';
|
||||||
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
import { ROLES } from 'lib/constants';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics';
|
import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics';
|
||||||
import TeamDeleteForm from './TeamDeleteForm';
|
import TeamDeleteForm from './TeamDeleteForm';
|
||||||
import TeamLeaveForm from './TeamLeaveForm';
|
import TeamLeaveForm from './TeamLeaveForm';
|
||||||
import useMessages from 'hooks/useMessages';
|
|
||||||
import useUser from 'hooks/useUser';
|
|
||||||
import { ROLES } from 'lib/constants';
|
|
||||||
import SettingsTable from 'components/common/SettingsTable';
|
|
||||||
import useLocale from 'hooks/useLocale';
|
|
||||||
|
|
||||||
export function TeamsTable({ data = [], onDelete }) {
|
export function TeamsTable({
|
||||||
|
data = { data: [] },
|
||||||
|
onDelete,
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
}) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { dir } = useLocale();
|
const { dir } = useLocale();
|
||||||
@ -27,7 +34,17 @@ export function TeamsTable({ data = [], onDelete }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsTable data={data} columns={columns} cellRender={cellRender}>
|
<SettingsTable
|
||||||
|
data={data}
|
||||||
|
columns={columns}
|
||||||
|
cellRender={cellRender}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
{row => {
|
{row => {
|
||||||
const { id, teamUser } = row;
|
const { id, teamUser } = row;
|
||||||
const owner = teamUser.find(({ role }) => role === ROLES.teamOwner);
|
const owner = teamUser.find(({ role }) => role === ROLES.teamOwner);
|
||||||
|
@ -7,14 +7,27 @@ import UserAddButton from './UserAddButton';
|
|||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
export function UsersList() {
|
export function UsersList() {
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
|
useApiFilter();
|
||||||
|
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, error, refetch } = useQuery(['user'], () => get(`/users`), {
|
const { data, isLoading, error, refetch } = useQuery(
|
||||||
enabled: !!user,
|
['user', filter, page, pageSize],
|
||||||
});
|
() =>
|
||||||
|
get(`/users`, {
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
enabled: !!user,
|
||||||
|
},
|
||||||
|
);
|
||||||
const { showToast } = useToasts();
|
const { showToast } = useToasts();
|
||||||
const hasData = data && data.length !== 0;
|
const hasData = data && data.length !== 0;
|
||||||
|
|
||||||
@ -33,8 +46,17 @@ export function UsersList() {
|
|||||||
<PageHeader title={formatMessage(labels.users)}>
|
<PageHeader title={formatMessage(labels.users)}>
|
||||||
<UserAddButton onSave={handleSave} />
|
<UserAddButton onSave={handleSave} />
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
{hasData && <UsersTable data={data} onDelete={handleDelete} />}
|
{(hasData || filter) && (
|
||||||
{!hasData && (
|
<UsersTable
|
||||||
|
data={data}
|
||||||
|
onDelete={handleDelete}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{!hasData && !filter && (
|
||||||
<EmptyPlaceholder message={formatMessage(messages.noUsers)}>
|
<EmptyPlaceholder message={formatMessage(messages.noUsers)}>
|
||||||
<UserAddButton onSave={handleSave} />
|
<UserAddButton onSave={handleSave} />
|
||||||
</EmptyPlaceholder>
|
</EmptyPlaceholder>
|
||||||
|
@ -8,7 +8,14 @@ import useMessages from 'hooks/useMessages';
|
|||||||
import SettingsTable from 'components/common/SettingsTable';
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
import useLocale from 'hooks/useLocale';
|
import useLocale from 'hooks/useLocale';
|
||||||
|
|
||||||
export function UsersTable({ data = [], onDelete }) {
|
export function UsersTable({
|
||||||
|
data = { data: [] },
|
||||||
|
onDelete,
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
}) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { dateLocale } = useLocale();
|
const { dateLocale } = useLocale();
|
||||||
@ -36,7 +43,17 @@ export function UsersTable({ data = [], onDelete }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsTable data={data} columns={columns} cellRender={cellRender}>
|
<SettingsTable
|
||||||
|
data={data}
|
||||||
|
columns={columns}
|
||||||
|
cellRender={cellRender}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
{(row, keys, rowIndex) => {
|
{(row, keys, rowIndex) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
@ -1,25 +1,34 @@
|
|||||||
import { Button, Icon, Text, Modal, ModalTrigger, useToasts, Icons } from 'react-basics';
|
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
|
||||||
import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm';
|
import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm';
|
||||||
import WebsitesTable from 'components/pages/settings/websites/WebsitesTable';
|
import WebsitesTable from 'components/pages/settings/websites/WebsitesTable';
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import useUser from 'hooks/useUser';
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
import { ROLES } from 'lib/constants';
|
import { ROLES } from 'lib/constants';
|
||||||
|
import { Button, Icon, Icons, Modal, ModalTrigger, Text, useToasts } from 'react-basics';
|
||||||
|
|
||||||
export function WebsitesList() {
|
export function WebsitesList({ showTeam, showHeader = true, includeTeams, onlyTeams, fetch }) {
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
|
||||||
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
|
useApiFilter();
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, error, refetch } = useQuery(
|
const { data, isLoading, error, refetch } = useQuery(
|
||||||
['websites', user?.id],
|
['websites', fetch, user?.id, filter, page, pageSize, includeTeams, onlyTeams],
|
||||||
() => get(`/users/${user?.id}/websites`),
|
() =>
|
||||||
|
get(`/users/${user?.id}/websites`, {
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
includeTeams,
|
||||||
|
onlyTeams,
|
||||||
|
}),
|
||||||
{ enabled: !!user },
|
{ enabled: !!user },
|
||||||
);
|
);
|
||||||
const { showToast } = useToasts();
|
const { showToast } = useToasts();
|
||||||
const hasData = data && data.length !== 0;
|
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
await refetch();
|
await refetch();
|
||||||
@ -46,13 +55,15 @@ export function WebsitesList() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Page loading={isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
<PageHeader title={formatMessage(labels.websites)}>{addButton}</PageHeader>
|
{showHeader && <PageHeader title={formatMessage(labels.websites)}>{addButton}</PageHeader>}
|
||||||
{hasData && <WebsitesTable data={data} />}
|
<WebsitesTable
|
||||||
{!hasData && (
|
data={data}
|
||||||
<EmptyPlaceholder message={formatMessage(messages.noWebsitesConfigured)}>
|
showTeam={showTeam}
|
||||||
{addButton}
|
onFilterChange={handleFilterChange}
|
||||||
</EmptyPlaceholder>
|
onPageChange={handlePageChange}
|
||||||
)}
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,46 +1,88 @@
|
|||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { Button, Text, Icon, Icons } from 'react-basics';
|
import { Button, Text, Icon, Icons } from 'react-basics';
|
||||||
import SettingsTable from 'components/common/SettingsTable';
|
import SettingsTable from 'components/common/SettingsTable';
|
||||||
import useMessages from 'hooks/useMessages';
|
import useMessages from 'hooks/useMessages';
|
||||||
import useConfig from 'hooks/useConfig';
|
import useConfig from 'hooks/useConfig';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
export function WebsitesTable({ data = [] }) {
|
export function WebsitesTable({
|
||||||
const { formatMessage, labels } = useMessages();
|
data = [],
|
||||||
|
filterValue,
|
||||||
|
onFilterChange,
|
||||||
|
onPageChange,
|
||||||
|
onPageSizeChange,
|
||||||
|
showTeam,
|
||||||
|
}) {
|
||||||
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { openExternal } = useConfig();
|
const { openExternal } = useConfig();
|
||||||
|
const { user } = useUser();
|
||||||
|
|
||||||
|
const showTable = data && (filterValue || data?.data.length !== 0);
|
||||||
|
|
||||||
|
const teamColumns = [
|
||||||
|
{ name: 'teamName', label: formatMessage(labels.teamName) },
|
||||||
|
{ name: 'owner', label: formatMessage(labels.owner) },
|
||||||
|
];
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{ name: 'name', label: formatMessage(labels.name) },
|
{ name: 'name', label: formatMessage(labels.name) },
|
||||||
{ name: 'domain', label: formatMessage(labels.domain) },
|
{ name: 'domain', label: formatMessage(labels.domain) },
|
||||||
|
...(showTeam ? teamColumns : []),
|
||||||
{ name: 'action', label: ' ' },
|
{ name: 'action', label: ' ' },
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsTable columns={columns} data={data}>
|
<>
|
||||||
{row => {
|
{showTable && (
|
||||||
const { id } = row;
|
<SettingsTable
|
||||||
|
columns={columns}
|
||||||
|
data={data}
|
||||||
|
showSearch={true}
|
||||||
|
showPaging={true}
|
||||||
|
onFilterChange={onFilterChange}
|
||||||
|
onPageChange={onPageChange}
|
||||||
|
onPageSizeChange={onPageSizeChange}
|
||||||
|
filterValue={filterValue}
|
||||||
|
>
|
||||||
|
{row => {
|
||||||
|
const {
|
||||||
|
id,
|
||||||
|
teamWebsite,
|
||||||
|
user: { username, id: ownerId },
|
||||||
|
} = row;
|
||||||
|
if (showTeam) {
|
||||||
|
row.teamName = teamWebsite[0]?.team.name;
|
||||||
|
row.owner = username;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Link href={`/settings/websites/${id}`}>
|
{(!showTeam || ownerId === user.id) && (
|
||||||
<Button>
|
<Link href={`/settings/websites/${id}`}>
|
||||||
<Icon>
|
<Button>
|
||||||
<Icons.Edit />
|
<Icon>
|
||||||
</Icon>
|
<Icons.Edit />
|
||||||
<Text>{formatMessage(labels.edit)}</Text>
|
</Icon>
|
||||||
</Button>
|
<Text>{formatMessage(labels.edit)}</Text>
|
||||||
</Link>
|
</Button>
|
||||||
<Link href={`/websites/${id}`} target={openExternal ? '_blank' : null}>
|
</Link>
|
||||||
<Button>
|
)}
|
||||||
<Icon>
|
<Link href={`/websites/${id}`} target={openExternal ? '_blank' : null}>
|
||||||
<Icons.External />
|
<Button>
|
||||||
</Icon>
|
<Icon>
|
||||||
<Text>{formatMessage(labels.view)}</Text>
|
<Icons.External />
|
||||||
</Button>
|
</Icon>
|
||||||
</Link>
|
<Text>{formatMessage(labels.view)}</Text>
|
||||||
</>
|
</Button>
|
||||||
);
|
</Link>
|
||||||
}}
|
</>
|
||||||
</SettingsTable>
|
);
|
||||||
|
}}
|
||||||
|
</SettingsTable>
|
||||||
|
)}
|
||||||
|
{!showTable && <EmptyPlaceholder message={formatMessage(messages.noDataAvailable)} />}
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,25 @@
|
|||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import Link from 'next/link';
|
|
||||||
import { Button, Icon, Icons, Text, Flexbox } from 'react-basics';
|
|
||||||
import { useMessages, useReports } from 'hooks';
|
|
||||||
import ReportsTable from 'components/pages/reports/ReportsTable';
|
import ReportsTable from 'components/pages/reports/ReportsTable';
|
||||||
|
import { useMessages, useWebsiteReports } from 'hooks';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import { Button, Flexbox, Icon, Icons, Text } from 'react-basics';
|
||||||
import WebsiteHeader from './WebsiteHeader';
|
import WebsiteHeader from './WebsiteHeader';
|
||||||
|
|
||||||
export function WebsiteReportsPage({ websiteId }) {
|
export function WebsiteReportsPage({ websiteId }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { reports, error, isLoading, deleteReport } = useReports(websiteId);
|
const {
|
||||||
|
reports,
|
||||||
|
error,
|
||||||
|
isLoading,
|
||||||
|
deleteReport,
|
||||||
|
filter,
|
||||||
|
handleFilterChange,
|
||||||
|
handlePageChange,
|
||||||
|
handlePageSizeChange,
|
||||||
|
} = useWebsiteReports(websiteId);
|
||||||
|
|
||||||
|
const hasData = (reports && reports.data.length !== 0) || filter;
|
||||||
|
|
||||||
const handleDelete = async id => {
|
const handleDelete = async id => {
|
||||||
await deleteReport(id);
|
await deleteReport(id);
|
||||||
@ -26,7 +38,17 @@ export function WebsiteReportsPage({ websiteId }) {
|
|||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
</Flexbox>
|
</Flexbox>
|
||||||
<ReportsTable data={reports} onDelete={handleDelete} />
|
{hasData && (
|
||||||
|
<ReportsTable
|
||||||
|
data={reports}
|
||||||
|
onDelete={handleDelete}
|
||||||
|
onFilterChange={handleFilterChange}
|
||||||
|
onPageChange={handlePageChange}
|
||||||
|
onPageSizeChange={handlePageSizeChange}
|
||||||
|
filterValue={filter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{!hasData && <EmptyPlaceholder message={formatMessage(messages.noDataAvailable)} />}
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
69
components/pages/websites/WebsitesPage.js
Normal file
69
components/pages/websites/WebsitesPage.js
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import Page from 'components/layout/Page';
|
||||||
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
|
import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm';
|
||||||
|
import WebsiteList from 'components/pages/settings/websites/WebsitesList';
|
||||||
|
import { useMessages } from 'hooks';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
import useConfig from 'hooks/useConfig';
|
||||||
|
import { ROLES } from 'lib/constants';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import {
|
||||||
|
Button,
|
||||||
|
Icon,
|
||||||
|
Icons,
|
||||||
|
Item,
|
||||||
|
Modal,
|
||||||
|
ModalTrigger,
|
||||||
|
Tabs,
|
||||||
|
Text,
|
||||||
|
useToasts,
|
||||||
|
} from 'react-basics';
|
||||||
|
|
||||||
|
export function WebsitesPage() {
|
||||||
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
|
const [tab, setTab] = useState('my-websites');
|
||||||
|
const [fetch, setFetch] = useState(1);
|
||||||
|
const { user } = useUser();
|
||||||
|
const { cloudMode } = useConfig();
|
||||||
|
const { showToast } = useToasts();
|
||||||
|
|
||||||
|
const handleSave = async () => {
|
||||||
|
setFetch(fetch + 1);
|
||||||
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
||||||
|
};
|
||||||
|
|
||||||
|
const addButton = (
|
||||||
|
<>
|
||||||
|
{user.role !== ROLES.viewOnly && (
|
||||||
|
<ModalTrigger>
|
||||||
|
<Button variant="primary">
|
||||||
|
<Icon>
|
||||||
|
<Icons.Plus />
|
||||||
|
</Icon>
|
||||||
|
<Text>{formatMessage(labels.addWebsite)}</Text>
|
||||||
|
</Button>
|
||||||
|
<Modal title={formatMessage(labels.addWebsite)}>
|
||||||
|
{close => <WebsiteAddForm onSave={handleSave} onClose={close} />}
|
||||||
|
</Modal>
|
||||||
|
</ModalTrigger>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Page>
|
||||||
|
<PageHeader title={formatMessage(labels.websites)}>{!cloudMode && addButton}</PageHeader>
|
||||||
|
<Tabs selectedKey={tab} onSelect={setTab} style={{ marginBottom: 30 }}>
|
||||||
|
<Item key="my-websites">{formatMessage(labels.myWebsites)}</Item>
|
||||||
|
<Item key="team-webaites">{formatMessage(labels.teamWebsites)}</Item>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
{tab === 'my-websites' && <WebsiteList showHeader={false} fetch={fetch} />}
|
||||||
|
{tab === 'team-webaites' && (
|
||||||
|
<WebsiteList showHeader={false} fetch={fetch} showTeam={true} onlyTeams={true} />
|
||||||
|
)}
|
||||||
|
</Page>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default WebsitesPage;
|
@ -0,0 +1,50 @@
|
|||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `event_data_website_id_created_at_idx` ON `event_data`(`website_id`, `created_at`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `event_data_website_id_created_at_event_key_idx` ON `event_data`(`website_id`, `created_at`, `event_key`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_idx` ON `session`(`website_id`, `created_at`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_hostname_idx` ON `session`(`website_id`, `created_at`, `hostname`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_browser_idx` ON `session`(`website_id`, `created_at`, `browser`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_os_idx` ON `session`(`website_id`, `created_at`, `os`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_device_idx` ON `session`(`website_id`, `created_at`, `device`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_screen_idx` ON `session`(`website_id`, `created_at`, `screen`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_language_idx` ON `session`(`website_id`, `created_at`, `language`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_country_idx` ON `session`(`website_id`, `created_at`, `country`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_subdivision1_idx` ON `session`(`website_id`, `created_at`, `subdivision1`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `session_website_id_created_at_city_idx` ON `session`(`website_id`, `created_at`, `city`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `website_event_website_id_created_at_url_path_idx` ON `website_event`(`website_id`, `created_at`, `url_path`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `website_event_website_id_created_at_url_query_idx` ON `website_event`(`website_id`, `created_at`, `url_query`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `website_event_website_id_created_at_referrer_domain_idx` ON `website_event`(`website_id`, `created_at`, `referrer_domain`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `website_event_website_id_created_at_page_title_idx` ON `website_event`(`website_id`, `created_at`, `page_title`);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX `website_event_website_id_created_at_event_name_idx` ON `website_event`(`website_id`, `created_at`, `event_name`);
|
@ -44,6 +44,16 @@ model Session {
|
|||||||
|
|
||||||
@@index([createdAt])
|
@@index([createdAt])
|
||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, hostname])
|
||||||
|
@@index([websiteId, createdAt, browser])
|
||||||
|
@@index([websiteId, createdAt, os])
|
||||||
|
@@index([websiteId, createdAt, device])
|
||||||
|
@@index([websiteId, createdAt, screen])
|
||||||
|
@@index([websiteId, createdAt, language])
|
||||||
|
@@index([websiteId, createdAt, country])
|
||||||
|
@@index([websiteId, createdAt, subdivision1])
|
||||||
|
@@index([websiteId, createdAt, city])
|
||||||
@@map("session")
|
@@map("session")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +101,11 @@ model WebsiteEvent {
|
|||||||
@@index([sessionId])
|
@@index([sessionId])
|
||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
@@index([websiteId, createdAt])
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, urlPath])
|
||||||
|
@@index([websiteId, createdAt, urlQuery])
|
||||||
|
@@index([websiteId, createdAt, referrerDomain])
|
||||||
|
@@index([websiteId, createdAt, pageTitle])
|
||||||
|
@@index([websiteId, createdAt, eventName])
|
||||||
@@index([websiteId, sessionId, createdAt])
|
@@index([websiteId, sessionId, createdAt])
|
||||||
@@map("website_event")
|
@@map("website_event")
|
||||||
}
|
}
|
||||||
@ -113,6 +128,8 @@ model EventData {
|
|||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
@@index([websiteEventId])
|
@@index([websiteEventId])
|
||||||
@@index([websiteId, websiteEventId, createdAt])
|
@@index([websiteId, websiteEventId, createdAt])
|
||||||
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, eventKey])
|
||||||
@@map("event_data")
|
@@map("event_data")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "event_data_website_id_created_at_idx" ON "event_data"("website_id", "created_at");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "event_data_website_id_created_at_event_key_idx" ON "event_data"("website_id", "created_at", "event_key");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_idx" ON "session"("website_id", "created_at");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_hostname_idx" ON "session"("website_id", "created_at", "hostname");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_browser_idx" ON "session"("website_id", "created_at", "browser");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_os_idx" ON "session"("website_id", "created_at", "os");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_device_idx" ON "session"("website_id", "created_at", "device");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_screen_idx" ON "session"("website_id", "created_at", "screen");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_language_idx" ON "session"("website_id", "created_at", "language");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_country_idx" ON "session"("website_id", "created_at", "country");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_subdivision1_idx" ON "session"("website_id", "created_at", "subdivision1");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "session_website_id_created_at_city_idx" ON "session"("website_id", "created_at", "city");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "website_event_website_id_created_at_url_path_idx" ON "website_event"("website_id", "created_at", "url_path");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "website_event_website_id_created_at_url_query_idx" ON "website_event"("website_id", "created_at", "url_query");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "website_event_website_id_created_at_referrer_domain_idx" ON "website_event"("website_id", "created_at", "referrer_domain");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "website_event_website_id_created_at_page_title_idx" ON "website_event"("website_id", "created_at", "page_title");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "website_event_website_id_created_at_event_name_idx" ON "website_event"("website_id", "created_at", "event_name");
|
@ -44,6 +44,16 @@ model Session {
|
|||||||
|
|
||||||
@@index([createdAt])
|
@@index([createdAt])
|
||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, hostname])
|
||||||
|
@@index([websiteId, createdAt, browser])
|
||||||
|
@@index([websiteId, createdAt, os])
|
||||||
|
@@index([websiteId, createdAt, device])
|
||||||
|
@@index([websiteId, createdAt, screen])
|
||||||
|
@@index([websiteId, createdAt, language])
|
||||||
|
@@index([websiteId, createdAt, country])
|
||||||
|
@@index([websiteId, createdAt, subdivision1])
|
||||||
|
@@index([websiteId, createdAt, city])
|
||||||
@@map("session")
|
@@map("session")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +101,11 @@ model WebsiteEvent {
|
|||||||
@@index([sessionId])
|
@@index([sessionId])
|
||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
@@index([websiteId, createdAt])
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, urlPath])
|
||||||
|
@@index([websiteId, createdAt, urlQuery])
|
||||||
|
@@index([websiteId, createdAt, referrerDomain])
|
||||||
|
@@index([websiteId, createdAt, pageTitle])
|
||||||
|
@@index([websiteId, createdAt, eventName])
|
||||||
@@index([websiteId, sessionId, createdAt])
|
@@index([websiteId, sessionId, createdAt])
|
||||||
@@map("website_event")
|
@@map("website_event")
|
||||||
}
|
}
|
||||||
@ -112,6 +127,8 @@ model EventData {
|
|||||||
@@index([createdAt])
|
@@index([createdAt])
|
||||||
@@index([websiteId])
|
@@index([websiteId])
|
||||||
@@index([websiteEventId])
|
@@index([websiteEventId])
|
||||||
|
@@index([websiteId, createdAt])
|
||||||
|
@@index([websiteId, createdAt, eventKey])
|
||||||
@@map("event_data")
|
@@map("event_data")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ export * from './useDocumentClick';
|
|||||||
export * from './useEscapeKey';
|
export * from './useEscapeKey';
|
||||||
export * from './useFilters';
|
export * from './useFilters';
|
||||||
export * from './useForceUpdate';
|
export * from './useForceUpdate';
|
||||||
|
export * from './useFormat';
|
||||||
export * from './useLanguageNames';
|
export * from './useLanguageNames';
|
||||||
export * from './useLocale';
|
export * from './useLocale';
|
||||||
export * from './useMessages';
|
export * from './useMessages';
|
||||||
@ -19,3 +20,4 @@ export * from './useTheme';
|
|||||||
export * from './useTimezone';
|
export * from './useTimezone';
|
||||||
export * from './useUser';
|
export * from './useUser';
|
||||||
export * from './useWebsite';
|
export * from './useWebsite';
|
||||||
|
export * from './useWebsiteReports';
|
||||||
|
28
hooks/useApiFilter.ts
Normal file
28
hooks/useApiFilter.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
export function useApiFilter() {
|
||||||
|
const [filter, setFilter] = useState();
|
||||||
|
const [filterType, setFilterType] = useState('All');
|
||||||
|
const [page, setPage] = useState(1);
|
||||||
|
const [pageSize, setPageSize] = useState(10);
|
||||||
|
|
||||||
|
const handleFilterChange = value => setFilter(value);
|
||||||
|
const handlePageChange = value => setPage(value);
|
||||||
|
const handlePageSizeChange = value => setPageSize(value);
|
||||||
|
|
||||||
|
return {
|
||||||
|
filter,
|
||||||
|
setFilter,
|
||||||
|
filterType,
|
||||||
|
setFilterType,
|
||||||
|
page,
|
||||||
|
setPage,
|
||||||
|
pageSize,
|
||||||
|
setPageSize,
|
||||||
|
handleFilterChange,
|
||||||
|
handlePageChange,
|
||||||
|
handlePageSizeChange,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default useApiFilter;
|
@ -1,33 +1,47 @@
|
|||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
|
import { OPERATORS } from 'lib/constants';
|
||||||
|
|
||||||
export function useFilters() {
|
export function useFilters() {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
const filters = {
|
const filterLabels = {
|
||||||
eq: formatMessage(labels.equals),
|
[OPERATORS.equals]: formatMessage(labels.is),
|
||||||
neq: formatMessage(labels.doesNotEqual),
|
[OPERATORS.notEquals]: formatMessage(labels.isNot),
|
||||||
c: formatMessage(labels.contains),
|
[OPERATORS.set]: formatMessage(labels.isSet),
|
||||||
dnc: formatMessage(labels.doesNotContain),
|
[OPERATORS.notSet]: formatMessage(labels.isNotSet),
|
||||||
t: formatMessage(labels.true),
|
[OPERATORS.contains]: formatMessage(labels.contains),
|
||||||
f: formatMessage(labels.false),
|
[OPERATORS.doesNotContain]: formatMessage(labels.doesNotContain),
|
||||||
gt: formatMessage(labels.greaterThan),
|
[OPERATORS.true]: formatMessage(labels.true),
|
||||||
lt: formatMessage(labels.lessThan),
|
[OPERATORS.false]: formatMessage(labels.false),
|
||||||
gte: formatMessage(labels.greaterThanEquals),
|
[OPERATORS.greaterThan]: formatMessage(labels.greaterThan),
|
||||||
lte: formatMessage(labels.lessThanEquals),
|
[OPERATORS.lessThan]: formatMessage(labels.lessThan),
|
||||||
be: formatMessage(labels.before),
|
[OPERATORS.greaterThanEquals]: formatMessage(labels.greaterThanEquals),
|
||||||
af: formatMessage(labels.after),
|
[OPERATORS.lessThanEquals]: formatMessage(labels.lessThanEquals),
|
||||||
|
[OPERATORS.before]: formatMessage(labels.before),
|
||||||
|
[OPERATORS.after]: formatMessage(labels.after),
|
||||||
};
|
};
|
||||||
|
|
||||||
const types = {
|
const typeFilters = {
|
||||||
string: ['eq', 'neq'],
|
string: [OPERATORS.equals, OPERATORS.notEquals],
|
||||||
array: ['c', 'dnc'],
|
array: [OPERATORS.contains, OPERATORS.doesNotContain],
|
||||||
boolean: ['t', 'f'],
|
boolean: [OPERATORS.true, OPERATORS.false],
|
||||||
number: ['eq', 'neq', 'gt', 'lt', 'gte', 'lte'],
|
number: [
|
||||||
date: ['be', 'af'],
|
OPERATORS.equals,
|
||||||
uuid: ['eq'],
|
OPERATORS.notEquals,
|
||||||
|
OPERATORS.greaterThan,
|
||||||
|
OPERATORS.lessThan,
|
||||||
|
OPERATORS.greaterThanEquals,
|
||||||
|
OPERATORS.lessThanEquals,
|
||||||
|
],
|
||||||
|
date: [OPERATORS.before, OPERATORS.after],
|
||||||
|
uuid: [OPERATORS.equals],
|
||||||
};
|
};
|
||||||
|
|
||||||
return { filters, types };
|
const getFilters = type => {
|
||||||
|
return typeFilters[type]?.map(key => ({ type, value: key, label: filterLabels[key] })) ?? [];
|
||||||
|
};
|
||||||
|
|
||||||
|
return { getFilters, filterLabels, typeFilters };
|
||||||
}
|
}
|
||||||
|
|
||||||
export default useFilters;
|
export default useFilters;
|
||||||
|
39
hooks/useFormat.js
Normal file
39
hooks/useFormat.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import useMessages from './useMessages';
|
||||||
|
import { BROWSERS } from 'lib/constants';
|
||||||
|
import useLocale from './useLocale';
|
||||||
|
import useCountryNames from './useCountryNames';
|
||||||
|
|
||||||
|
export function useFormat() {
|
||||||
|
const { formatMessage, labels } = useMessages();
|
||||||
|
const { locale } = useLocale();
|
||||||
|
const countryNames = useCountryNames(locale);
|
||||||
|
|
||||||
|
const formatBrowser = value => {
|
||||||
|
return BROWSERS[value] || value;
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatCountry = value => {
|
||||||
|
return countryNames[value] || value;
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatDevice = value => {
|
||||||
|
return formatMessage(labels[value] || labels.unknown);
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatValue = (value, type) => {
|
||||||
|
switch (type) {
|
||||||
|
case 'browser':
|
||||||
|
return formatBrowser(value);
|
||||||
|
case 'country':
|
||||||
|
return formatCountry(value);
|
||||||
|
case 'device':
|
||||||
|
return formatDevice(value);
|
||||||
|
default:
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return { formatBrowser, formatCountry, formatDevice, formatValue };
|
||||||
|
}
|
||||||
|
|
||||||
|
export default useFormat;
|
@ -2,13 +2,17 @@ import { useIntl, FormattedMessage } from 'react-intl';
|
|||||||
import { messages, labels } from 'components/messages';
|
import { messages, labels } from 'components/messages';
|
||||||
|
|
||||||
export function useMessages() {
|
export function useMessages() {
|
||||||
const { formatMessage } = useIntl();
|
const intl = useIntl();
|
||||||
|
|
||||||
function getMessage(id) {
|
const getMessage = id => {
|
||||||
const message = Object.values(messages).find(value => value.id === id);
|
const message = Object.values(messages).find(value => value.id === id);
|
||||||
|
|
||||||
return message ? formatMessage(message) : id;
|
return message ? formatMessage(message) : id;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
const formatMessage = (descriptor, values, opts) => {
|
||||||
|
return descriptor ? intl.formatMessage(descriptor, values, opts) : null;
|
||||||
|
};
|
||||||
|
|
||||||
return { formatMessage, FormattedMessage, messages, labels, getMessage };
|
return { formatMessage, FormattedMessage, messages, labels, getMessage };
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { produce } from 'immer';
|
import { produce } from 'immer';
|
||||||
import { useCallback, useEffect, useState } from 'react';
|
import { useCallback, useEffect, useState } from 'react';
|
||||||
|
import { useTimezone } from './useTimezone';
|
||||||
import useApi from './useApi';
|
import useApi from './useApi';
|
||||||
|
|
||||||
const baseParameters = {
|
const baseParameters = {
|
||||||
@ -12,6 +13,7 @@ export function useReport(reportId, defaultParameters) {
|
|||||||
const [report, setReport] = useState(null);
|
const [report, setReport] = useState(null);
|
||||||
const [isRunning, setIsRunning] = useState(false);
|
const [isRunning, setIsRunning] = useState(false);
|
||||||
const { get, post } = useApi();
|
const { get, post } = useApi();
|
||||||
|
const [timezone] = useTimezone();
|
||||||
|
|
||||||
const loadReport = async id => {
|
const loadReport = async id => {
|
||||||
const data = await get(`/reports/${id}`);
|
const data = await get(`/reports/${id}`);
|
||||||
@ -33,7 +35,7 @@ export function useReport(reportId, defaultParameters) {
|
|||||||
|
|
||||||
const { type } = report;
|
const { type } = report;
|
||||||
|
|
||||||
const data = await post(`/reports/${type}`, parameters);
|
const data = await post(`/reports/${type}`, { ...parameters, timezone });
|
||||||
|
|
||||||
setReport(
|
setReport(
|
||||||
produce(state => {
|
produce(state => {
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import useApi from './useApi';
|
import useApi from './useApi';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
export function useReports(websiteId) {
|
export function useReports() {
|
||||||
const [modified, setModified] = useState(Date.now());
|
const [modified, setModified] = useState(Date.now());
|
||||||
const { get, useQuery, del, useMutation } = useApi();
|
const { get, useQuery, del, useMutation } = useApi();
|
||||||
const { mutate } = useMutation(reportId => del(`/reports/${reportId}`));
|
const { mutate } = useMutation(reportId => del(`/reports/${reportId}`));
|
||||||
const { data, error, isLoading } = useQuery(['reports:website', { websiteId, modified }], () =>
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
get(`/reports`, { websiteId }),
|
useApiFilter();
|
||||||
|
const { data, error, isLoading } = useQuery(
|
||||||
|
['reports', { modified, filter, page, pageSize }],
|
||||||
|
() => get(`/reports`, { filter, page, pageSize }),
|
||||||
);
|
);
|
||||||
|
|
||||||
const deleteReport = id => {
|
const deleteReport = id => {
|
||||||
@ -17,7 +21,18 @@ export function useReports(websiteId) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return { reports: data, error, isLoading, deleteReport };
|
return {
|
||||||
|
reports: data,
|
||||||
|
error,
|
||||||
|
isLoading,
|
||||||
|
deleteReport,
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
handleFilterChange,
|
||||||
|
handlePageChange,
|
||||||
|
handlePageSizeChange,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default useReports;
|
export default useReports;
|
||||||
|
38
hooks/useWebsiteReports.js
Normal file
38
hooks/useWebsiteReports.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
import useApi from './useApi';
|
||||||
|
import useApiFilter from 'hooks/useApiFilter';
|
||||||
|
|
||||||
|
export function useWebsiteReports(websiteId) {
|
||||||
|
const [modified, setModified] = useState(Date.now());
|
||||||
|
const { get, useQuery, del, useMutation } = useApi();
|
||||||
|
const { mutate } = useMutation(reportId => del(`/reports/${reportId}`));
|
||||||
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
||||||
|
useApiFilter();
|
||||||
|
const { data, error, isLoading } = useQuery(
|
||||||
|
['reports:website', { websiteId, modified, filter, page, pageSize }],
|
||||||
|
() => get(`/websites/${websiteId}/reports`, { websiteId, filter, page, pageSize }),
|
||||||
|
);
|
||||||
|
|
||||||
|
const deleteReport = id => {
|
||||||
|
mutate(id, {
|
||||||
|
onSuccess: () => {
|
||||||
|
setModified(Date.now());
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
reports: data,
|
||||||
|
error,
|
||||||
|
isLoading,
|
||||||
|
deleteReport,
|
||||||
|
filter,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
handleFilterChange,
|
||||||
|
handlePageChange,
|
||||||
|
handlePageSizeChange,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default useWebsiteReports;
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Add website",
|
"label.add-website": "Add website",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "All",
|
"label.all": "All",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Average visit time",
|
"label.average-visit-time": "Average visit time",
|
||||||
"label.back": "Back",
|
"label.back": "Back",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce rate",
|
"label.bounce-rate": "Bounce rate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browsers",
|
"label.browsers": "Browsers",
|
||||||
"label.cancel": "Cancel",
|
"label.cancel": "Cancel",
|
||||||
"label.change-password": "Change password",
|
"label.change-password": "Change password",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Confirm password",
|
"label.confirm-password": "Confirm password",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Countries",
|
"label.countries": "Countries",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Custom range",
|
"label.custom-range": "Custom range",
|
||||||
"label.dashboard": "Dashboard",
|
"label.dashboard": "Dashboard",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Date range",
|
"label.date-range": "Date range",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Default date range",
|
"label.default-date-range": "Default date range",
|
||||||
"label.delete": "Delete",
|
"label.delete": "Delete",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Delete website",
|
"label.delete-website": "Delete website",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Devices",
|
"label.devices": "Devices",
|
||||||
"label.dismiss": "Dismiss",
|
"label.dismiss": "Dismiss",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Edit",
|
"label.edit": "Edit",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event Data",
|
"label.event-data": "Event Data",
|
||||||
"label.events": "Events",
|
"label.events": "Events",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combined",
|
"label.filter-combined": "Combined",
|
||||||
"label.filter-raw": "Raw",
|
"label.filter-raw": "Raw",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Last {x} hours",
|
"label.last-hours": "Last {x} hours",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Login",
|
"label.login": "Login",
|
||||||
"label.logout": "Logout",
|
"label.logout": "Logout",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobile",
|
"label.mobile": "Mobile",
|
||||||
"label.more": "More",
|
"label.more": "More",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Name",
|
"label.name": "Name",
|
||||||
"label.new-password": "New password",
|
"label.new-password": "New password",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operating systems",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Page views",
|
"label.page-views": "Page views",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pages",
|
"label.pages": "Pages",
|
||||||
"label.password": "Password",
|
"label.password": "Password",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Realtime",
|
"label.realtime": "Realtime",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrers",
|
"label.referrers": "Referrers",
|
||||||
"label.refresh": "Refresh",
|
"label.refresh": "Refresh",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Required",
|
"label.required": "Required",
|
||||||
"label.reset": "Reset",
|
"label.reset": "Reset",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Save",
|
"label.save": "Save",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Settings",
|
"label.settings": "Settings",
|
||||||
"label.share-url": "Share URL",
|
"label.share-url": "Share URL",
|
||||||
"label.single-day": "Single day",
|
"label.single-day": "Single day",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "This month",
|
"label.this-month": "This month",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Today",
|
"label.today": "Today",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Tracking code",
|
"label.tracking-code": "Tracking code",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Unique visitors",
|
"label.unique-visitors": "Unique visitors",
|
||||||
"label.unknown": "Unknown",
|
"label.unknown": "Unknown",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Username",
|
"label.username": "Username",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "View details",
|
"label.view-details": "View details",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Websites",
|
"label.websites": "Websites",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
||||||
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Incorrect username/password.",
|
"message.incorrect-username-password": "Incorrect username/password.",
|
||||||
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No data available.",
|
"message.no-data-available": "No data available.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwords do not match.",
|
"message.no-match-password": "Passwords do not match.",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "You do not have any websites configured.",
|
||||||
"message.page-not-found": "Page not found.",
|
"message.page-not-found": "Page not found.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "This is the publicly shared URL for {target}.",
|
"message.share-url": "This is the publicly shared URL for {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}",
|
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "You do not have any websites configured.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "إضافة موقع",
|
"label.add-website": "إضافة موقع",
|
||||||
"label.admin": "مدير",
|
"label.admin": "مدير",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "الكل",
|
"label.all": "الكل",
|
||||||
"label.all-time": "كل الوقت",
|
"label.all-time": "كل الوقت",
|
||||||
"label.analytics": "تحليلات",
|
"label.analytics": "تحليلات",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "متوسط وقت الزيارة",
|
"label.average-visit-time": "متوسط وقت الزيارة",
|
||||||
"label.back": "للخلف",
|
"label.back": "للخلف",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "معدل الارتداد",
|
"label.bounce-rate": "معدل الارتداد",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "المتصفحات",
|
"label.browsers": "المتصفحات",
|
||||||
"label.cancel": "إلغاء",
|
"label.cancel": "إلغاء",
|
||||||
"label.change-password": "تغيير كلمة المرور",
|
"label.change-password": "تغيير كلمة المرور",
|
||||||
"label.cities": "المدن",
|
"label.cities": "المدن",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "مسح الكل",
|
"label.clear-all": "مسح الكل",
|
||||||
"label.confirm": "تأكيد",
|
"label.confirm": "تأكيد",
|
||||||
"label.confirm-password": "تأكيد كلمة المرور",
|
"label.confirm-password": "تأكيد كلمة المرور",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "متابعة",
|
"label.continue": "متابعة",
|
||||||
"label.countries": "الدول",
|
"label.countries": "الدول",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "انشاء مجموعة",
|
"label.create-team": "انشاء مجموعة",
|
||||||
"label.create-user": "انشاء مستخدم",
|
"label.create-user": "انشاء مستخدم",
|
||||||
"label.created": "تم الانشاء",
|
"label.created": "تم الانشاء",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "فترة مخصصة",
|
"label.custom-range": "فترة مخصصة",
|
||||||
"label.dashboard": "الشاشة الرئيسية",
|
"label.dashboard": "الشاشة الرئيسية",
|
||||||
"label.data": "البيانات",
|
"label.data": "البيانات",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "فترة مخصصة",
|
"label.date-range": "فترة مخصصة",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "الفترة المخصصة الافتراضية",
|
"label.default-date-range": "الفترة المخصصة الافتراضية",
|
||||||
"label.delete": "حذف",
|
"label.delete": "حذف",
|
||||||
"label.delete-team": "حذف مجموعة",
|
"label.delete-team": "حذف مجموعة",
|
||||||
"label.delete-user": "جذف مستخدم",
|
"label.delete-user": "جذف مستخدم",
|
||||||
"label.delete-website": "حذف الموقع",
|
"label.delete-website": "حذف الموقع",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "كمبيوتر",
|
"label.desktop": "كمبيوتر",
|
||||||
"label.details": "تفاصيل",
|
"label.details": "تفاصيل",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "الأجهزة",
|
"label.devices": "الأجهزة",
|
||||||
"label.dismiss": "اخفاء",
|
"label.dismiss": "اخفاء",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "النطاق",
|
"label.domain": "النطاق",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "تعديل",
|
"label.edit": "تعديل",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "الأحداث",
|
"label.events": "الأحداث",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "مجمعة",
|
"label.filter-combined": "مجمعة",
|
||||||
"label.filter-raw": "مفصلة",
|
"label.filter-raw": "مفصلة",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "انضمام",
|
"label.join": "انضمام",
|
||||||
"label.join-team": "الانضمام للمجموعة",
|
"label.join-team": "الانضمام للمجموعة",
|
||||||
"label.language": "اللغة",
|
"label.language": "اللغة",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "اخر {x} ساعة/ساعات",
|
"label.last-hours": "اخر {x} ساعة/ساعات",
|
||||||
"label.leave": "مغادرة",
|
"label.leave": "مغادرة",
|
||||||
"label.leave-team": "مغادرة المجموعة",
|
"label.leave-team": "مغادرة المجموعة",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "تسجيل الدخول",
|
"label.login": "تسجيل الدخول",
|
||||||
"label.logout": "تسجيل الخروج",
|
"label.logout": "تسجيل الخروج",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "الأعضاء",
|
"label.members": "الأعضاء",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "جوال",
|
"label.mobile": "جوال",
|
||||||
"label.more": "المزيد",
|
"label.more": "المزيد",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "الإسم",
|
"label.name": "الإسم",
|
||||||
"label.new-password": "كلمة مرور جديدة",
|
"label.new-password": "كلمة مرور جديدة",
|
||||||
"label.none": "غير معرف",
|
"label.none": "غير معرف",
|
||||||
"label.operating-systems": "نظام التشغيل",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "المالك",
|
"label.owner": "المالك",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "مشاهدات الصفحة",
|
"label.page-views": "مشاهدات الصفحة",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "الصفحات",
|
"label.pages": "الصفحات",
|
||||||
"label.password": "كلمة المرور",
|
"label.password": "كلمة المرور",
|
||||||
"label.powered-by": "مشغل بواسطة {name}",
|
"label.powered-by": "مشغل بواسطة {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "متغيرات الرابط",
|
"label.query-parameters": "متغيرات الرابط",
|
||||||
"label.realtime": "الوقت الفعلي",
|
"label.realtime": "الوقت الفعلي",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "التحويلات",
|
"label.referrers": "التحويلات",
|
||||||
"label.refresh": "تحديث",
|
"label.refresh": "تحديث",
|
||||||
"label.regenerate": "اعادة انشاء",
|
"label.regenerate": "اعادة انشاء",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "المناطق",
|
"label.regions": "المناطق",
|
||||||
"label.remove": "إزالة",
|
"label.remove": "إزالة",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "اجباري",
|
"label.required": "اجباري",
|
||||||
"label.reset": "اعادة تعيين",
|
"label.reset": "اعادة تعيين",
|
||||||
"label.reset-website": "اعادة تعيين الإحصائيات",
|
"label.reset-website": "اعادة تعيين الإحصائيات",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "الصلاحية",
|
"label.role": "الصلاحية",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "حفظ",
|
"label.save": "حفظ",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "اعدادات",
|
"label.settings": "اعدادات",
|
||||||
"label.share-url": "مشاركة الرابط",
|
"label.share-url": "مشاركة الرابط",
|
||||||
"label.single-day": "يوم واحد",
|
"label.single-day": "يوم واحد",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "تابلت",
|
"label.tablet": "تابلت",
|
||||||
"label.team": "مجموعة",
|
"label.team": "مجموعة",
|
||||||
"label.team-guest": "زائر للمجموعة",
|
"label.team-guest": "زائر للمجموعة",
|
||||||
"label.team-id": "معرف المجموعة",
|
"label.team-id": "معرف المجموعة",
|
||||||
"label.team-member": "عضو المجموعة",
|
"label.team-member": "عضو المجموعة",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "مدير المجموعة",
|
"label.team-owner": "مدير المجموعة",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "المجموعات",
|
"label.teams": "المجموعات",
|
||||||
"label.theme": "المظهر",
|
"label.theme": "المظهر",
|
||||||
"label.this-month": "الشهر الحالي",
|
"label.this-month": "الشهر الحالي",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "العنوان",
|
"label.title": "العنوان",
|
||||||
"label.today": "اليوم",
|
"label.today": "اليوم",
|
||||||
"label.toggle-charts": "تغيير الإحصائيات",
|
"label.toggle-charts": "تغيير الإحصائيات",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "كود التتبع",
|
"label.tracking-code": "كود التتبع",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "زائرون فريدون",
|
"label.unique-visitors": "زائرون فريدون",
|
||||||
"label.unknown": "غير معروف",
|
"label.unknown": "غير معروف",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "مستخدم",
|
"label.user": "مستخدم",
|
||||||
"label.username": "اسم المستخدم",
|
"label.username": "اسم المستخدم",
|
||||||
"label.users": "المستخدمين",
|
"label.users": "المستخدمين",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "عرض",
|
"label.view": "عرض",
|
||||||
"label.view-details": "عرض التفاصيل",
|
"label.view-details": "عرض التفاصيل",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "المواقع",
|
"label.websites": "المواقع",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "الأمس",
|
"label.yesterday": "الأمس",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} حاليا {x, plural, one {زائر واحد} other {زوار}}",
|
"message.active-users": "{x} حاليا {x, plural, one {زائر واحد} other {زوار}}",
|
||||||
"message.confirm-delete": "هل أنت متأكد من حذف {target}?",
|
"message.confirm-delete": "هل أنت متأكد من حذف {target}?",
|
||||||
"message.confirm-leave": "هل أنت متأكد من مغادرة {target}?",
|
"message.confirm-leave": "هل أنت متأكد من مغادرة {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "اسم المستخدم او كلمة المرور غير صحيحة.",
|
"message.incorrect-username-password": "اسم المستخدم او كلمة المرور غير صحيحة.",
|
||||||
"message.invalid-domain": "النطاق غير صحيح",
|
"message.invalid-domain": "النطاق غير صحيح",
|
||||||
"message.min-password-length": "اقل عدد مسموح به {n} حرف/أحرف",
|
"message.min-password-length": "اقل عدد مسموح به {n} حرف/أحرف",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "لا توجد بيانات متاحة.",
|
"message.no-data-available": "لا توجد بيانات متاحة.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "كلمة المرور غير متطابقة",
|
"message.no-match-password": "كلمة المرور غير متطابقة",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "هذه المجموعة ليس لديه اي موقع.",
|
||||||
"message.no-teams": "لم تقم بإنشاء اي مجموعة.",
|
"message.no-teams": "لم تقم بإنشاء اي مجموعة.",
|
||||||
"message.no-users": "لا يوجد مستخدمين.",
|
"message.no-users": "لا يوجد مستخدمين.",
|
||||||
|
"message.no-websites-configured": "لم تقم بإعداد اي موقع.",
|
||||||
"message.page-not-found": "الصفحة غير موجودة.",
|
"message.page-not-found": "الصفحة غير موجودة.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "سيتم اعادة تعيين كافة الإحصائيات لهذا الموقع، لكن لن يتم تعيير كود التتبع",
|
"message.reset-website-warning": "سيتم اعادة تعيين كافة الإحصائيات لهذا الموقع، لكن لن يتم تعيير كود التتبع",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "هذا الرابط الذي تم مشاركته بشكل عام لـ {target}.",
|
"message.share-url": "هذا الرابط الذي تم مشاركته بشكل عام لـ {target}.",
|
||||||
"message.team-already-member": "أنت عضو في المجموعة",
|
"message.team-already-member": "أنت عضو في المجموعة",
|
||||||
"message.team-not-found": "لم يتم العثور على المجموعة",
|
"message.team-not-found": "لم يتم العثور على المجموعة",
|
||||||
|
"message.team-websites-info": "يمكن مشاهدة الموقع من اي عضو في المجموعة.",
|
||||||
"message.tracking-code": "كود التتبع",
|
"message.tracking-code": "كود التتبع",
|
||||||
"message.user-deleted": "تم حذف المستخدم.",
|
"message.user-deleted": "تم حذف المستخدم.",
|
||||||
"message.visitor-log": "زائر من {country} يستخدم {browser} على {os} {device}",
|
"message.visitor-log": "زائر من {country} يستخدم {browser} على {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "هذه المجموعة ليس لديه اي موقع.",
|
|
||||||
"message.no-websites-configured": "لم تقم بإعداد اي موقع.",
|
|
||||||
"message.team-websites-info": "يمكن مشاهدة الموقع من اي عضو في المجموعة.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Дадаць сайт",
|
"label.add-website": "Дадаць сайт",
|
||||||
"label.admin": "Адміністратар",
|
"label.admin": "Адміністратар",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Усё",
|
"label.all": "Усё",
|
||||||
"label.all-time": "Увесь час",
|
"label.all-time": "Увесь час",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Сярэдняя даўжыня наведвання",
|
"label.average-visit-time": "Сярэдняя даўжыня наведвання",
|
||||||
"label.back": "Назад",
|
"label.back": "Назад",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Паказчык адмоваў",
|
"label.bounce-rate": "Паказчык адмоваў",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Браўзеры",
|
"label.browsers": "Браўзеры",
|
||||||
"label.cancel": "Адмена",
|
"label.cancel": "Адмена",
|
||||||
"label.change-password": "Змяніць пароль",
|
"label.change-password": "Змяніць пароль",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Падцвердзіць пароль",
|
"label.confirm-password": "Падцвердзіць пароль",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Краіны",
|
"label.countries": "Краіны",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Карыстацкі дыяпазон",
|
"label.custom-range": "Карыстацкі дыяпазон",
|
||||||
"label.dashboard": "Інфармацыйная панэль",
|
"label.dashboard": "Інфармацыйная панэль",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Дыяпазон дат",
|
"label.date-range": "Дыяпазон дат",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Дыяпазон дат па змаўчанню",
|
"label.default-date-range": "Дыяпазон дат па змаўчанню",
|
||||||
"label.delete": "Выдаліць",
|
"label.delete": "Выдаліць",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Выдаліць сайт",
|
"label.delete-website": "Выдаліць сайт",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Настольны ПК",
|
"label.desktop": "Настольны ПК",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Прылады",
|
"label.devices": "Прылады",
|
||||||
"label.dismiss": "Адмена",
|
"label.dismiss": "Адмена",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Дамен",
|
"label.domain": "Дамен",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Змяніць",
|
"label.edit": "Змяніць",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Падзеі",
|
"label.events": "Падзеі",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Камбініаваны",
|
"label.filter-combined": "Камбініаваны",
|
||||||
"label.filter-raw": "Сырыя",
|
"label.filter-raw": "Сырыя",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Мова",
|
"label.language": "Мова",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Апошнія {x} гадзіны",
|
"label.last-hours": "Апошнія {x} гадзіны",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Login",
|
"label.login": "Login",
|
||||||
"label.logout": "Выйсці",
|
"label.logout": "Выйсці",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Мабільны",
|
"label.mobile": "Мабільны",
|
||||||
"label.more": "Болей",
|
"label.more": "Болей",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Імя",
|
"label.name": "Імя",
|
||||||
"label.new-password": "Новы пароль",
|
"label.new-password": "Новы пароль",
|
||||||
"label.none": "Няма",
|
"label.none": "Няма",
|
||||||
"label.operating-systems": "Аперацыонныя сістэмы",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Уласнік",
|
"label.owner": "Уласнік",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Прагляды старонкі",
|
"label.page-views": "Прагляды старонкі",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Старонкі",
|
"label.pages": "Старонкі",
|
||||||
"label.password": "Пароль",
|
"label.password": "Пароль",
|
||||||
"label.powered-by": "Зроблена {name}",
|
"label.powered-by": "Зроблена {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "У рэяльным часе",
|
"label.realtime": "У рэяльным часе",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrers",
|
"label.referrers": "Referrers",
|
||||||
"label.refresh": "Аднавіць",
|
"label.refresh": "Аднавіць",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Абавязкова",
|
"label.required": "Абавязкова",
|
||||||
"label.reset": "Скінуць",
|
"label.reset": "Скінуць",
|
||||||
"label.reset-website": "Скінуць статыстыку",
|
"label.reset-website": "Скінуць статыстыку",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Захаваць",
|
"label.save": "Захаваць",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Налады",
|
"label.settings": "Налады",
|
||||||
"label.share-url": "Падзяліцца спасылкай",
|
"label.share-url": "Падзяліцца спасылкай",
|
||||||
"label.single-day": "Адзін дзень",
|
"label.single-day": "Адзін дзень",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Планшэт",
|
"label.tablet": "Планшэт",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Тэма",
|
"label.theme": "Тэма",
|
||||||
"label.this-month": "Гэты месяц",
|
"label.this-month": "Гэты месяц",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Сёння",
|
"label.today": "Сёння",
|
||||||
"label.toggle-charts": "Пераключыць графікі",
|
"label.toggle-charts": "Пераключыць графікі",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Код адсочвання",
|
"label.tracking-code": "Код адсочвання",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Унікальныя наведвальнікі",
|
"label.unique-visitors": "Унікальныя наведвальнікі",
|
||||||
"label.unknown": "Невядома",
|
"label.unknown": "Невядома",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Імя карыстальніка",
|
"label.username": "Імя карыстальніка",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Пабачыць дэталі",
|
"label.view-details": "Пабачыць дэталі",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Сайты",
|
"label.websites": "Сайты",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Учора",
|
"label.yesterday": "Учора",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} тякучых {x, plural, one {наведвальнік} other {наведвальнікаў}}",
|
"message.active-users": "{x} тякучых {x, plural, one {наведвальнік} other {наведвальнікаў}}",
|
||||||
"message.confirm-delete": "Вы дакладна хочаце выдаліць {target}?",
|
"message.confirm-delete": "Вы дакладна хочаце выдаліць {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Некарэктны username/password.",
|
"message.incorrect-username-password": "Некарэктны username/password.",
|
||||||
"message.invalid-domain": "Некарэктны дамен",
|
"message.invalid-domain": "Некарэктны дамен",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Няма дадзеных.",
|
"message.no-data-available": "Няма дадзеных.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Паролі не супадаюць",
|
"message.no-match-password": "Паролі не супадаюць",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Вы не наладзілі ніводнага сайту.",
|
||||||
"message.page-not-found": "Старонка не знойдзена.",
|
"message.page-not-found": "Старонка не знойдзена.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Уся статыстыка для гэтага сайту будзе выдалена, але код адсочвання будзе працягваць працаваць.",
|
"message.reset-website-warning": "Уся статыстыка для гэтага сайту будзе выдалена, але код адсочвання будзе працягваць працаваць.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Гэта публічная спасылка для {target}.",
|
"message.share-url": "Гэта публічная спасылка для {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Код адсочвання",
|
"message.tracking-code": "Код адсочвання",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Наведвальнік з {country} праз {browser} на {os} {device}",
|
"message.visitor-log": "Наведвальнік з {country} праз {browser} на {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Вы не наладзілі ніводнага сайту.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "ওয়েবসাইট যুক্ত করুন",
|
"label.add-website": "ওয়েবসাইট যুক্ত করুন",
|
||||||
"label.admin": "অ্যাডমিন",
|
"label.admin": "অ্যাডমিন",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "সবগুলো",
|
"label.all": "সবগুলো",
|
||||||
"label.all-time": "সব সময়",
|
"label.all-time": "সব সময়",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "গড় পরিদর্শনের সময়",
|
"label.average-visit-time": "গড় পরিদর্শনের সময়",
|
||||||
"label.back": "পেছনে",
|
"label.back": "পেছনে",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "বহিষ্কারের হার",
|
"label.bounce-rate": "বহিষ্কারের হার",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "ব্রাউজার",
|
"label.browsers": "ব্রাউজার",
|
||||||
"label.cancel": "বাতিল",
|
"label.cancel": "বাতিল",
|
||||||
"label.change-password": "পাসওয়ার্ড পরিবর্তন করুন",
|
"label.change-password": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "পাসওয়ার্ড নিশ্চিত করুন",
|
"label.confirm-password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "দেশ",
|
"label.countries": "দেশ",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "কাস্টম রেঞ্জ",
|
"label.custom-range": "কাস্টম রেঞ্জ",
|
||||||
"label.dashboard": "ড্যাশবোর্ড",
|
"label.dashboard": "ড্যাশবোর্ড",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "তারিখের পরিসীমা",
|
"label.date-range": "তারিখের পরিসীমা",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "ডিফল্ট তারিখের পরিসীমা",
|
"label.default-date-range": "ডিফল্ট তারিখের পরিসীমা",
|
||||||
"label.delete": "মুছে ফেলুন",
|
"label.delete": "মুছে ফেলুন",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "ওয়েবসাইট মুছুন",
|
"label.delete-website": "ওয়েবসাইট মুছুন",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "ডেস্কটপ",
|
"label.desktop": "ডেস্কটপ",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "ডিভাইস গুলো",
|
"label.devices": "ডিভাইস গুলো",
|
||||||
"label.dismiss": "বাতিল",
|
"label.dismiss": "বাতিল",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "ডোমেইন",
|
"label.domain": "ডোমেইন",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "সম্পাদনা করুন",
|
"label.edit": "সম্পাদনা করুন",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "ঘটনা",
|
"label.events": "ঘটনা",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "সম্মিলিত",
|
"label.filter-combined": "সম্মিলিত",
|
||||||
"label.filter-raw": "অপরিশোধিত",
|
"label.filter-raw": "অপরিশোধিত",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "ভাষা",
|
"label.language": "ভাষা",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "শেষ {x} ঘন্টা",
|
"label.last-hours": "শেষ {x} ঘন্টা",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "লগিন",
|
"label.login": "লগিন",
|
||||||
"label.logout": "লগ আউট",
|
"label.logout": "লগ আউট",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "মুঠোফোন",
|
"label.mobile": "মুঠোফোন",
|
||||||
"label.more": "আরও",
|
"label.more": "আরও",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "নাম",
|
"label.name": "নাম",
|
||||||
"label.new-password": "নতুন পাসওয়ার্ড",
|
"label.new-password": "নতুন পাসওয়ার্ড",
|
||||||
"label.none": "কিছুই না",
|
"label.none": "কিছুই না",
|
||||||
"label.operating-systems": "অপারেটিং সিস্টেম গুলো",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "মালিক",
|
"label.owner": "মালিক",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "পৃষ্ঠা পরিদর্শন গুলো",
|
"label.page-views": "পৃষ্ঠা পরিদর্শন গুলো",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "পৃষ্ঠাগুলি",
|
"label.pages": "পৃষ্ঠাগুলি",
|
||||||
"label.password": "পাসওয়ার্ড",
|
"label.password": "পাসওয়ার্ড",
|
||||||
"label.powered-by": "{name} দ্বারা চালিত",
|
"label.powered-by": "{name} দ্বারা চালিত",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "সরাসরি",
|
"label.realtime": "সরাসরি",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "রেফারার্স",
|
"label.referrers": "রেফারার্স",
|
||||||
"label.refresh": "রিফ্রেশ",
|
"label.refresh": "রিফ্রেশ",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "প্রয়োজনীয়",
|
"label.required": "প্রয়োজনীয়",
|
||||||
"label.reset": "রিসেট",
|
"label.reset": "রিসেট",
|
||||||
"label.reset-website": "ওয়েবসাইট রিসেট করুন",
|
"label.reset-website": "ওয়েবসাইট রিসেট করুন",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "সংরক্ষণ",
|
"label.save": "সংরক্ষণ",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "সেটিংস",
|
"label.settings": "সেটিংস",
|
||||||
"label.share-url": "ইউআরএল শেয়ার করুন",
|
"label.share-url": "ইউআরএল শেয়ার করুন",
|
||||||
"label.single-day": "একদিন",
|
"label.single-day": "একদিন",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "ট্যাবলেট",
|
"label.tablet": "ট্যাবলেট",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "থিম",
|
"label.theme": "থিম",
|
||||||
"label.this-month": "এই মাস",
|
"label.this-month": "এই মাস",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "আজ",
|
"label.today": "আজ",
|
||||||
"label.toggle-charts": "চার্ট পরিবর্তন করুন",
|
"label.toggle-charts": "চার্ট পরিবর্তন করুন",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "ট্র্যাকিং কোড",
|
"label.tracking-code": "ট্র্যাকিং কোড",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "অনন্য ভিজিটর",
|
"label.unique-visitors": "অনন্য ভিজিটর",
|
||||||
"label.unknown": "অজানা",
|
"label.unknown": "অজানা",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "ব্যবহারকারীর নাম",
|
"label.username": "ব্যবহারকারীর নাম",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "বিস্তারিত দেখুন",
|
"label.view-details": "বিস্তারিত দেখুন",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "সবগুলো ওয়েবসাইট",
|
"label.websites": "সবগুলো ওয়েবসাইট",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} বর্তমান {x, plural, one {visitor} other {visitors}}",
|
"message.active-users": "{x} বর্তমান {x, plural, one {visitor} other {visitors}}",
|
||||||
"message.confirm-delete": "আপনি কি নিশ্চিত যে আপনি {target} মুছতে চান?",
|
"message.confirm-delete": "আপনি কি নিশ্চিত যে আপনি {target} মুছতে চান?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "ভুল ব্যবহারকারীর নাম/পাসওয়ার্ড।",
|
"message.incorrect-username-password": "ভুল ব্যবহারকারীর নাম/পাসওয়ার্ড।",
|
||||||
"message.invalid-domain": "ভুল ডোমেন",
|
"message.invalid-domain": "ভুল ডোমেন",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "কোন তথ্য নেই।",
|
"message.no-data-available": "কোন তথ্য নেই।",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "পাসওয়ার্ড মেলে না",
|
"message.no-match-password": "পাসওয়ার্ড মেলে না",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "কোনও ওয়েবসাইট কনফিগার করা নেই।",
|
||||||
"message.page-not-found": "পৃষ্ঠা খুঁজে পাওয়া যায়নি।",
|
"message.page-not-found": "পৃষ্ঠা খুঁজে পাওয়া যায়নি।",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "এই ওয়েবসাইটের সমস্ত পরিসংখ্যান মুছে ফেলা হবে, তবে আপনার ট্র্যাকিং কোডটি অক্ষত থাকবে।",
|
"message.reset-website-warning": "এই ওয়েবসাইটের সমস্ত পরিসংখ্যান মুছে ফেলা হবে, তবে আপনার ট্র্যাকিং কোডটি অক্ষত থাকবে।",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "এটি {target} এর জন্য প্রকাশ্যে শেয়ার করার ইউআরএল।",
|
"message.share-url": "এটি {target} এর জন্য প্রকাশ্যে শেয়ার করার ইউআরএল।",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "ট্র্যাকিং কোড",
|
"message.tracking-code": "ট্র্যাকিং কোড",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "{country} থেকে একজন ভিসিটর {ব্রাউজার}, ব্যবহার করছেন {os} {device} এর মধ্যে।",
|
"message.visitor-log": "{country} থেকে একজন ভিসিটর {ব্রাউজার}, ব্যবহার করছেন {os} {device} এর মধ্যে।"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "কোনও ওয়েবসাইট কনফিগার করা নেই।",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Afegeix lloc web",
|
"label.add-website": "Afegeix lloc web",
|
||||||
"label.admin": "Administrador",
|
"label.admin": "Administrador",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Tots",
|
"label.all": "Tots",
|
||||||
"label.all-time": "Sempre",
|
"label.all-time": "Sempre",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Temps mitjà de visita",
|
"label.average-visit-time": "Temps mitjà de visita",
|
||||||
"label.back": "Enrere",
|
"label.back": "Enrere",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Percentatge de rebot",
|
"label.bounce-rate": "Percentatge de rebot",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Navegadors",
|
"label.browsers": "Navegadors",
|
||||||
"label.cancel": "Cancel·la",
|
"label.cancel": "Cancel·la",
|
||||||
"label.change-password": "Canvia la contrasenya",
|
"label.change-password": "Canvia la contrasenya",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Confirma la contrasenya",
|
"label.confirm-password": "Confirma la contrasenya",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Països",
|
"label.countries": "Països",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Rang personalitzat",
|
"label.custom-range": "Rang personalitzat",
|
||||||
"label.dashboard": "Panell",
|
"label.dashboard": "Panell",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Interval de dates",
|
"label.date-range": "Interval de dates",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Interval de dates per defecte",
|
"label.default-date-range": "Interval de dates per defecte",
|
||||||
"label.delete": "Esborra",
|
"label.delete": "Esborra",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Esborra el lloc web",
|
"label.delete-website": "Esborra el lloc web",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Escriptori",
|
"label.desktop": "Escriptori",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Dispositius",
|
"label.devices": "Dispositius",
|
||||||
"label.dismiss": "Descarta",
|
"label.dismiss": "Descarta",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domini",
|
"label.domain": "Domini",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Edita",
|
"label.edit": "Edita",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Esdeveniments",
|
"label.events": "Esdeveniments",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combinat",
|
"label.filter-combined": "Combinat",
|
||||||
"label.filter-raw": "En cru",
|
"label.filter-raw": "En cru",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Últimes {x} hores",
|
"label.last-hours": "Últimes {x} hores",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Connecta't",
|
"label.login": "Connecta't",
|
||||||
"label.logout": "Desconnecta't",
|
"label.logout": "Desconnecta't",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mòbil",
|
"label.mobile": "Mòbil",
|
||||||
"label.more": "Més",
|
"label.more": "Més",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nom",
|
"label.name": "Nom",
|
||||||
"label.new-password": "Contrasenya nova",
|
"label.new-password": "Contrasenya nova",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Sistemes operatius",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Propietari",
|
"label.owner": "Propietari",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Pàgines vistes",
|
"label.page-views": "Pàgines vistes",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pàgines",
|
"label.pages": "Pàgines",
|
||||||
"label.password": "Contrasenya",
|
"label.password": "Contrasenya",
|
||||||
"label.powered-by": "Funciona amb {name}",
|
"label.powered-by": "Funciona amb {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Temps real",
|
"label.realtime": "Temps real",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referents",
|
"label.referrers": "Referents",
|
||||||
"label.refresh": "Refresca",
|
"label.refresh": "Refresca",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Obligatori",
|
"label.required": "Obligatori",
|
||||||
"label.reset": "Restableix",
|
"label.reset": "Restableix",
|
||||||
"label.reset-website": "Restableix estadístiques",
|
"label.reset-website": "Restableix estadístiques",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Desa",
|
"label.save": "Desa",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Configuració",
|
"label.settings": "Configuració",
|
||||||
"label.share-url": "Enllaç per compartir",
|
"label.share-url": "Enllaç per compartir",
|
||||||
"label.single-day": "Un sol dia",
|
"label.single-day": "Un sol dia",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tauleta",
|
"label.tablet": "Tauleta",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "Aquest mes",
|
"label.this-month": "Aquest mes",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Avui",
|
"label.today": "Avui",
|
||||||
"label.toggle-charts": "Mostra/amaga gràfics",
|
"label.toggle-charts": "Mostra/amaga gràfics",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Codi de seguiment",
|
"label.tracking-code": "Codi de seguiment",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Visitants únics",
|
"label.unique-visitors": "Visitants únics",
|
||||||
"label.unknown": "Desconegut",
|
"label.unknown": "Desconegut",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Nom d'usuari",
|
"label.username": "Nom d'usuari",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Veure els detalls",
|
"label.view-details": "Veure els detalls",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Llocs web",
|
"label.websites": "Llocs web",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Ahir",
|
"label.yesterday": "Ahir",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {visitant actual} other {visitants actuals}}",
|
"message.active-users": "{x} {x, plural, one {visitant actual} other {visitants actuals}}",
|
||||||
"message.confirm-delete": "Segur que vols esborrar {target}?",
|
"message.confirm-delete": "Segur que vols esborrar {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nom d'usuari o contrasenya incorrectes.",
|
"message.incorrect-username-password": "Nom d'usuari o contrasenya incorrectes.",
|
||||||
"message.invalid-domain": "Domini invàlid",
|
"message.invalid-domain": "Domini invàlid",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No hi ha dades disponibles.",
|
"message.no-data-available": "No hi ha dades disponibles.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Les contrasenyes no coincideixen",
|
"message.no-match-password": "Les contrasenyes no coincideixen",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "No hi ha cap lloc web configurat.",
|
||||||
"message.page-not-found": "No s'ha trobat la pàgina.",
|
"message.page-not-found": "No s'ha trobat la pàgina.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "S'esborraran totes les estadístiques per aquest lloc web, però el codi de seguiment es mantindrà.",
|
"message.reset-website-warning": "S'esborraran totes les estadístiques per aquest lloc web, però el codi de seguiment es mantindrà.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Aquest és l'enllaç públic per compartir de {target}.",
|
"message.share-url": "Aquest és l'enllaç públic per compartir de {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Codi de seguiment",
|
"message.tracking-code": "Codi de seguiment",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitant de {country} usant {browser} a {os} {device}",
|
"message.visitor-log": "Visitant de {country} usant {browser} a {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "No hi ha cap lloc web configurat.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Přidat web",
|
"label.add-website": "Přidat web",
|
||||||
"label.admin": "Administrátor",
|
"label.admin": "Administrátor",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Vše",
|
"label.all": "Vše",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Průměrný čas návštěvy",
|
"label.average-visit-time": "Průměrný čas návštěvy",
|
||||||
"label.back": "Zpět",
|
"label.back": "Zpět",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Okamžité opuštění",
|
"label.bounce-rate": "Okamžité opuštění",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Prohlížeč",
|
"label.browsers": "Prohlížeč",
|
||||||
"label.cancel": "Zrušit",
|
"label.cancel": "Zrušit",
|
||||||
"label.change-password": "Změnit heslo",
|
"label.change-password": "Změnit heslo",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Potvrdit heslo",
|
"label.confirm-password": "Potvrdit heslo",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Země",
|
"label.countries": "Země",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Vlastní rozsah",
|
"label.custom-range": "Vlastní rozsah",
|
||||||
"label.dashboard": "Přehled",
|
"label.dashboard": "Přehled",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Období",
|
"label.date-range": "Období",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Výchozí období",
|
"label.default-date-range": "Výchozí období",
|
||||||
"label.delete": "Smazat",
|
"label.delete": "Smazat",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Smazat web",
|
"label.delete-website": "Smazat web",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Stolní počítač",
|
"label.desktop": "Stolní počítač",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Zařízení",
|
"label.devices": "Zařízení",
|
||||||
"label.dismiss": "Odejít",
|
"label.dismiss": "Odejít",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Doména",
|
"label.domain": "Doména",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Upravit",
|
"label.edit": "Upravit",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Události",
|
"label.events": "Události",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Kombinace",
|
"label.filter-combined": "Kombinace",
|
||||||
"label.filter-raw": "Nezpracované",
|
"label.filter-raw": "Nezpracované",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Posledních {x} hodin",
|
"label.last-hours": "Posledních {x} hodin",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Přihlásit",
|
"label.login": "Přihlásit",
|
||||||
"label.logout": "Odhlásit",
|
"label.logout": "Odhlásit",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobilní telefon",
|
"label.mobile": "Mobilní telefon",
|
||||||
"label.more": "Více",
|
"label.more": "Více",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Jméno",
|
"label.name": "Jméno",
|
||||||
"label.new-password": "Nové heslo",
|
"label.new-password": "Nové heslo",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operační systém",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Zobrazení stránek",
|
"label.page-views": "Zobrazení stránek",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Stránky",
|
"label.pages": "Stránky",
|
||||||
"label.password": "Heslo",
|
"label.password": "Heslo",
|
||||||
"label.powered-by": "Běží na {name}",
|
"label.powered-by": "Běží na {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Aktuálně",
|
"label.realtime": "Aktuálně",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Odkazy",
|
"label.referrers": "Odkazy",
|
||||||
"label.refresh": "Obnovit",
|
"label.refresh": "Obnovit",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Vyžadováno",
|
"label.required": "Vyžadováno",
|
||||||
"label.reset": "Reset",
|
"label.reset": "Reset",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Uložit",
|
"label.save": "Uložit",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Nastavení",
|
"label.settings": "Nastavení",
|
||||||
"label.share-url": "Sdílet URL",
|
"label.share-url": "Sdílet URL",
|
||||||
"label.single-day": "Jeden den",
|
"label.single-day": "Jeden den",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "Tento měsíc",
|
"label.this-month": "Tento měsíc",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Dnes",
|
"label.today": "Dnes",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Sledovací kód",
|
"label.tracking-code": "Sledovací kód",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Jedinečné návštěvy",
|
"label.unique-visitors": "Jedinečné návštěvy",
|
||||||
"label.unknown": "Neznámý",
|
"label.unknown": "Neznámý",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Uživatelské jméno",
|
"label.username": "Uživatelské jméno",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Zobrazit detaily",
|
"label.view-details": "Zobrazit detaily",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Weby",
|
"label.websites": "Weby",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} aktuálně {x, plural, one {návštěvník} other {návštěvníci}}",
|
"message.active-users": "{x} aktuálně {x, plural, one {návštěvník} other {návštěvníci}}",
|
||||||
"message.confirm-delete": "Opravdu smazat {target}?",
|
"message.confirm-delete": "Opravdu smazat {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nesprávné jméno/heslo.",
|
"message.incorrect-username-password": "Nesprávné jméno/heslo.",
|
||||||
"message.invalid-domain": "Neplatná doména",
|
"message.invalid-domain": "Neplatná doména",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Žádná data.",
|
"message.no-data-available": "Žádná data.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Hesla se neschodují",
|
"message.no-match-password": "Hesla se neschodují",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Nemáte nastavený žádný web.",
|
||||||
"message.page-not-found": "Stránka nenalezena.",
|
"message.page-not-found": "Stránka nenalezena.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Toto je sdílené URL pro {target}.",
|
"message.share-url": "Toto je sdílené URL pro {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Sledovací kód",
|
"message.tracking-code": "Sledovací kód",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Návštěvník z {country} s prohlížečem {browser} na {os} {device}",
|
"message.visitor-log": "Návštěvník z {country} s prohlížečem {browser} na {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Nemáte nastavený žádný web.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Tilføj hjemmeside",
|
"label.add-website": "Tilføj hjemmeside",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Alle",
|
"label.all": "Alle",
|
||||||
"label.all-time": "Altid",
|
"label.all-time": "Altid",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Gennemsnitlig besøgstid",
|
"label.average-visit-time": "Gennemsnitlig besøgstid",
|
||||||
"label.back": "Tilbage",
|
"label.back": "Tilbage",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Afvisningsprocent",
|
"label.bounce-rate": "Afvisningsprocent",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browsere",
|
"label.browsers": "Browsere",
|
||||||
"label.cancel": "Afvis",
|
"label.cancel": "Afvis",
|
||||||
"label.change-password": "Skift adgangskode",
|
"label.change-password": "Skift adgangskode",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Godkendt adgangskode",
|
"label.confirm-password": "Godkendt adgangskode",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Lande",
|
"label.countries": "Lande",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Tilpasset interval",
|
"label.custom-range": "Tilpasset interval",
|
||||||
"label.dashboard": "Betjeningspanel",
|
"label.dashboard": "Betjeningspanel",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Datointerval",
|
"label.date-range": "Datointerval",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Standard datointerval",
|
"label.default-date-range": "Standard datointerval",
|
||||||
"label.delete": "Slet",
|
"label.delete": "Slet",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Slet hjemmeside",
|
"label.delete-website": "Slet hjemmeside",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Enheder",
|
"label.devices": "Enheder",
|
||||||
"label.dismiss": "Afvis",
|
"label.dismiss": "Afvis",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domæne",
|
"label.domain": "Domæne",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Rediger",
|
"label.edit": "Rediger",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Hændelser",
|
"label.events": "Hændelser",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Kombineret",
|
"label.filter-combined": "Kombineret",
|
||||||
"label.filter-raw": "Rå",
|
"label.filter-raw": "Rå",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Sprog",
|
"label.language": "Sprog",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Sidste {x} timer",
|
"label.last-hours": "Sidste {x} timer",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Log ind",
|
"label.login": "Log ind",
|
||||||
"label.logout": "Log ud",
|
"label.logout": "Log ud",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobil",
|
"label.mobile": "Mobil",
|
||||||
"label.more": "Mere",
|
"label.more": "Mere",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Navn",
|
"label.name": "Navn",
|
||||||
"label.new-password": "Ny adgangskode",
|
"label.new-password": "Ny adgangskode",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operativsystemer",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Ejer",
|
"label.owner": "Ejer",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Sidevisninger",
|
"label.page-views": "Sidevisninger",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Sider",
|
"label.pages": "Sider",
|
||||||
"label.password": "Adgangskode",
|
"label.password": "Adgangskode",
|
||||||
"label.powered-by": "Drevet af {name}",
|
"label.powered-by": "Drevet af {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Realtid",
|
"label.realtime": "Realtid",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Henvisninger",
|
"label.referrers": "Henvisninger",
|
||||||
"label.refresh": "Opdater",
|
"label.refresh": "Opdater",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Påkrævet",
|
"label.required": "Påkrævet",
|
||||||
"label.reset": "Nulstil",
|
"label.reset": "Nulstil",
|
||||||
"label.reset-website": "Nulstil statistikker",
|
"label.reset-website": "Nulstil statistikker",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Gem",
|
"label.save": "Gem",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Indstillinger",
|
"label.settings": "Indstillinger",
|
||||||
"label.share-url": "Del URL",
|
"label.share-url": "Del URL",
|
||||||
"label.single-day": "Enkelt dag",
|
"label.single-day": "Enkelt dag",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Denne måned",
|
"label.this-month": "Denne måned",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Idag",
|
"label.today": "Idag",
|
||||||
"label.toggle-charts": "Ændre graf",
|
"label.toggle-charts": "Ændre graf",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Sporingskode",
|
"label.tracking-code": "Sporingskode",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Unikke besøgende",
|
"label.unique-visitors": "Unikke besøgende",
|
||||||
"label.unknown": "Ukendt",
|
"label.unknown": "Ukendt",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Brugernavn",
|
"label.username": "Brugernavn",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Vis detajler",
|
"label.view-details": "Vis detajler",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Hjemmesider",
|
"label.websites": "Hjemmesider",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} nuværende {x, plural, one {bruger} other {brugere}}",
|
"message.active-users": "{x} nuværende {x, plural, one {bruger} other {brugere}}",
|
||||||
"message.confirm-delete": "Er du sikker på at du vil slette {target}?",
|
"message.confirm-delete": "Er du sikker på at du vil slette {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Ugyldigt brugernavn/adgangskode.",
|
"message.incorrect-username-password": "Ugyldigt brugernavn/adgangskode.",
|
||||||
"message.invalid-domain": "Ugyldigt domæne",
|
"message.invalid-domain": "Ugyldigt domæne",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Ingen data tilgængelig.",
|
"message.no-data-available": "Ingen data tilgængelig.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Adgangskoderne matcher ikke",
|
"message.no-match-password": "Adgangskoderne matcher ikke",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Du har ikke konfigureret nogen hjemmesider.",
|
||||||
"message.page-not-found": "Side ikke fundet.",
|
"message.page-not-found": "Side ikke fundet.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Alle statistikker for denne hjemmeside ville blive slettet, men sporingskode ville forblive intakt.",
|
"message.reset-website-warning": "Alle statistikker for denne hjemmeside ville blive slettet, men sporingskode ville forblive intakt.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Dette er den offentlige delings-URL til {target}.",
|
"message.share-url": "Dette er den offentlige delings-URL til {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Sporingskode",
|
"message.tracking-code": "Sporingskode",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Besøgende fra {country} bruger {browser} på {os} {device}",
|
"message.visitor-log": "Besøgende fra {country} bruger {browser} på {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Du har ikke konfigureret nogen hjemmesider.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Websiite hinzuefüege",
|
"label.add-website": "Websiite hinzuefüege",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Alli",
|
"label.all": "Alli",
|
||||||
"label.all-time": "Gesamte Zitruum",
|
"label.all-time": "Gesamte Zitruum",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Durchschn. Bsuechsziit",
|
"label.average-visit-time": "Durchschn. Bsuechsziit",
|
||||||
"label.back": "Zrugg",
|
"label.back": "Zrugg",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Absprungsrate",
|
"label.bounce-rate": "Absprungsrate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browser",
|
"label.browsers": "Browser",
|
||||||
"label.cancel": "Abbreche",
|
"label.cancel": "Abbreche",
|
||||||
"label.change-password": "Passwort ändere",
|
"label.change-password": "Passwort ändere",
|
||||||
"label.cities": "Städt",
|
"label.cities": "Städt",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Alles lösche",
|
"label.clear-all": "Alles lösche",
|
||||||
"label.confirm": "Bestätige",
|
"label.confirm": "Bestätige",
|
||||||
"label.confirm-password": "Passwort widerhole",
|
"label.confirm-password": "Passwort widerhole",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Wiiter",
|
"label.continue": "Wiiter",
|
||||||
"label.countries": "Länder",
|
"label.countries": "Länder",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Team erstelle",
|
"label.create-team": "Team erstelle",
|
||||||
"label.create-user": "Benutzer erstelle",
|
"label.create-user": "Benutzer erstelle",
|
||||||
"label.created": "Erstellt",
|
"label.created": "Erstellt",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Benutzerdefinierte Bereich",
|
"label.custom-range": "Benutzerdefinierte Bereich",
|
||||||
"label.dashboard": "Übersicht",
|
"label.dashboard": "Übersicht",
|
||||||
"label.data": "Datä",
|
"label.data": "Datä",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Datumsbereich",
|
"label.date-range": "Datumsbereich",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Vorigstellte Datumsbereich",
|
"label.default-date-range": "Vorigstellte Datumsbereich",
|
||||||
"label.delete": "Lösche",
|
"label.delete": "Lösche",
|
||||||
"label.delete-team": "Team lösche",
|
"label.delete-team": "Team lösche",
|
||||||
"label.delete-user": "Benutzer lösche",
|
"label.delete-user": "Benutzer lösche",
|
||||||
"label.delete-website": "Websiite lösche",
|
"label.delete-website": "Websiite lösche",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Grät",
|
"label.devices": "Grät",
|
||||||
"label.dismiss": "Verwerfe",
|
"label.dismiss": "Verwerfe",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Bearbeite",
|
"label.edit": "Bearbeite",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Ereigniss",
|
"label.events": "Ereigniss",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Kombiniert",
|
"label.filter-combined": "Kombiniert",
|
||||||
"label.filter-raw": "Rohdate",
|
"label.filter-raw": "Rohdate",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Biträte",
|
"label.join": "Biträte",
|
||||||
"label.join-team": "Team biträte",
|
"label.join-team": "Team biträte",
|
||||||
"label.language": "Sprach",
|
"label.language": "Sprach",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Letzti {x} Stunde",
|
"label.last-hours": "Letzti {x} Stunde",
|
||||||
"label.leave": "Verlah",
|
"label.leave": "Verlah",
|
||||||
"label.leave-team": "Team verlah",
|
"label.leave-team": "Team verlah",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Aamelde",
|
"label.login": "Aamelde",
|
||||||
"label.logout": "Abmelde",
|
"label.logout": "Abmelde",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Mitglieder",
|
"label.members": "Mitglieder",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Handy",
|
"label.mobile": "Handy",
|
||||||
"label.more": "Meh",
|
"label.more": "Meh",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Name",
|
"label.name": "Name",
|
||||||
"label.new-password": "Neus Passwort",
|
"label.new-password": "Neus Passwort",
|
||||||
"label.none": "Keis",
|
"label.none": "Keis",
|
||||||
"label.operating-systems": "Betriibssystem",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Bsitzer",
|
"label.owner": "Bsitzer",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Siitenufrüef",
|
"label.page-views": "Siitenufrüef",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Siite",
|
"label.pages": "Siite",
|
||||||
"label.password": "Passwort",
|
"label.password": "Passwort",
|
||||||
"label.powered-by": "Betribe dur {name}",
|
"label.powered-by": "Betribe dur {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Abfragparameter",
|
"label.query-parameters": "Abfragparameter",
|
||||||
"label.realtime": "Echtzit",
|
"label.realtime": "Echtzit",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrer",
|
"label.referrers": "Referrer",
|
||||||
"label.refresh": "Aktualisiere",
|
"label.refresh": "Aktualisiere",
|
||||||
"label.regenerate": "Erneuere",
|
"label.regenerate": "Erneuere",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regionä",
|
"label.regions": "Regionä",
|
||||||
"label.remove": "Entferne",
|
"label.remove": "Entferne",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Erforderlich",
|
"label.required": "Erforderlich",
|
||||||
"label.reset": "Zruggsetze",
|
"label.reset": "Zruggsetze",
|
||||||
"label.reset-website": "Statistik zruggsetze",
|
"label.reset-website": "Statistik zruggsetze",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Rollä",
|
"label.role": "Rollä",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Speichere",
|
"label.save": "Speichere",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Istellige",
|
"label.settings": "Istellige",
|
||||||
"label.share-url": "Freigab-URL",
|
"label.share-url": "Freigab-URL",
|
||||||
"label.single-day": "Ein Tag",
|
"label.single-day": "Ein Tag",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team Gast",
|
"label.team-guest": "Team Gast",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team Mitglied",
|
"label.team-member": "Team Mitglied",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team Bsitzer",
|
"label.team-owner": "Team Bsitzer",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Thema",
|
"label.theme": "Thema",
|
||||||
"label.this-month": "De Monet",
|
"label.this-month": "De Monet",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Titel",
|
"label.title": "Titel",
|
||||||
"label.today": "Hüt",
|
"label.today": "Hüt",
|
||||||
"label.toggle-charts": "Schaubilder umschalte",
|
"label.toggle-charts": "Schaubilder umschalte",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Tracking Code",
|
"label.tracking-code": "Tracking Code",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Eidütigi Bsuecher",
|
"label.unique-visitors": "Eidütigi Bsuecher",
|
||||||
"label.unknown": "Unbekannt",
|
"label.unknown": "Unbekannt",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "Benutzer",
|
"label.user": "Benutzer",
|
||||||
"label.username": "Benutzername",
|
"label.username": "Benutzername",
|
||||||
"label.users": "Benutzer",
|
"label.users": "Benutzer",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "Azeige",
|
"label.view": "Azeige",
|
||||||
"label.view-details": "Details azeige",
|
"label.view-details": "Details azeige",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Websiite",
|
"label.websites": "Websiite",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Gester",
|
"label.yesterday": "Gester",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {aktive Bsuecher} other {aktivi Bsuecher}}",
|
"message.active-users": "{x} {x, plural, one {aktive Bsuecher} other {aktivi Bsuecher}}",
|
||||||
"message.confirm-delete": "Sind Sie sich sicher, {target} zlösche?",
|
"message.confirm-delete": "Sind Sie sich sicher, {target} zlösche?",
|
||||||
"message.confirm-leave": "Sind Sie sich sicher, {target} zverlah?",
|
"message.confirm-leave": "Sind Sie sich sicher, {target} zverlah?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Falschs Passwort oder Benutzername.",
|
"message.incorrect-username-password": "Falschs Passwort oder Benutzername.",
|
||||||
"message.invalid-domain": "Ungültigi Domain",
|
"message.invalid-domain": "Ungültigi Domain",
|
||||||
"message.min-password-length": "Miminamli längi vo {n} Zeiche",
|
"message.min-password-length": "Miminamli längi vo {n} Zeiche",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Kei Date vorhande.",
|
"message.no-data-available": "Kei Date vorhande.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwörter stimmed ned überi",
|
"message.no-match-password": "Passwörter stimmed ned überi",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "Dem Team sind kei Websiite zuegordnet.",
|
||||||
"message.no-teams": "Bisher sind no kei Teams erstellt worde.",
|
"message.no-teams": "Bisher sind no kei Teams erstellt worde.",
|
||||||
"message.no-users": "Da gits kei Benutzer",
|
"message.no-users": "Da gits kei Benutzer",
|
||||||
|
"message.no-websites-configured": "Es isch kei Websiite vorhande.",
|
||||||
"message.page-not-found": "Siite ned gfunde.",
|
"message.page-not-found": "Siite ned gfunde.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Alli Date für die Websiite werdet glöscht, nur de Tracking Code blibt bestah.",
|
"message.reset-website-warning": "Alli Date für die Websiite werdet glöscht, nur de Tracking Code blibt bestah.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Ihri Websiitestatistik isch under de folgende URL öffentlich zuegänglich:",
|
"message.share-url": "Ihri Websiitestatistik isch under de folgende URL öffentlich zuegänglich:",
|
||||||
"message.team-already-member": "Sie sind bereits es Mitglied vo dem Team.",
|
"message.team-already-member": "Sie sind bereits es Mitglied vo dem Team.",
|
||||||
"message.team-not-found": "Team nöd gfunde.",
|
"message.team-not-found": "Team nöd gfunde.",
|
||||||
|
"message.team-websites-info": "Websiite chönd vo jedem im Team agluegt werde",
|
||||||
"message.tracking-code": "Tracking Code",
|
"message.tracking-code": "Tracking Code",
|
||||||
"message.user-deleted": "Benutzer glöscht.",
|
"message.user-deleted": "Benutzer glöscht.",
|
||||||
"message.visitor-log": "Bsuecher us {country} benutzt {browser} uf {os} {device}",
|
"message.visitor-log": "Bsuecher us {country} benutzt {browser} uf {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "Dem Team sind kei Websiite zuegordnet.",
|
|
||||||
"message.no-websites-configured": "Es isch kei Websiite vorhande.",
|
|
||||||
"message.team-websites-info": "Websiite chönd vo jedem im Team agluegt werde",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Beschreibung hinzufügen",
|
"label.add-description": "Beschreibung hinzufügen",
|
||||||
"label.add-website": "Webseite hinzufügen",
|
"label.add-website": "Webseite hinzufügen",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Alle",
|
"label.all": "Alle",
|
||||||
"label.all-time": "Gesamter Zeitraum",
|
"label.all-time": "Gesamter Zeitraum",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Durchschnitt",
|
||||||
"label.average-visit-time": "Durchschn. Besuchszeit",
|
"label.average-visit-time": "Durchschn. Besuchszeit",
|
||||||
"label.back": "Zurück",
|
"label.back": "Zurück",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Absprungrate",
|
"label.bounce-rate": "Absprungrate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browser",
|
"label.browsers": "Browser",
|
||||||
"label.cancel": "Abbrechen",
|
"label.cancel": "Abbrechen",
|
||||||
"label.change-password": "Passwort ändern",
|
"label.change-password": "Passwort ändern",
|
||||||
"label.cities": "Städte",
|
"label.cities": "Städte",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Alles löschen",
|
"label.clear-all": "Alles löschen",
|
||||||
"label.confirm": "Bestätigen",
|
"label.confirm": "Bestätigen",
|
||||||
"label.confirm-password": "Passwort wiederholen",
|
"label.confirm-password": "Passwort wiederholen",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Weiter",
|
"label.continue": "Weiter",
|
||||||
"label.countries": "Länder",
|
"label.countries": "Länder",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Report erstellen",
|
||||||
"label.create-team": "Team erstellen",
|
"label.create-team": "Team erstellen",
|
||||||
"label.create-user": "Benutzer erstellen",
|
"label.create-user": "Benutzer erstellen",
|
||||||
"label.created": "Erstellt",
|
"label.created": "Erstellt",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Benutzerdefinierter Bereich",
|
"label.custom-range": "Benutzerdefinierter Bereich",
|
||||||
"label.dashboard": "Übersicht",
|
"label.dashboard": "Übersicht",
|
||||||
"label.data": "Daten",
|
"label.data": "Daten",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Datumsbereich",
|
"label.date-range": "Datumsbereich",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Voreingestellter Datumsbereich",
|
"label.default-date-range": "Voreingestellter Datumsbereich",
|
||||||
"label.delete": "Löschen",
|
"label.delete": "Löschen",
|
||||||
"label.delete-team": "Team löschen",
|
"label.delete-team": "Team löschen",
|
||||||
"label.delete-user": "Benutzer löschen",
|
"label.delete-user": "Benutzer löschen",
|
||||||
"label.delete-website": "Webseite löschen",
|
"label.delete-website": "Webseite löschen",
|
||||||
|
"label.description": "Beschreibung",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Geräte",
|
"label.devices": "Geräte",
|
||||||
"label.dismiss": "Verwerfen",
|
"label.dismiss": "Verwerfen",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Bearbeiten",
|
"label.edit": "Bearbeiten",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event daten",
|
"label.event-data": "Event daten",
|
||||||
"label.events": "Ereignisse",
|
"label.events": "Ereignisse",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Kombiniert",
|
"label.filter-combined": "Kombiniert",
|
||||||
"label.filter-raw": "Rohdaten",
|
"label.filter-raw": "Rohdaten",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Größer als",
|
||||||
|
"label.greater-than-equals": "Größer oder gleich",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Beitreten",
|
"label.join": "Beitreten",
|
||||||
"label.join-team": "Team beitreten",
|
"label.join-team": "Team beitreten",
|
||||||
"label.language": "Sprache",
|
"label.language": "Sprache",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Letzte {x} Stunden",
|
"label.last-hours": "Letzte {x} Stunden",
|
||||||
"label.leave": "Verlassen",
|
"label.leave": "Verlassen",
|
||||||
"label.leave-team": "Team verlassen",
|
"label.leave-team": "Team verlassen",
|
||||||
|
"label.less-than": "Kleiner als",
|
||||||
|
"label.less-than-equals": "Kleiner oder gleich",
|
||||||
"label.login": "Anmelden",
|
"label.login": "Anmelden",
|
||||||
"label.logout": "Abmelden",
|
"label.logout": "Abmelden",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Mitglieder",
|
"label.members": "Mitglieder",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Handy",
|
"label.mobile": "Handy",
|
||||||
"label.more": "Mehr",
|
"label.more": "Mehr",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Name",
|
"label.name": "Name",
|
||||||
"label.new-password": "Neues Passwort",
|
"label.new-password": "Neues Passwort",
|
||||||
"label.none": "Keine",
|
"label.none": "Keine",
|
||||||
"label.operating-systems": "Betriebssysteme",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Übersicht",
|
||||||
"label.owner": "Besitzer",
|
"label.owner": "Besitzer",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Seitenaufrufe",
|
"label.page-views": "Seitenaufrufe",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Seiten",
|
"label.pages": "Seiten",
|
||||||
"label.password": "Passwort",
|
"label.password": "Passwort",
|
||||||
"label.powered-by": "Betrieben durch {name}",
|
"label.powered-by": "Betrieben durch {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Abfrage",
|
"label.query": "Abfrage",
|
||||||
"label.query-parameters": "Abfrageparameter",
|
"label.query-parameters": "Abfrageparameter",
|
||||||
"label.realtime": "Echtzeit",
|
"label.realtime": "Echtzeit",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrer",
|
"label.referrers": "Referrer",
|
||||||
"label.refresh": "Aktualisieren",
|
"label.refresh": "Aktualisieren",
|
||||||
"label.regenerate": "Erneuern",
|
"label.regenerate": "Erneuern",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regionen",
|
"label.regions": "Regionen",
|
||||||
"label.remove": "Entfernen",
|
"label.remove": "Entfernen",
|
||||||
"label.reports": "Reporte",
|
"label.reports": "Reporte",
|
||||||
"label.required": "Erforderlich",
|
"label.required": "Erforderlich",
|
||||||
"label.reset": "Zurücksetzen",
|
"label.reset": "Zurücksetzen",
|
||||||
"label.reset-website": "Statistik zurücksetzen",
|
"label.reset-website": "Statistik zurücksetzen",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Rolle",
|
"label.role": "Rolle",
|
||||||
"label.run-query": "Abfrage starten",
|
"label.run-query": "Abfrage starten",
|
||||||
"label.save": "Speichern",
|
"label.save": "Speichern",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Einstellungen",
|
"label.settings": "Einstellungen",
|
||||||
"label.share-url": "Freigabe-URL",
|
"label.share-url": "Freigabe-URL",
|
||||||
"label.single-day": "Ein Tag",
|
"label.single-day": "Ein Tag",
|
||||||
|
"label.sum": "Summe",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team Gast",
|
"label.team-guest": "Team Gast",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team Mitglied",
|
"label.team-member": "Team Mitglied",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team Eigentümer",
|
"label.team-owner": "Team Eigentümer",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Thema",
|
"label.theme": "Thema",
|
||||||
"label.this-month": "Diesen Monat",
|
"label.this-month": "Diesen Monat",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Titel",
|
"label.title": "Titel",
|
||||||
"label.today": "Heute",
|
"label.today": "Heute",
|
||||||
"label.toggle-charts": "Schaubilder umschalten",
|
"label.toggle-charts": "Schaubilder umschalten",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Tracking Code",
|
"label.tracking-code": "Tracking Code",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Eindeutige Besucher",
|
"label.unique-visitors": "Eindeutige Besucher",
|
||||||
"label.unknown": "Unbekannt",
|
"label.unknown": "Unbekannt",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "Benutzer",
|
"label.user": "Benutzer",
|
||||||
"label.username": "Benutzername",
|
"label.username": "Benutzername",
|
||||||
"label.users": "Benutzer",
|
"label.users": "Benutzer",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "Anzeigen",
|
"label.view": "Anzeigen",
|
||||||
"label.view-details": "Details anzeigen",
|
"label.view-details": "Details anzeigen",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Webseiten",
|
"label.websites": "Webseiten",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Gestern",
|
"label.yesterday": "Gestern",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Durchschnitt",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Report erstellen",
|
|
||||||
"labels.description": "Beschreibung",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Größer als",
|
|
||||||
"labels.greater-than-equals": "Größer oder gleich",
|
|
||||||
"labels.less-than": "Kleiner als",
|
|
||||||
"labels.less-than-equals": "Kleiner oder gleich",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Übersicht",
|
|
||||||
"labels.sum": "Summe",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {aktiver Besucher} other {aktive Besucher}}",
|
"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-delete": "Sind Sie sich sicher, {target} zu löschen?",
|
||||||
"message.confirm-leave": "Sind Sie sicher, dass die {target} verlassen möchten?",
|
"message.confirm-leave": "Sind Sie sicher, dass die {target} verlassen möchten?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Falsches Passwort oder Benutzername.",
|
"message.incorrect-username-password": "Falsches Passwort oder Benutzername.",
|
||||||
"message.invalid-domain": "Ungültige Domain",
|
"message.invalid-domain": "Ungültige Domain",
|
||||||
"message.min-password-length": "Minimale länge von {n} Zeichen",
|
"message.min-password-length": "Minimale länge von {n} Zeichen",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Keine Daten vorhanden.",
|
"message.no-data-available": "Keine Daten vorhanden.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwörter stimmen nicht überein",
|
"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-teams": "Bisher wurden keine Teams erstellt.",
|
||||||
"message.no-users": "Hier gibt es keine Benutzer.",
|
"message.no-users": "Hier gibt es keine Benutzer.",
|
||||||
|
"message.no-websites-configured": "Es ist keine Webseite vorhanden.",
|
||||||
"message.page-not-found": "Seite nicht gefunden.",
|
"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": "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-warning": "Alle Daten für diese Webseite werden gelöscht, jedoch bleibt der Tracking Code bestehen.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Ihre Webseitenstatistik ist unter der folgenden URL öffentlich zugänglich:",
|
"message.share-url": "Ihre Webseitenstatistik ist unter der folgenden URL öffentlich zugänglich:",
|
||||||
"message.team-already-member": "Sie sind bereits Mitglied des Teams.",
|
"message.team-already-member": "Sie sind bereits Mitglied des Teams.",
|
||||||
"message.team-not-found": "Team nicht gefunden.",
|
"message.team-not-found": "Team nicht gefunden.",
|
||||||
|
"message.team-websites-info": "Webseiten können von jedem im Team eingesehen werden.",
|
||||||
"message.tracking-code": "Tracking Code",
|
"message.tracking-code": "Tracking Code",
|
||||||
"message.user-deleted": "Benutzer gelöscht.",
|
"message.user-deleted": "Benutzer gelöscht.",
|
||||||
"message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}",
|
"message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}"
|
||||||
"message.no-results-found": "Keine Ergebnisse gefunden.",
|
|
||||||
"message.no-team-websites": "Diesem Team sind keine Websites zugeordnet.",
|
|
||||||
"message.no-websites-configured": "Es ist keine Webseite vorhanden.",
|
|
||||||
"message.team-websites-info": "Webseiten können von jedem im Team eingesehen werden.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Προσθήκη ιστότοπου",
|
"label.add-website": "Προσθήκη ιστότοπου",
|
||||||
"label.admin": "Διαχειριστής",
|
"label.admin": "Διαχειριστής",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "All",
|
"label.all": "All",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Μέσος χρόνος επίσκεψης",
|
"label.average-visit-time": "Μέσος χρόνος επίσκεψης",
|
||||||
"label.back": "Πίσω",
|
"label.back": "Πίσω",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Ποσοστό αναπήδησης",
|
"label.bounce-rate": "Ποσοστό αναπήδησης",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Προγράμματα περιήγησης",
|
"label.browsers": "Προγράμματα περιήγησης",
|
||||||
"label.cancel": "Ακύρωση",
|
"label.cancel": "Ακύρωση",
|
||||||
"label.change-password": "Αλλαγή κωδικού",
|
"label.change-password": "Αλλαγή κωδικού",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Επιβεβαίωση κωδικού",
|
"label.confirm-password": "Επιβεβαίωση κωδικού",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Χώρες",
|
"label.countries": "Χώρες",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Προσαρμοσμένο εύρος",
|
"label.custom-range": "Προσαρμοσμένο εύρος",
|
||||||
"label.dashboard": "Πίνακας",
|
"label.dashboard": "Πίνακας",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Εύρος ημερομηνιών",
|
"label.date-range": "Εύρος ημερομηνιών",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Προεπιλεγμένο εύρος ημερομηνιών",
|
"label.default-date-range": "Προεπιλεγμένο εύρος ημερομηνιών",
|
||||||
"label.delete": "Διαγραφή",
|
"label.delete": "Διαγραφή",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Διαγραφή ιστότοπου",
|
"label.delete-website": "Διαγραφή ιστότοπου",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Σταθερός υπολογιστής",
|
"label.desktop": "Σταθερός υπολογιστής",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Συσκευές",
|
"label.devices": "Συσκευές",
|
||||||
"label.dismiss": "Dismiss",
|
"label.dismiss": "Dismiss",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Τομέας",
|
"label.domain": "Τομέας",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Επεξεργασία",
|
"label.edit": "Επεξεργασία",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Γεγονότα",
|
"label.events": "Γεγονότα",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Σε συνδυασμό",
|
"label.filter-combined": "Σε συνδυασμό",
|
||||||
"label.filter-raw": "Ακατέργαστο",
|
"label.filter-raw": "Ακατέργαστο",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Τελευταίες {x} ώρες",
|
"label.last-hours": "Τελευταίες {x} ώρες",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Είσοδος",
|
"label.login": "Είσοδος",
|
||||||
"label.logout": "Αποσύνδεση",
|
"label.logout": "Αποσύνδεση",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Κινητό",
|
"label.mobile": "Κινητό",
|
||||||
"label.more": "Περισσότερα",
|
"label.more": "Περισσότερα",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Όνομα",
|
"label.name": "Όνομα",
|
||||||
"label.new-password": "Νέος κωδικός",
|
"label.new-password": "Νέος κωδικός",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Λειτουργικά συστήματα",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Προβολές σελίδας",
|
"label.page-views": "Προβολές σελίδας",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Σελίδες",
|
"label.pages": "Σελίδες",
|
||||||
"label.password": "Κωδικός",
|
"label.password": "Κωδικός",
|
||||||
"label.powered-by": "Με την υποστήριξη του {name}",
|
"label.powered-by": "Με την υποστήριξη του {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Realtime",
|
"label.realtime": "Realtime",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Παραπομπές",
|
"label.referrers": "Παραπομπές",
|
||||||
"label.refresh": "Ανανέωση",
|
"label.refresh": "Ανανέωση",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Απαιτείται",
|
"label.required": "Απαιτείται",
|
||||||
"label.reset": "Επαναφορά",
|
"label.reset": "Επαναφορά",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Αποθήκευση",
|
"label.save": "Αποθήκευση",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Ρυθμίσεις",
|
"label.settings": "Ρυθμίσεις",
|
||||||
"label.share-url": "Κοινοποίηση διεύθυνσης URL",
|
"label.share-url": "Κοινοποίηση διεύθυνσης URL",
|
||||||
"label.single-day": "Ημερήσια",
|
"label.single-day": "Ημερήσια",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Τάμπλετ",
|
"label.tablet": "Τάμπλετ",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "Αυτο το μήνα",
|
"label.this-month": "Αυτο το μήνα",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Σήμερα",
|
"label.today": "Σήμερα",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Κωδικός παρακολούθησης",
|
"label.tracking-code": "Κωδικός παρακολούθησης",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Μοναδικοί επισκέπτες",
|
"label.unique-visitors": "Μοναδικοί επισκέπτες",
|
||||||
"label.unknown": "Άγνωστο",
|
"label.unknown": "Άγνωστο",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Όνομα χρήστη",
|
"label.username": "Όνομα χρήστη",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Λεπτομέρειες",
|
"label.view-details": "Λεπτομέρειες",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Ιστότοποι",
|
"label.websites": "Ιστότοποι",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} ενεργοί {x, plural, one {επισκέπτης} other {επισκέπτες}}",
|
"message.active-users": "{x} ενεργοί {x, plural, one {επισκέπτης} other {επισκέπτες}}",
|
||||||
"message.confirm-delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε το {target};",
|
"message.confirm-delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε το {target};",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Εσφαλμένο όνομα χρήστη / κωδικός πρόσβασης.",
|
"message.incorrect-username-password": "Εσφαλμένο όνομα χρήστη / κωδικός πρόσβασης.",
|
||||||
"message.invalid-domain": "Μη έγκυρος τομέας",
|
"message.invalid-domain": "Μη έγκυρος τομέας",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Δεν υπάρχουν διαθέσιμα δεδομένα.",
|
"message.no-data-available": "Δεν υπάρχουν διαθέσιμα δεδομένα.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Οι κωδικοί πρόσβασης δεν ταιριάζουν",
|
"message.no-match-password": "Οι κωδικοί πρόσβασης δεν ταιριάζουν",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Δεν έχετε ρυθμίσει κανένα ιστότοπο.",
|
||||||
"message.page-not-found": "Η σελίδα δεν βρέθηκε.",
|
"message.page-not-found": "Η σελίδα δεν βρέθηκε.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Αυτό είναι το κοινόχρηστο URL για το {target}.",
|
"message.share-url": "Αυτό είναι το κοινόχρηστο URL για το {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Κωδικός παρακολούθησης",
|
"message.tracking-code": "Κωδικός παρακολούθησης",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}",
|
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Δεν έχετε ρυθμίσει κανένα ιστότοπο.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Add website",
|
"label.add-website": "Add website",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "All",
|
"label.all": "All",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Average visit time",
|
"label.average-visit-time": "Average visit time",
|
||||||
"label.back": "Back",
|
"label.back": "Back",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce rate",
|
"label.bounce-rate": "Bounce rate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browsers",
|
"label.browsers": "Browsers",
|
||||||
"label.cancel": "Cancel",
|
"label.cancel": "Cancel",
|
||||||
"label.change-password": "Change password",
|
"label.change-password": "Change password",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Confirm password",
|
"label.confirm-password": "Confirm password",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Countries",
|
"label.countries": "Countries",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Custom range",
|
"label.custom-range": "Custom range",
|
||||||
"label.dashboard": "Dashboard",
|
"label.dashboard": "Dashboard",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Date range",
|
"label.date-range": "Date range",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Default date range",
|
"label.default-date-range": "Default date range",
|
||||||
"label.delete": "Delete",
|
"label.delete": "Delete",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Delete website",
|
"label.delete-website": "Delete website",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Devices",
|
"label.devices": "Devices",
|
||||||
"label.dismiss": "Dismiss",
|
"label.dismiss": "Dismiss",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Edit",
|
"label.edit": "Edit",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Events",
|
"label.events": "Events",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combined",
|
"label.filter-combined": "Combined",
|
||||||
"label.filter-raw": "Raw",
|
"label.filter-raw": "Raw",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Last {x} hours",
|
"label.last-hours": "Last {x} hours",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Login",
|
"label.login": "Login",
|
||||||
"label.logout": "Logout",
|
"label.logout": "Logout",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobile",
|
"label.mobile": "Mobile",
|
||||||
"label.more": "More",
|
"label.more": "More",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Name",
|
"label.name": "Name",
|
||||||
"label.new-password": "New password",
|
"label.new-password": "New password",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operating systems",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Page views",
|
"label.page-views": "Page views",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pages",
|
"label.pages": "Pages",
|
||||||
"label.password": "Password",
|
"label.password": "Password",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Realtime",
|
"label.realtime": "Realtime",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrers",
|
"label.referrers": "Referrers",
|
||||||
"label.refresh": "Refresh",
|
"label.refresh": "Refresh",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Required",
|
"label.required": "Required",
|
||||||
"label.reset": "Reset",
|
"label.reset": "Reset",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Save",
|
"label.save": "Save",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Settings",
|
"label.settings": "Settings",
|
||||||
"label.share-url": "Share URL",
|
"label.share-url": "Share URL",
|
||||||
"label.single-day": "Single day",
|
"label.single-day": "Single day",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "This month",
|
"label.this-month": "This month",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Today",
|
"label.today": "Today",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Tracking code",
|
"label.tracking-code": "Tracking code",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Unique visitors",
|
"label.unique-visitors": "Unique visitors",
|
||||||
"label.unknown": "Unknown",
|
"label.unknown": "Unknown",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Username",
|
"label.username": "Username",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "View details",
|
"label.view-details": "View details",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Websites",
|
"label.websites": "Websites",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
||||||
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Incorrect username/password.",
|
"message.incorrect-username-password": "Incorrect username/password.",
|
||||||
"message.invalid-domain": "Invalid domain",
|
"message.invalid-domain": "Invalid domain",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No data available.",
|
"message.no-data-available": "No data available.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwords don't match",
|
"message.no-match-password": "Passwords don't match",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "You don't have any websites configured.",
|
||||||
"message.page-not-found": "Page not found.",
|
"message.page-not-found": "Page not found.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "This is the publicly shared URL for {target}.",
|
"message.share-url": "This is the publicly shared URL for {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Tracking code",
|
"message.tracking-code": "Tracking code",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}",
|
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "You don't have any websites configured.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Add website",
|
"label.add-website": "Add website",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "All",
|
"label.all": "All",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Average visit time",
|
"label.average-visit-time": "Average visit time",
|
||||||
"label.back": "Back",
|
"label.back": "Back",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce rate",
|
"label.bounce-rate": "Bounce rate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browsers",
|
"label.browsers": "Browsers",
|
||||||
"label.cancel": "Cancel",
|
"label.cancel": "Cancel",
|
||||||
"label.change-password": "Change password",
|
"label.change-password": "Change password",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Confirm password",
|
"label.confirm-password": "Confirm password",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Countries",
|
"label.countries": "Countries",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Custom range",
|
"label.custom-range": "Custom range",
|
||||||
"label.dashboard": "Dashboard",
|
"label.dashboard": "Dashboard",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Date range",
|
"label.date-range": "Date range",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Default date range",
|
"label.default-date-range": "Default date range",
|
||||||
"label.delete": "Delete",
|
"label.delete": "Delete",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Delete website",
|
"label.delete-website": "Delete website",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Devices",
|
"label.devices": "Devices",
|
||||||
"label.dismiss": "Dismiss",
|
"label.dismiss": "Dismiss",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Edit",
|
"label.edit": "Edit",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Events",
|
"label.events": "Events",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combined",
|
"label.filter-combined": "Combined",
|
||||||
"label.filter-raw": "Raw",
|
"label.filter-raw": "Raw",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Last {x} hours",
|
"label.last-hours": "Last {x} hours",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Login",
|
"label.login": "Login",
|
||||||
"label.logout": "Logout",
|
"label.logout": "Logout",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobile",
|
"label.mobile": "Mobile",
|
||||||
"label.more": "More",
|
"label.more": "More",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Name",
|
"label.name": "Name",
|
||||||
"label.new-password": "New password",
|
"label.new-password": "New password",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operating systems",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Page views",
|
"label.page-views": "Page views",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pages",
|
"label.pages": "Pages",
|
||||||
"label.password": "Password",
|
"label.password": "Password",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Realtime",
|
"label.realtime": "Realtime",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrers",
|
"label.referrers": "Referrers",
|
||||||
"label.refresh": "Refresh",
|
"label.refresh": "Refresh",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Required",
|
"label.required": "Required",
|
||||||
"label.reset": "Reset",
|
"label.reset": "Reset",
|
||||||
"label.reset-website": "Reset website",
|
"label.reset-website": "Reset website",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Save",
|
"label.save": "Save",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Settings",
|
"label.settings": "Settings",
|
||||||
"label.share-url": "Share URL",
|
"label.share-url": "Share URL",
|
||||||
"label.single-day": "Single day",
|
"label.single-day": "Single day",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "This month",
|
"label.this-month": "This month",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Today",
|
"label.today": "Today",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Tracking code",
|
"label.tracking-code": "Tracking code",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Unique visitors",
|
"label.unique-visitors": "Unique visitors",
|
||||||
"label.unknown": "Unknown",
|
"label.unknown": "Unknown",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Username",
|
"label.username": "Username",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "View details",
|
"label.view-details": "View details",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Websites",
|
"label.websites": "Websites",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
||||||
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Incorrect username and/or password.",
|
"message.incorrect-username-password": "Incorrect username and/or password.",
|
||||||
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No data available.",
|
"message.no-data-available": "No data available.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwords do not match.",
|
"message.no-match-password": "Passwords do not match.",
|
||||||
|
"message.no-results-found": "No results found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "You do not have any websites configured.",
|
||||||
"message.page-not-found": "Page not found",
|
"message.page-not-found": "Page not found",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Your website stats are publically available at the following URL:",
|
"message.share-url": "Your website stats are publically available at the following URL:",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}",
|
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "You do not have any websites configured.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Añadir descripción",
|
"label.add-description": "Añadir descripción",
|
||||||
"label.add-website": "Nuevo sitio web",
|
"label.add-website": "Nuevo sitio web",
|
||||||
"label.admin": "Administrador",
|
"label.admin": "Administrador",
|
||||||
|
"label.after": "Después",
|
||||||
"label.all": "Todos",
|
"label.all": "Todos",
|
||||||
"label.all-time": "Todos los tiempos",
|
"label.all-time": "Todos los tiempos",
|
||||||
"label.analytics": "Analíticas",
|
"label.analytics": "Analíticas",
|
||||||
|
"label.average": "Media",
|
||||||
"label.average-visit-time": "Tiempo promedio de visita",
|
"label.average-visit-time": "Tiempo promedio de visita",
|
||||||
"label.back": "Atrás",
|
"label.back": "Atrás",
|
||||||
|
"label.before": "Antes",
|
||||||
"label.bounce-rate": "Porcentaje de rebote",
|
"label.bounce-rate": "Porcentaje de rebote",
|
||||||
|
"label.breakdown": "Desglose",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Navegadores",
|
"label.browsers": "Navegadores",
|
||||||
"label.cancel": "Cancelar",
|
"label.cancel": "Cancelar",
|
||||||
"label.change-password": "Cambiar contraseña",
|
"label.change-password": "Cambiar contraseña",
|
||||||
"label.cities": "Ciudades",
|
"label.cities": "Ciudades",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Limpiar todo",
|
"label.clear-all": "Limpiar todo",
|
||||||
"label.confirm": "Confirmar",
|
"label.confirm": "Confirmar",
|
||||||
"label.confirm-password": "Confirmar contraseña",
|
"label.confirm-password": "Confirmar contraseña",
|
||||||
|
"label.contains": "Contiene",
|
||||||
"label.continue": "Continuar",
|
"label.continue": "Continuar",
|
||||||
"label.countries": "Países",
|
"label.countries": "Países",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Crear reporte",
|
||||||
"label.create-team": "Crear equipo",
|
"label.create-team": "Crear equipo",
|
||||||
"label.create-user": "Crear usuario",
|
"label.create-user": "Crear usuario",
|
||||||
"label.created": "Creado",
|
"label.created": "Creado",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Intervalo personalizado",
|
"label.custom-range": "Intervalo personalizado",
|
||||||
"label.dashboard": "Panel de control",
|
"label.dashboard": "Panel de control",
|
||||||
"label.data": "Datos",
|
"label.data": "Datos",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Intervalo de fechas",
|
"label.date-range": "Intervalo de fechas",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Intervalo por defecto",
|
"label.default-date-range": "Intervalo por defecto",
|
||||||
"label.delete": "Eliminar",
|
"label.delete": "Eliminar",
|
||||||
"label.delete-team": "Eliminar equipo",
|
"label.delete-team": "Eliminar equipo",
|
||||||
"label.delete-user": "Eliminar usuario",
|
"label.delete-user": "Eliminar usuario",
|
||||||
"label.delete-website": "Eliminar sitio",
|
"label.delete-website": "Eliminar sitio",
|
||||||
|
"label.description": "Descripciones",
|
||||||
"label.desktop": "Escritorio",
|
"label.desktop": "Escritorio",
|
||||||
"label.details": "Detalles",
|
"label.details": "Detalles",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Dispositivos",
|
"label.devices": "Dispositivos",
|
||||||
"label.dismiss": "Ignorar",
|
"label.dismiss": "Ignorar",
|
||||||
|
"label.does-not-contain": "No contiene",
|
||||||
"label.domain": "Dominio",
|
"label.domain": "Dominio",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Editar",
|
"label.edit": "Editar",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Evento",
|
"label.event": "Evento",
|
||||||
"label.event-data": "Datos de evento",
|
"label.event-data": "Datos de evento",
|
||||||
"label.events": "Eventos",
|
"label.events": "Eventos",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Campo",
|
"label.field": "Campo",
|
||||||
"label.fields": "Campos",
|
"label.fields": "Campos",
|
||||||
"label.filter-combined": "Combinado",
|
"label.filter-combined": "Combinado",
|
||||||
"label.filter-raw": "En crudo",
|
"label.filter-raw": "En crudo",
|
||||||
|
"label.filters": "Filtros",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Mayor que",
|
||||||
|
"label.greater-than-equals": "Mayor que o igual a",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Es igual a",
|
||||||
|
"label.is-not": "No es igual a",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Unir",
|
"label.join": "Unir",
|
||||||
"label.join-team": "Unirse al equipo",
|
"label.join-team": "Unirse al equipo",
|
||||||
"label.language": "Idioma",
|
"label.language": "Idioma",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Últimas {x} horas",
|
"label.last-hours": "Últimas {x} horas",
|
||||||
"label.leave": "Abandonar",
|
"label.leave": "Abandonar",
|
||||||
"label.leave-team": "Abandonar equipo",
|
"label.leave-team": "Abandonar equipo",
|
||||||
|
"label.less-than": "Menor que",
|
||||||
|
"label.less-than-equals": "Menor que o igual a",
|
||||||
"label.login": "Iniciar sesión",
|
"label.login": "Iniciar sesión",
|
||||||
"label.logout": "Cerrar sesión",
|
"label.logout": "Cerrar sesión",
|
||||||
|
"label.max": "Máx",
|
||||||
"label.members": "Miembros",
|
"label.members": "Miembros",
|
||||||
|
"label.min": "Mín",
|
||||||
"label.mobile": "Móvil",
|
"label.mobile": "Móvil",
|
||||||
"label.more": "Más",
|
"label.more": "Más",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nombre",
|
"label.name": "Nombre",
|
||||||
"label.new-password": "Nueva contraseña",
|
"label.new-password": "Nueva contraseña",
|
||||||
"label.none": "Ninguno",
|
"label.none": "Ninguno",
|
||||||
"label.operating-systems": "Sistemas operativos",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Resumen",
|
||||||
"label.owner": "Propietario",
|
"label.owner": "Propietario",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Vistas",
|
"label.page-views": "Vistas",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Páginas",
|
"label.pages": "Páginas",
|
||||||
"label.password": "Contraseña",
|
"label.password": "Contraseña",
|
||||||
"label.powered-by": "Con la ayuda de {name}",
|
"label.powered-by": "Con la ayuda de {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Parámetros de petición",
|
"label.query-parameters": "Parámetros de petición",
|
||||||
"label.realtime": "Tiempo real",
|
"label.realtime": "Tiempo real",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referido desde",
|
"label.referrers": "Referido desde",
|
||||||
"label.refresh": "Actualizar",
|
"label.refresh": "Actualizar",
|
||||||
"label.regenerate": "Regenerar",
|
"label.regenerate": "Regenerar",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regiones",
|
"label.regions": "Regiones",
|
||||||
"label.remove": "Quitar",
|
"label.remove": "Quitar",
|
||||||
"label.reports": "Reportes",
|
"label.reports": "Reportes",
|
||||||
"label.required": "Obligatorio",
|
"label.required": "Obligatorio",
|
||||||
"label.reset": "Reiniciar",
|
"label.reset": "Reiniciar",
|
||||||
"label.reset-website": "Reiniciar estadísticas",
|
"label.reset-website": "Reiniciar estadísticas",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Rol",
|
"label.role": "Rol",
|
||||||
"label.run-query": "Ejecutar consulta",
|
"label.run-query": "Ejecutar consulta",
|
||||||
"label.save": "Guardar",
|
"label.save": "Guardar",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Configuraciones",
|
"label.settings": "Configuraciones",
|
||||||
"label.share-url": "Compartir URL",
|
"label.share-url": "Compartir URL",
|
||||||
"label.single-day": "Un solo día",
|
"label.single-day": "Un solo día",
|
||||||
|
"label.sum": "Suma",
|
||||||
"label.tablet": "Tableta",
|
"label.tablet": "Tableta",
|
||||||
"label.team": "Equipo",
|
"label.team": "Equipo",
|
||||||
"label.team-guest": "Invitado al equipo",
|
"label.team-guest": "Invitado al equipo",
|
||||||
"label.team-id": "ID de equipo",
|
"label.team-id": "ID de equipo",
|
||||||
"label.team-member": "Miembro del equipo",
|
"label.team-member": "Miembro del equipo",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Admin. del equipo",
|
"label.team-owner": "Admin. del equipo",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Equipos",
|
"label.teams": "Equipos",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Este mes",
|
"label.this-month": "Este mes",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Título",
|
"label.title": "Título",
|
||||||
"label.today": "Hoy",
|
"label.today": "Hoy",
|
||||||
"label.toggle-charts": "Alternar gráficas",
|
"label.toggle-charts": "Alternar gráficas",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total de registros",
|
||||||
"label.tracking-code": "Código de rastreo",
|
"label.tracking-code": "Código de rastreo",
|
||||||
|
"label.true": "Verdadero",
|
||||||
|
"label.type": "Tipo",
|
||||||
|
"label.unique": "Único",
|
||||||
"label.unique-visitors": "Visitantes únicos",
|
"label.unique-visitors": "Visitantes únicos",
|
||||||
"label.unknown": "Desconocida",
|
"label.unknown": "Desconocida",
|
||||||
|
"label.untitled": "Sin título",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "Usuario",
|
"label.user": "Usuario",
|
||||||
"label.username": "Nombre de usuario",
|
"label.username": "Nombre de usuario",
|
||||||
"label.users": "Usuarios",
|
"label.users": "Usuarios",
|
||||||
|
"label.value": "Valor",
|
||||||
"label.view": "Visualizar",
|
"label.view": "Visualizar",
|
||||||
"label.view-details": "Ver detalles",
|
"label.view-details": "Ver detalles",
|
||||||
"label.view-only": "Ver sólo",
|
"label.view-only": "Ver sólo",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Sitios web",
|
"label.websites": "Sitios web",
|
||||||
"label.window": "Ventana",
|
"label.window": "Ventana",
|
||||||
"label.yesterday": "Ayer",
|
"label.yesterday": "Ayer",
|
||||||
"labels.after": "Después",
|
|
||||||
"labels.average": "Media",
|
|
||||||
"labels.before": "Antes",
|
|
||||||
"labels.breakdown": "Desglose",
|
|
||||||
"labels.contains": "Contiene",
|
|
||||||
"labels.create-report": "Crear reporte",
|
|
||||||
"labels.description": "Descripciones",
|
|
||||||
"labels.does-not-contain": "No contiene",
|
|
||||||
"labels.does-not-equal": "No es igual a",
|
|
||||||
"labels.equals": "Es igual a",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filtros",
|
|
||||||
"labels.greater-than": "Mayor que",
|
|
||||||
"labels.greater-than-equals": "Mayor que o igual a",
|
|
||||||
"labels.less-than": "Menor que",
|
|
||||||
"labels.less-than-equals": "Menor que o igual a",
|
|
||||||
"labels.max": "Máx",
|
|
||||||
"labels.min": "Mín",
|
|
||||||
"labels.overview": "Resumen",
|
|
||||||
"labels.sum": "Suma",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total de registros",
|
|
||||||
"labels.true": "Verdadero",
|
|
||||||
"labels.type": "Tipo",
|
|
||||||
"labels.unique": "Único",
|
|
||||||
"labels.untitled": "Sin título",
|
|
||||||
"labels.value": "Valor",
|
|
||||||
"message.active-users": "{x} {x, plural, one {activo} other {activos}}",
|
"message.active-users": "{x} {x, plural, one {activo} other {activos}}",
|
||||||
"message.confirm-delete": "¿Seguro que quieres eliminar {target}?",
|
"message.confirm-delete": "¿Seguro que quieres eliminar {target}?",
|
||||||
"message.confirm-leave": "¿Seguro que quieres abandonar {target}?",
|
"message.confirm-leave": "¿Seguro que quieres abandonar {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nombre de usuario o contraseña incorrectos.",
|
"message.incorrect-username-password": "Nombre de usuario o contraseña incorrectos.",
|
||||||
"message.invalid-domain": "Dominio inválido",
|
"message.invalid-domain": "Dominio inválido",
|
||||||
"message.min-password-length": "Longitud mínima de {n} caracteres",
|
"message.min-password-length": "Longitud mínima de {n} caracteres",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No hay información disponible.",
|
"message.no-data-available": "No hay información disponible.",
|
||||||
"message.no-event-data": "No hay datos de eventos disponibles.",
|
"message.no-event-data": "No hay datos de eventos disponibles.",
|
||||||
"message.no-match-password": "Las contraseñas no coinciden",
|
"message.no-match-password": "Las contraseñas no coinciden",
|
||||||
|
"message.no-results-found": "No se encontraron resultados.",
|
||||||
|
"message.no-team-websites": "Este equipo no tiene ningún sitio web configurado.",
|
||||||
"message.no-teams": "No has creado ningún equipo.",
|
"message.no-teams": "No has creado ningún equipo.",
|
||||||
"message.no-users": "No hay usuarios.",
|
"message.no-users": "No hay usuarios.",
|
||||||
|
"message.no-websites-configured": "No tienes ningún sitio web configurado.",
|
||||||
"message.page-not-found": "Página no encontrada",
|
"message.page-not-found": "Página no encontrada",
|
||||||
"message.reset-website": "Para reiniciar este sitio web, escribe {confirmation} a continuación para confirmar.",
|
"message.reset-website": "Para reiniciar este sitio web, escribe {confirmation} a continuación para confirmar.",
|
||||||
"message.reset-website-warning": "Todas las estadísticas de esta página serán eliminadas, pero el código de rastreo permanecerá intacto.",
|
"message.reset-website-warning": "Todas las estadísticas de esta página serán eliminadas, pero el código de rastreo permanecerá intacto.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Esta es la URL pública para {target}.",
|
"message.share-url": "Esta es la URL pública para {target}.",
|
||||||
"message.team-already-member": "Ya eres miembro de este equipo.",
|
"message.team-already-member": "Ya eres miembro de este equipo.",
|
||||||
"message.team-not-found": "Equipo no encontrado.",
|
"message.team-not-found": "Equipo no encontrado.",
|
||||||
|
"message.team-websites-info": "Las analíticas de tus sitios web pueden ser vistas por cualquier miembro del equipo.",
|
||||||
"message.tracking-code": "Código de rastreo",
|
"message.tracking-code": "Código de rastreo",
|
||||||
"message.user-deleted": "Usuario eliminado.",
|
"message.user-deleted": "Usuario eliminado.",
|
||||||
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}",
|
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}"
|
||||||
"message.no-results-found": "No se encontraron resultados.",
|
|
||||||
"message.no-team-websites": "Este equipo no tiene ningún sitio web configurado.",
|
|
||||||
"message.no-websites-configured": "No tienes ningún sitio web configurado.",
|
|
||||||
"message.team-websites-info": "Las analíticas de tus sitios web pueden ser vistas por cualquier miembro del equipo.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Nuevo sitio web",
|
"label.add-website": "Nuevo sitio web",
|
||||||
"label.admin": "Administrador",
|
"label.admin": "Administrador",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Todos",
|
"label.all": "Todos",
|
||||||
"label.all-time": "Todos los tiempos",
|
"label.all-time": "Todos los tiempos",
|
||||||
"label.analytics": "Analíticas",
|
"label.analytics": "Analíticas",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Tiempo promedio de visita",
|
"label.average-visit-time": "Tiempo promedio de visita",
|
||||||
"label.back": "Atrás",
|
"label.back": "Atrás",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Porcentaje de rebote",
|
"label.bounce-rate": "Porcentaje de rebote",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Navegadores",
|
"label.browsers": "Navegadores",
|
||||||
"label.cancel": "Cancelar",
|
"label.cancel": "Cancelar",
|
||||||
"label.change-password": "Cambiar contraseña",
|
"label.change-password": "Cambiar contraseña",
|
||||||
"label.cities": "Ciudades",
|
"label.cities": "Ciudades",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Limpiar todo",
|
"label.clear-all": "Limpiar todo",
|
||||||
"label.confirm": "Confirmar",
|
"label.confirm": "Confirmar",
|
||||||
"label.confirm-password": "Confirmar contraseña",
|
"label.confirm-password": "Confirmar contraseña",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continuar",
|
"label.continue": "Continuar",
|
||||||
"label.countries": "Países",
|
"label.countries": "Países",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Crear equipo",
|
"label.create-team": "Crear equipo",
|
||||||
"label.create-user": "Crear usuario",
|
"label.create-user": "Crear usuario",
|
||||||
"label.created": "Creado",
|
"label.created": "Creado",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Intervalo personalizado",
|
"label.custom-range": "Intervalo personalizado",
|
||||||
"label.dashboard": "Panel de control",
|
"label.dashboard": "Panel de control",
|
||||||
"label.data": "Datos",
|
"label.data": "Datos",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Intervalo de fechas",
|
"label.date-range": "Intervalo de fechas",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Intervalo por defecto",
|
"label.default-date-range": "Intervalo por defecto",
|
||||||
"label.delete": "Eliminar",
|
"label.delete": "Eliminar",
|
||||||
"label.delete-team": "Eliminar team",
|
"label.delete-team": "Eliminar team",
|
||||||
"label.delete-user": "Eliminar usuario",
|
"label.delete-user": "Eliminar usuario",
|
||||||
"label.delete-website": "Eliminar sitio",
|
"label.delete-website": "Eliminar sitio",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Escritorio",
|
"label.desktop": "Escritorio",
|
||||||
"label.details": "Detalles",
|
"label.details": "Detalles",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Dispositivos",
|
"label.devices": "Dispositivos",
|
||||||
"label.dismiss": "Ignorar",
|
"label.dismiss": "Ignorar",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Dominio",
|
"label.domain": "Dominio",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Editar",
|
"label.edit": "Editar",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Evento",
|
"label.event": "Evento",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Eventos",
|
"label.events": "Eventos",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combinado",
|
"label.filter-combined": "Combinado",
|
||||||
"label.filter-raw": "Personalizado",
|
"label.filter-raw": "Personalizado",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Unir",
|
"label.join": "Unir",
|
||||||
"label.join-team": "Unir a equipo",
|
"label.join-team": "Unir a equipo",
|
||||||
"label.language": "Idioma",
|
"label.language": "Idioma",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Últimas {x} horas",
|
"label.last-hours": "Últimas {x} horas",
|
||||||
"label.leave": "Abandonar",
|
"label.leave": "Abandonar",
|
||||||
"label.leave-team": "Abandonar equipo",
|
"label.leave-team": "Abandonar equipo",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Iniciar sesión",
|
"label.login": "Iniciar sesión",
|
||||||
"label.logout": "Cerrar sesión",
|
"label.logout": "Cerrar sesión",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Miembros",
|
"label.members": "Miembros",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Móvil",
|
"label.mobile": "Móvil",
|
||||||
"label.more": "Más",
|
"label.more": "Más",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nombre",
|
"label.name": "Nombre",
|
||||||
"label.new-password": "Nueva contraseña",
|
"label.new-password": "Nueva contraseña",
|
||||||
"label.none": "Ninguno",
|
"label.none": "Ninguno",
|
||||||
"label.operating-systems": "Sistemas operativos",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Propietario",
|
"label.owner": "Propietario",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Vistas",
|
"label.page-views": "Vistas",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Páginas",
|
"label.pages": "Páginas",
|
||||||
"label.password": "Contraseña",
|
"label.password": "Contraseña",
|
||||||
"label.powered-by": "Analíticas de {name}",
|
"label.powered-by": "Analíticas de {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Parámetros de petición",
|
"label.query-parameters": "Parámetros de petición",
|
||||||
"label.realtime": "Tiempo real",
|
"label.realtime": "Tiempo real",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referido desde",
|
"label.referrers": "Referido desde",
|
||||||
"label.refresh": "Actualizar",
|
"label.refresh": "Actualizar",
|
||||||
"label.regenerate": "Regenerar",
|
"label.regenerate": "Regenerar",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regiones",
|
"label.regions": "Regiones",
|
||||||
"label.remove": "Quitar",
|
"label.remove": "Quitar",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Obligatorio",
|
"label.required": "Obligatorio",
|
||||||
"label.reset": "Reiniciar",
|
"label.reset": "Reiniciar",
|
||||||
"label.reset-website": "Reiniciar estadísticas",
|
"label.reset-website": "Reiniciar estadísticas",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Rol",
|
"label.role": "Rol",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Guardar",
|
"label.save": "Guardar",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Configuraciones",
|
"label.settings": "Configuraciones",
|
||||||
"label.share-url": "Compartir URL",
|
"label.share-url": "Compartir URL",
|
||||||
"label.single-day": "Día",
|
"label.single-day": "Día",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tableta",
|
"label.tablet": "Tableta",
|
||||||
"label.team": "Equipo",
|
"label.team": "Equipo",
|
||||||
"label.team-guest": "Invitado de equipo",
|
"label.team-guest": "Invitado de equipo",
|
||||||
"label.team-id": "ID de equipo",
|
"label.team-id": "ID de equipo",
|
||||||
"label.team-member": "Miembro de equipo",
|
"label.team-member": "Miembro de equipo",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Admin. del equipo",
|
"label.team-owner": "Admin. del equipo",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Equipos",
|
"label.teams": "Equipos",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Este mes",
|
"label.this-month": "Este mes",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Título",
|
"label.title": "Título",
|
||||||
"label.today": "Hoy",
|
"label.today": "Hoy",
|
||||||
"label.toggle-charts": "Alternar gráficas",
|
"label.toggle-charts": "Alternar gráficas",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Código de rastreo",
|
"label.tracking-code": "Código de rastreo",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Visitantes únicos",
|
"label.unique-visitors": "Visitantes únicos",
|
||||||
"label.unknown": "Desconocida",
|
"label.unknown": "Desconocida",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "Usuario",
|
"label.user": "Usuario",
|
||||||
"label.username": "Nombre de usuario",
|
"label.username": "Nombre de usuario",
|
||||||
"label.users": "Usuarios",
|
"label.users": "Usuarios",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "Visualizar",
|
"label.view": "Visualizar",
|
||||||
"label.view-details": "Ver detalles",
|
"label.view-details": "Ver detalles",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Sitios",
|
"label.websites": "Sitios",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Ayer",
|
"label.yesterday": "Ayer",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {activo} other {activos}}",
|
"message.active-users": "{x} {x, plural, one {activo} other {activos}}",
|
||||||
"message.confirm-delete": "¿Seguro que quieres eliminar {target}?",
|
"message.confirm-delete": "¿Seguro que quieres eliminar {target}?",
|
||||||
"message.confirm-leave": "¿Seguro que quieres abandonar {target}?",
|
"message.confirm-leave": "¿Seguro que quieres abandonar {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nombre de usuario o contraseña incorrectos.",
|
"message.incorrect-username-password": "Nombre de usuario o contraseña incorrectos.",
|
||||||
"message.invalid-domain": "Dominio inválido",
|
"message.invalid-domain": "Dominio inválido",
|
||||||
"message.min-password-length": "Longitud mínima de {n} caracteres",
|
"message.min-password-length": "Longitud mínima de {n} caracteres",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "No hay información disponible.",
|
"message.no-data-available": "No hay información disponible.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Las contraseñas no coinciden",
|
"message.no-match-password": "Las contraseñas no coinciden",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "Este equipo no tiene ningún sitio web configurado.",
|
||||||
"message.no-teams": "No has creado ningún equipo.",
|
"message.no-teams": "No has creado ningún equipo.",
|
||||||
"message.no-users": "No hay usuarios.",
|
"message.no-users": "No hay usuarios.",
|
||||||
|
"message.no-websites-configured": "No tienes ningún sitio configurado.",
|
||||||
"message.page-not-found": "Página no encontrada",
|
"message.page-not-found": "Página no encontrada",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Todas las estadísticas de esta página serán eliminadas, pero el código de rastreo permanecerá intacto.",
|
"message.reset-website-warning": "Todas las estadísticas de esta página serán eliminadas, pero el código de rastreo permanecerá intacto.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Esta es la URL compartida públicamente para {target}.",
|
"message.share-url": "Esta es la URL compartida públicamente para {target}.",
|
||||||
"message.team-already-member": "Ya eres miembro de este equipo.",
|
"message.team-already-member": "Ya eres miembro de este equipo.",
|
||||||
"message.team-not-found": "Equipo no encontrado.",
|
"message.team-not-found": "Equipo no encontrado.",
|
||||||
|
"message.team-websites-info": "Las analíticas de tus sitios pueden verse por cualquier miembro del equipo.",
|
||||||
"message.tracking-code": "Código de rastreo",
|
"message.tracking-code": "Código de rastreo",
|
||||||
"message.user-deleted": "Usuario eliminado.",
|
"message.user-deleted": "Usuario eliminado.",
|
||||||
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}",
|
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "Este equipo no tiene ningún sitio web configurado.",
|
|
||||||
"message.no-websites-configured": "No tienes ningún sitio configurado.",
|
|
||||||
"message.team-websites-info": "Las analíticas de tus sitios pueden verse por cualquier miembro del equipo.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "افزودن وبسایت",
|
"label.add-website": "افزودن وبسایت",
|
||||||
"label.admin": "مدیر",
|
"label.admin": "مدیر",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "همه",
|
"label.all": "همه",
|
||||||
"label.all-time": "همه زمان",
|
"label.all-time": "همه زمان",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "میانگین زمان بازدید",
|
"label.average-visit-time": "میانگین زمان بازدید",
|
||||||
"label.back": "برگشت",
|
"label.back": "برگشت",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "نرخ Bounce",
|
"label.bounce-rate": "نرخ Bounce",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "مروگرها",
|
"label.browsers": "مروگرها",
|
||||||
"label.cancel": "انصراف",
|
"label.cancel": "انصراف",
|
||||||
"label.change-password": "تغییر رمز",
|
"label.change-password": "تغییر رمز",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "تایید رمز",
|
"label.confirm-password": "تایید رمز",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "کشورها",
|
"label.countries": "کشورها",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "محدودهی دلخواه",
|
"label.custom-range": "محدودهی دلخواه",
|
||||||
"label.dashboard": "داشبورد",
|
"label.dashboard": "داشبورد",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "محدودهی تاریخ",
|
"label.date-range": "محدودهی تاریخ",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "محدودهی پیشفرض تاریخ",
|
"label.default-date-range": "محدودهی پیشفرض تاریخ",
|
||||||
"label.delete": "حذف",
|
"label.delete": "حذف",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "حذف وبسایت",
|
"label.delete-website": "حذف وبسایت",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "دسکتاپ",
|
"label.desktop": "دسکتاپ",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "دستگاهها",
|
"label.devices": "دستگاهها",
|
||||||
"label.dismiss": "رد کردن",
|
"label.dismiss": "رد کردن",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "دامنه",
|
"label.domain": "دامنه",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "ویرایش",
|
"label.edit": "ویرایش",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "رویدادها",
|
"label.events": "رویدادها",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "ترکیب شده",
|
"label.filter-combined": "ترکیب شده",
|
||||||
"label.filter-raw": "خام",
|
"label.filter-raw": "خام",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "زبان",
|
"label.language": "زبان",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "لیست {x} ساعت گذشته",
|
"label.last-hours": "لیست {x} ساعت گذشته",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "ورود",
|
"label.login": "ورود",
|
||||||
"label.logout": "خروج",
|
"label.logout": "خروج",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "موبایل",
|
"label.mobile": "موبایل",
|
||||||
"label.more": "بیشتر",
|
"label.more": "بیشتر",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "نام",
|
"label.name": "نام",
|
||||||
"label.new-password": "رمز جدید",
|
"label.new-password": "رمز جدید",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "سیستمعاملها",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "ایجاد شده توسط",
|
"label.owner": "ایجاد شده توسط",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "بازدید صفحه",
|
"label.page-views": "بازدید صفحه",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "صفحهها",
|
"label.pages": "صفحهها",
|
||||||
"label.password": "رمز",
|
"label.password": "رمز",
|
||||||
"label.powered-by": "قدرت گرفته توسط {name}",
|
"label.powered-by": "قدرت گرفته توسط {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "آمار زنده",
|
"label.realtime": "آمار زنده",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "ارجاع دهندگان",
|
"label.referrers": "ارجاع دهندگان",
|
||||||
"label.refresh": "بهروزرسانی",
|
"label.refresh": "بهروزرسانی",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "ضروری",
|
"label.required": "ضروری",
|
||||||
"label.reset": "بازنشانی",
|
"label.reset": "بازنشانی",
|
||||||
"label.reset-website": "بازنشانی آمار",
|
"label.reset-website": "بازنشانی آمار",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "ذخیره",
|
"label.save": "ذخیره",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "تنظیمات",
|
"label.settings": "تنظیمات",
|
||||||
"label.share-url": "به اشتراک گذاری URL",
|
"label.share-url": "به اشتراک گذاری URL",
|
||||||
"label.single-day": "یک روز",
|
"label.single-day": "یک روز",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "تبلت",
|
"label.tablet": "تبلت",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "تم",
|
"label.theme": "تم",
|
||||||
"label.this-month": "این ماه",
|
"label.this-month": "این ماه",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "امروز",
|
"label.today": "امروز",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "کد رهگیری",
|
"label.tracking-code": "کد رهگیری",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "بازدیدکنندههای یکتا",
|
"label.unique-visitors": "بازدیدکنندههای یکتا",
|
||||||
"label.unknown": "ناشناخته",
|
"label.unknown": "ناشناخته",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "نام کاربری",
|
"label.username": "نام کاربری",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "مشاهدهی جزئیات",
|
"label.view-details": "مشاهدهی جزئیات",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "وبسایتها",
|
"label.websites": "وبسایتها",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} هم اکنون {x, plural, one {یک} other {از میان}}",
|
"message.active-users": "{x} هم اکنون {x, plural, one {یک} other {از میان}}",
|
||||||
"message.confirm-delete": "آیا مطمئن هستید میخواهید {target} را حذف کنید?",
|
"message.confirm-delete": "آیا مطمئن هستید میخواهید {target} را حذف کنید?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "نام کاربری / رمز نادرست است.",
|
"message.incorrect-username-password": "نام کاربری / رمز نادرست است.",
|
||||||
"message.invalid-domain": "دامنهی نامعتبر",
|
"message.invalid-domain": "دامنهی نامعتبر",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "اطلاعاتی موجود نیست.",
|
"message.no-data-available": "اطلاعاتی موجود نیست.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "رمزها یکسان نیستند",
|
"message.no-match-password": "رمزها یکسان نیستند",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "شما هیچ وبسایتی را پیکربندی نکردهاید.",
|
||||||
"message.page-not-found": "صفحه یافت نشد.",
|
"message.page-not-found": "صفحه یافت نشد.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "تمامی آمارهای این وبسایت حذف خواهد شد اما tracking code بدون تغییر باقی میماند.",
|
"message.reset-website-warning": "تمامی آمارهای این وبسایت حذف خواهد شد اما tracking code بدون تغییر باقی میماند.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "این URL به اشتراک گذاشته شده عمومی برای {target} است.",
|
"message.share-url": "این URL به اشتراک گذاشته شده عمومی برای {target} است.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "کد رهگیری",
|
"message.tracking-code": "کد رهگیری",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "بازدیدکننده از کشور {country} با مروگر {browser} در {os} {device}",
|
"message.visitor-log": "بازدیدکننده از کشور {country} با مروگر {browser} در {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "شما هیچ وبسایتی را پیکربندی نکردهاید.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Lisää verkkosivu",
|
"label.add-website": "Lisää verkkosivu",
|
||||||
"label.admin": "Järjestelmänvalvoja",
|
"label.admin": "Järjestelmänvalvoja",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Kaikki",
|
"label.all": "Kaikki",
|
||||||
"label.all-time": "Alusta lähtien",
|
"label.all-time": "Alusta lähtien",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Keskimääräinen vierailuaika",
|
"label.average-visit-time": "Keskimääräinen vierailuaika",
|
||||||
"label.back": "Takaisin",
|
"label.back": "Takaisin",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Välitön poistuminen",
|
"label.bounce-rate": "Välitön poistuminen",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Selaimet",
|
"label.browsers": "Selaimet",
|
||||||
"label.cancel": "Peruuta",
|
"label.cancel": "Peruuta",
|
||||||
"label.change-password": "Vaihda salasana",
|
"label.change-password": "Vaihda salasana",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Vahvista salasana",
|
"label.confirm-password": "Vahvista salasana",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Maat",
|
"label.countries": "Maat",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Mukautettu ajanjakso",
|
"label.custom-range": "Mukautettu ajanjakso",
|
||||||
"label.dashboard": "Ohjauspaneeli",
|
"label.dashboard": "Ohjauspaneeli",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Ajanjakso",
|
"label.date-range": "Ajanjakso",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Oletusajanjakso",
|
"label.default-date-range": "Oletusajanjakso",
|
||||||
"label.delete": "Poista",
|
"label.delete": "Poista",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Poista verkkosivu",
|
"label.delete-website": "Poista verkkosivu",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Pöytäkone",
|
"label.desktop": "Pöytäkone",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Laitteet",
|
"label.devices": "Laitteet",
|
||||||
"label.dismiss": "Hylkää",
|
"label.dismiss": "Hylkää",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Verkkotunnus",
|
"label.domain": "Verkkotunnus",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Muokkaa",
|
"label.edit": "Muokkaa",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Tapahtumat",
|
"label.events": "Tapahtumat",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Yhdistetty",
|
"label.filter-combined": "Yhdistetty",
|
||||||
"label.filter-raw": "Käsittelemätön",
|
"label.filter-raw": "Käsittelemätön",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Kieli",
|
"label.language": "Kieli",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Viimeisimmät {x} tuntia",
|
"label.last-hours": "Viimeisimmät {x} tuntia",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Kirjaudu sisään",
|
"label.login": "Kirjaudu sisään",
|
||||||
"label.logout": "Kirjaudu ulos",
|
"label.logout": "Kirjaudu ulos",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Puhelin",
|
"label.mobile": "Puhelin",
|
||||||
"label.more": "Lisää",
|
"label.more": "Lisää",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nimi",
|
"label.name": "Nimi",
|
||||||
"label.new-password": "Uusi salasana",
|
"label.new-password": "Uusi salasana",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Käyttöjärjestelmät",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Omistaja",
|
"label.owner": "Omistaja",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Sivun näyttökerrat",
|
"label.page-views": "Sivun näyttökerrat",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Sivut",
|
"label.pages": "Sivut",
|
||||||
"label.password": "Salasana",
|
"label.password": "Salasana",
|
||||||
"label.powered-by": "Voimanlähteenä {name}",
|
"label.powered-by": "Voimanlähteenä {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Juuri nyt",
|
"label.realtime": "Juuri nyt",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Viittaajat",
|
"label.referrers": "Viittaajat",
|
||||||
"label.refresh": "Päivitä",
|
"label.refresh": "Päivitä",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Vaaditaan",
|
"label.required": "Vaaditaan",
|
||||||
"label.reset": "Nollaa",
|
"label.reset": "Nollaa",
|
||||||
"label.reset-website": "Nollaa tilastot",
|
"label.reset-website": "Nollaa tilastot",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Tallenna",
|
"label.save": "Tallenna",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Asetukset",
|
"label.settings": "Asetukset",
|
||||||
"label.share-url": "Jaa URL",
|
"label.share-url": "Jaa URL",
|
||||||
"label.single-day": "Yksi päivä",
|
"label.single-day": "Yksi päivä",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tabletti",
|
"label.tablet": "Tabletti",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Teema",
|
"label.theme": "Teema",
|
||||||
"label.this-month": "Tämä kuukausi",
|
"label.this-month": "Tämä kuukausi",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Tänään",
|
"label.today": "Tänään",
|
||||||
"label.toggle-charts": "Kytke kaaviot päälle/pois",
|
"label.toggle-charts": "Kytke kaaviot päälle/pois",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Seurantakoodi",
|
"label.tracking-code": "Seurantakoodi",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Yksittäiset kävijät",
|
"label.unique-visitors": "Yksittäiset kävijät",
|
||||||
"label.unknown": "Tuntematon",
|
"label.unknown": "Tuntematon",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Käyttäjänimi",
|
"label.username": "Käyttäjänimi",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Katso tiedot",
|
"label.view-details": "Katso tiedot",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Verkkosivut",
|
"label.websites": "Verkkosivut",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {vierailija} other {vierailijaa}}",
|
"message.active-users": "{x} {x, plural, one {vierailija} other {vierailijaa}}",
|
||||||
"message.confirm-delete": "Haluatko varmasti poistaa sivuston {target}?",
|
"message.confirm-delete": "Haluatko varmasti poistaa sivuston {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Väärä käyttäjänimi/salasana.",
|
"message.incorrect-username-password": "Väärä käyttäjänimi/salasana.",
|
||||||
"message.invalid-domain": "Virheellinen verkkotunnus",
|
"message.invalid-domain": "Virheellinen verkkotunnus",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Tietoja ei ole käytettävissä.",
|
"message.no-data-available": "Tietoja ei ole käytettävissä.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Salasanat eivät täsmää",
|
"message.no-match-password": "Salasanat eivät täsmää",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Sinulla ei ole määritettyjä verkkosivustoja.",
|
||||||
"message.page-not-found": "Sivua ei löydetty.",
|
"message.page-not-found": "Sivua ei löydetty.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Kaikki sivuston tilastot poistetaan, mutta seurantakoodi pysyy muuttumattomana.",
|
"message.reset-website-warning": "Kaikki sivuston tilastot poistetaan, mutta seurantakoodi pysyy muuttumattomana.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Tämä on julkisesti jaettu URL sivustolle {target}.",
|
"message.share-url": "Tämä on julkisesti jaettu URL sivustolle {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Seurantakoodi",
|
"message.tracking-code": "Seurantakoodi",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Vierailija maasta {country} selaimella {browser} laitteella {os} {device}",
|
"message.visitor-log": "Vierailija maasta {country} selaimella {browser} laitteella {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Sinulla ei ole määritettyjä verkkosivustoja.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Legg heimasíðu afturat",
|
"label.add-website": "Legg heimasíðu afturat",
|
||||||
"label.admin": "Fyrisitari",
|
"label.admin": "Fyrisitari",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Alt",
|
"label.all": "Alt",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Miðal vitjurnartíð ",
|
"label.average-visit-time": "Miðal vitjurnartíð ",
|
||||||
"label.back": "Aftur",
|
"label.back": "Aftur",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce prosenttal",
|
"label.bounce-rate": "Bounce prosenttal",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Kagar",
|
"label.browsers": "Kagar",
|
||||||
"label.cancel": "Strika",
|
"label.cancel": "Strika",
|
||||||
"label.change-password": "Skift loyniorð",
|
"label.change-password": "Skift loyniorð",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Vátta loyniorð",
|
"label.confirm-password": "Vátta loyniorð",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Lond",
|
"label.countries": "Lond",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Tillaga spenni",
|
"label.custom-range": "Tillaga spenni",
|
||||||
"label.dashboard": "Yvirlitsskíggi",
|
"label.dashboard": "Yvirlitsskíggi",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Vel dato",
|
"label.date-range": "Vel dato",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Forsett dato",
|
"label.default-date-range": "Forsett dato",
|
||||||
"label.delete": "Sletta",
|
"label.delete": "Sletta",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Sletta heimasíðu",
|
"label.delete-website": "Sletta heimasíðu",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Borðtelda",
|
"label.desktop": "Borðtelda",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Tóleindir",
|
"label.devices": "Tóleindir",
|
||||||
"label.dismiss": "Lat fara",
|
"label.dismiss": "Lat fara",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Økisnavn",
|
"label.domain": "Økisnavn",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Ger broyting",
|
"label.edit": "Ger broyting",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Hendingar/tiltøk",
|
"label.events": "Hendingar/tiltøk",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Samansett",
|
"label.filter-combined": "Samansett",
|
||||||
"label.filter-raw": "Óviðgjørt",
|
"label.filter-raw": "Óviðgjørt",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Seinastu {x} tímarnar",
|
"label.last-hours": "Seinastu {x} tímarnar",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Rita inn",
|
"label.login": "Rita inn",
|
||||||
"label.logout": "Rita út",
|
"label.logout": "Rita út",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Telefon",
|
"label.mobile": "Telefon",
|
||||||
"label.more": "Meira",
|
"label.more": "Meira",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Navn",
|
"label.name": "Navn",
|
||||||
"label.new-password": "Nýtt loyniorð",
|
"label.new-password": "Nýtt loyniorð",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Stýrikervir",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Opnaðar síðir",
|
"label.page-views": "Opnaðar síðir",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Síðir",
|
"label.pages": "Síðir",
|
||||||
"label.password": "Loyniorð",
|
"label.password": "Loyniorð",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Beinleiðis",
|
"label.realtime": "Beinleiðis",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Framsendingar",
|
"label.referrers": "Framsendingar",
|
||||||
"label.refresh": "Endurskapa",
|
"label.refresh": "Endurskapa",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Kravt",
|
"label.required": "Kravt",
|
||||||
"label.reset": "Nulstilla",
|
"label.reset": "Nulstilla",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Goym",
|
"label.save": "Goym",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Stillingar",
|
"label.settings": "Stillingar",
|
||||||
"label.share-url": "Deil leinku",
|
"label.share-url": "Deil leinku",
|
||||||
"label.single-day": "Einkultur dagur",
|
"label.single-day": "Einkultur dagur",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Teldil",
|
"label.tablet": "Teldil",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "Hendan mánan",
|
"label.this-month": "Hendan mánan",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Í dag",
|
"label.today": "Í dag",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Spori kota",
|
"label.tracking-code": "Spori kota",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Einsýna vitjanir",
|
"label.unique-visitors": "Einsýna vitjanir",
|
||||||
"label.unknown": "Ókent",
|
"label.unknown": "Ókent",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Brúkaranavn",
|
"label.username": "Brúkaranavn",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Vís frágreiðing",
|
"label.view-details": "Vís frágreiðing",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Heimasíður",
|
"label.websites": "Heimasíður",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} í løtuni {x, plural, one {vitjandi} other { vitjandi }}",
|
"message.active-users": "{x} í løtuni {x, plural, one {vitjandi} other { vitjandi }}",
|
||||||
"message.confirm-delete": "Ert tú sikkur at tú ynskir at strika {target}?",
|
"message.confirm-delete": "Ert tú sikkur at tú ynskir at strika {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Skeivt brúkaranavn/loyniorð.",
|
"message.incorrect-username-password": "Skeivt brúkaranavn/loyniorð.",
|
||||||
"message.invalid-domain": "Ógilt økisnavn",
|
"message.invalid-domain": "Ógilt økisnavn",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Einki data tøk.",
|
"message.no-data-available": "Einki data tøk.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Loyniorðini eru ikki eins",
|
"message.no-match-password": "Loyniorðini eru ikki eins",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Tú hevur ongar heimasíður stillaða til.",
|
||||||
"message.page-not-found": "Síðan bleiv ikki funnin.",
|
"message.page-not-found": "Síðan bleiv ikki funnin.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Hettar er tann almenna leinkan av {target}.",
|
"message.share-url": "Hettar er tann almenna leinkan av {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Spori kota",
|
"message.tracking-code": "Spori kota",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Vitjandi frá {country} brúkar {browser} á {os} {device}",
|
"message.visitor-log": "Vitjandi frá {country} brúkar {browser} á {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Tú hevur ongar heimasíður stillaða til.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Ajouter une description",
|
"label.add-description": "Ajouter une description",
|
||||||
"label.add-website": "Ajouter un site",
|
"label.add-website": "Ajouter un site",
|
||||||
"label.admin": "Administrateur",
|
"label.admin": "Administrateur",
|
||||||
|
"label.after": "Après",
|
||||||
"label.all": "Tout",
|
"label.all": "Tout",
|
||||||
"label.all-time": "Toutes les données",
|
"label.all-time": "Toutes les données",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Moyenne",
|
||||||
"label.average-visit-time": "Temps de visite moyen",
|
"label.average-visit-time": "Temps de visite moyen",
|
||||||
"label.back": "Retour",
|
"label.back": "Retour",
|
||||||
|
"label.before": "Avant",
|
||||||
"label.bounce-rate": "Taux de rebond",
|
"label.bounce-rate": "Taux de rebond",
|
||||||
|
"label.breakdown": "Répartition",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Navigateurs",
|
"label.browsers": "Navigateurs",
|
||||||
"label.cancel": "Annuler",
|
"label.cancel": "Annuler",
|
||||||
"label.change-password": "Changer le mot de passe",
|
"label.change-password": "Changer le mot de passe",
|
||||||
"label.cities": "Villes",
|
"label.cities": "Villes",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Réinitialiser",
|
"label.clear-all": "Réinitialiser",
|
||||||
"label.confirm": "Confirmer",
|
"label.confirm": "Confirmer",
|
||||||
"label.confirm-password": "Confirmation du mot de passe",
|
"label.confirm-password": "Confirmation du mot de passe",
|
||||||
|
"label.contains": "Contient",
|
||||||
"label.continue": "Continuer",
|
"label.continue": "Continuer",
|
||||||
"label.countries": "Pays",
|
"label.countries": "Pays",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Créer un rapport",
|
||||||
"label.create-team": "Créer une équipe",
|
"label.create-team": "Créer une équipe",
|
||||||
"label.create-user": "Créer un utilisateur",
|
"label.create-user": "Créer un utilisateur",
|
||||||
"label.created": "Créé",
|
"label.created": "Créé",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Période personnalisée",
|
"label.custom-range": "Période personnalisée",
|
||||||
"label.dashboard": "Tableau de bord",
|
"label.dashboard": "Tableau de bord",
|
||||||
"label.data": "Données",
|
"label.data": "Données",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Période",
|
"label.date-range": "Période",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Période par défaut",
|
"label.default-date-range": "Période par défaut",
|
||||||
"label.delete": "Supprimer",
|
"label.delete": "Supprimer",
|
||||||
"label.delete-team": "Supprimer l'équipe",
|
"label.delete-team": "Supprimer l'équipe",
|
||||||
"label.delete-user": "Supprimer l'utilisateur",
|
"label.delete-user": "Supprimer l'utilisateur",
|
||||||
"label.delete-website": "Supprimer le site",
|
"label.delete-website": "Supprimer le site",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Ordinateur",
|
"label.desktop": "Ordinateur",
|
||||||
"label.details": "Détails",
|
"label.details": "Détails",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Appareils",
|
"label.devices": "Appareils",
|
||||||
"label.dismiss": "Ignorer",
|
"label.dismiss": "Ignorer",
|
||||||
|
"label.does-not-contain": "Ne contient pas",
|
||||||
"label.domain": "Domaine",
|
"label.domain": "Domaine",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Modifier",
|
"label.edit": "Modifier",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Données d'événements",
|
"label.event-data": "Données d'événements",
|
||||||
"label.events": "Événements",
|
"label.events": "Événements",
|
||||||
|
"label.false": "Faux",
|
||||||
"label.field": "Champ",
|
"label.field": "Champ",
|
||||||
"label.fields": "Champs",
|
"label.fields": "Champs",
|
||||||
"label.filter-combined": "Combiné",
|
"label.filter-combined": "Combiné",
|
||||||
"label.filter-raw": "Brut",
|
"label.filter-raw": "Brut",
|
||||||
|
"label.filters": "Filtres",
|
||||||
"label.funnel": "Entonnoir",
|
"label.funnel": "Entonnoir",
|
||||||
|
"label.greater-than": "Supérieur à",
|
||||||
|
"label.greater-than-equals": "Supérieur ou égal à",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Est égal",
|
||||||
|
"label.is-not": "N'est pas égal",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Rejoindre",
|
"label.join": "Rejoindre",
|
||||||
"label.join-team": "Rejoindre une équipe",
|
"label.join-team": "Rejoindre une équipe",
|
||||||
"label.language": "Langue",
|
"label.language": "Langue",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "{x} dernières heures",
|
"label.last-hours": "{x} dernières heures",
|
||||||
"label.leave": "Quitter",
|
"label.leave": "Quitter",
|
||||||
"label.leave-team": "Quitter l'équipe",
|
"label.leave-team": "Quitter l'équipe",
|
||||||
|
"label.less-than": "Inférieur à",
|
||||||
|
"label.less-than-equals": "Inférieur ou égal à",
|
||||||
"label.login": "Connexion",
|
"label.login": "Connexion",
|
||||||
"label.logout": "Déconnexion",
|
"label.logout": "Déconnexion",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Membres",
|
"label.members": "Membres",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Téléphone",
|
"label.mobile": "Téléphone",
|
||||||
"label.more": "Plus",
|
"label.more": "Plus",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nom",
|
"label.name": "Nom",
|
||||||
"label.new-password": "Nouveau mot de passe",
|
"label.new-password": "Nouveau mot de passe",
|
||||||
"label.none": "Aucun·e",
|
"label.none": "Aucun·e",
|
||||||
"label.operating-systems": "Systèmes d'exploitation",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Vue d'ensemble",
|
||||||
"label.owner": "Propriétaire",
|
"label.owner": "Propriétaire",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Pages vues",
|
"label.page-views": "Pages vues",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pages",
|
"label.pages": "Pages",
|
||||||
"label.password": "Mot de passe",
|
"label.password": "Mot de passe",
|
||||||
"label.powered-by": "Propulsé par {name}",
|
"label.powered-by": "Propulsé par {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Requête",
|
"label.query": "Requête",
|
||||||
"label.query-parameters": "Paramètres d'URL",
|
"label.query-parameters": "Paramètres d'URL",
|
||||||
"label.realtime": "Temps réel",
|
"label.realtime": "Temps réel",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Sites référents",
|
"label.referrers": "Sites référents",
|
||||||
"label.refresh": "Rafraîchir",
|
"label.refresh": "Rafraîchir",
|
||||||
"label.regenerate": "Régénérer",
|
"label.regenerate": "Régénérer",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Régions",
|
"label.regions": "Régions",
|
||||||
"label.remove": "Retirer",
|
"label.remove": "Retirer",
|
||||||
"label.reports": "Rapports",
|
"label.reports": "Rapports",
|
||||||
"label.required": "Requis",
|
"label.required": "Requis",
|
||||||
"label.reset": "Réinitialiser",
|
"label.reset": "Réinitialiser",
|
||||||
"label.reset-website": "Réinitialiser les statistiques",
|
"label.reset-website": "Réinitialiser les statistiques",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Rôle",
|
"label.role": "Rôle",
|
||||||
"label.run-query": "Éxécuter la requête",
|
"label.run-query": "Éxécuter la requête",
|
||||||
"label.save": "Enregistrer",
|
"label.save": "Enregistrer",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Paramètres",
|
"label.settings": "Paramètres",
|
||||||
"label.share-url": "URL de partage",
|
"label.share-url": "URL de partage",
|
||||||
"label.single-day": "Journée",
|
"label.single-day": "Journée",
|
||||||
|
"label.sum": "Somme",
|
||||||
"label.tablet": "Tablette",
|
"label.tablet": "Tablette",
|
||||||
"label.team": "Équipe",
|
"label.team": "Équipe",
|
||||||
"label.team-guest": "Invité dans l'équipe",
|
"label.team-guest": "Invité dans l'équipe",
|
||||||
"label.team-id": "ID d'équipe",
|
"label.team-id": "ID d'équipe",
|
||||||
"label.team-member": "Membre de l'équipe",
|
"label.team-member": "Membre de l'équipe",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Propriétaire de l'équipe",
|
"label.team-owner": "Propriétaire de l'équipe",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Équipes",
|
"label.teams": "Équipes",
|
||||||
"label.theme": "Thème",
|
"label.theme": "Thème",
|
||||||
"label.this-month": "Ce mois",
|
"label.this-month": "Ce mois",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Titre",
|
"label.title": "Titre",
|
||||||
"label.today": "Aujourd'hui",
|
"label.today": "Aujourd'hui",
|
||||||
"label.toggle-charts": "Afficher/Masquer les graphiques",
|
"label.toggle-charts": "Afficher/Masquer les graphiques",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Nombre d'enregistrements",
|
||||||
"label.tracking-code": "Code de suivi",
|
"label.tracking-code": "Code de suivi",
|
||||||
|
"label.true": "Vrai",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Visiteurs uniques",
|
"label.unique-visitors": "Visiteurs uniques",
|
||||||
"label.unknown": "Inconnu",
|
"label.unknown": "Inconnu",
|
||||||
|
"label.untitled": "Sans titre",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "Utilisateur",
|
"label.user": "Utilisateur",
|
||||||
"label.username": "Nom d'utilisateur",
|
"label.username": "Nom d'utilisateur",
|
||||||
"label.users": "Utilisateurs",
|
"label.users": "Utilisateurs",
|
||||||
|
"label.value": "Valeur",
|
||||||
"label.view": "Voir",
|
"label.view": "Voir",
|
||||||
"label.view-details": "Voir les détails",
|
"label.view-details": "Voir les détails",
|
||||||
"label.view-only": "Consultation",
|
"label.view-only": "Consultation",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Sites",
|
"label.websites": "Sites",
|
||||||
"label.window": "Fenêtre",
|
"label.window": "Fenêtre",
|
||||||
"label.yesterday": "Hier",
|
"label.yesterday": "Hier",
|
||||||
"labels.after": "Après",
|
|
||||||
"labels.average": "Moyenne",
|
|
||||||
"labels.before": "Avant",
|
|
||||||
"labels.breakdown": "Répartition",
|
|
||||||
"labels.contains": "Contient",
|
|
||||||
"labels.create-report": "Créer un rapport",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Ne contient pas",
|
|
||||||
"labels.does-not-equal": "N'est pas égal",
|
|
||||||
"labels.equals": "Est égal",
|
|
||||||
"labels.false": "Faux",
|
|
||||||
"labels.filters": "Filtres",
|
|
||||||
"labels.greater-than": "Supérieur à",
|
|
||||||
"labels.greater-than-equals": "Supérieur ou égal à",
|
|
||||||
"labels.less-than": "Inférieur à",
|
|
||||||
"labels.less-than-equals": "Inférieur ou égal à",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Vue d'ensemble",
|
|
||||||
"labels.sum": "Somme",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Nombre d'enregistrements",
|
|
||||||
"labels.true": "Vrai",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Sans titre",
|
|
||||||
"labels.value": "Valeur",
|
|
||||||
"message.active-users": "{x} {x, plural, one {visiteur} other {visiteurs}} actuellement",
|
"message.active-users": "{x} {x, plural, one {visiteur} other {visiteurs}} actuellement",
|
||||||
"message.confirm-delete": "Êtes-vous sûr de vouloir supprimer {target} ?",
|
"message.confirm-delete": "Êtes-vous sûr de vouloir supprimer {target} ?",
|
||||||
"message.confirm-leave": "Êtes-vous sûr de vouloir quitter {target} ?",
|
"message.confirm-leave": "Êtes-vous sûr de vouloir quitter {target} ?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nom d'utilisateur/Mot de passe incorrect.",
|
"message.incorrect-username-password": "Nom d'utilisateur/Mot de passe incorrect.",
|
||||||
"message.invalid-domain": "Domaine invalide",
|
"message.invalid-domain": "Domaine invalide",
|
||||||
"message.min-password-length": "Taille minimale de {n} caractères",
|
"message.min-password-length": "Taille minimale de {n} caractères",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Aucune donnée disponible.",
|
"message.no-data-available": "Aucune donnée disponible.",
|
||||||
"message.no-event-data": "Aucune donnée d'événement disponible.",
|
"message.no-event-data": "Aucune donnée d'événement disponible.",
|
||||||
"message.no-match-password": "Les mots de passe ne correspondent pas",
|
"message.no-match-password": "Les mots de passe ne correspondent pas",
|
||||||
|
"message.no-results-found": "Aucun résultat n'a été trouvé.",
|
||||||
|
"message.no-team-websites": "Cette équipe n'a aucun site.",
|
||||||
"message.no-teams": "Vous n'avez pas créé d'équipe.",
|
"message.no-teams": "Vous n'avez pas créé d'équipe.",
|
||||||
"message.no-users": "Aucun utilisateur.",
|
"message.no-users": "Aucun utilisateur.",
|
||||||
|
"message.no-websites-configured": "Vous n'avez pas configuré de site.",
|
||||||
"message.page-not-found": "Page non trouvée.",
|
"message.page-not-found": "Page non trouvée.",
|
||||||
"message.reset-website": "Pour réinitialiser ce site, taper {confirmation} ci-dessous pour confirmer.",
|
"message.reset-website": "Pour réinitialiser ce site, taper {confirmation} ci-dessous pour confirmer.",
|
||||||
"message.reset-website-warning": "Toutes les statistiques pour ce site seront supprimées, mais votre code de suivi restera intact.",
|
"message.reset-website-warning": "Toutes les statistiques pour ce site seront supprimées, mais votre code de suivi restera intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Les statistiques de votre site sont accessibles publiquement sur cette URL :",
|
"message.share-url": "Les statistiques de votre site sont accessibles publiquement sur cette URL :",
|
||||||
"message.team-already-member": "Vous êtes déjà membre de cette équipe.",
|
"message.team-already-member": "Vous êtes déjà membre de cette équipe.",
|
||||||
"message.team-not-found": "Équipe non trouvée.",
|
"message.team-not-found": "Équipe non trouvée.",
|
||||||
|
"message.team-websites-info": "Les sites peuvent être vus par tout utilisateur dans l'équipe.",
|
||||||
"message.tracking-code": "Code de suivi",
|
"message.tracking-code": "Code de suivi",
|
||||||
"message.user-deleted": "Utilisateur supprimé.",
|
"message.user-deleted": "Utilisateur supprimé.",
|
||||||
"message.visitor-log": "Visiteur de {country} utilisant {browser} sur {os} {device}",
|
"message.visitor-log": "Visiteur de {country} utilisant {browser} sur {os} {device}"
|
||||||
"message.no-results-found": "Aucun résultat n'a été trouvé.",
|
|
||||||
"message.no-team-websites": "Cette équipe n'a aucun site.",
|
|
||||||
"message.no-websites-configured": "Vous n'avez pas configuré de site.",
|
|
||||||
"message.team-websites-info": "Les sites peuvent être vus par tout utilisateur dans l'équipe.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Engadir sitio web",
|
"label.add-website": "Engadir sitio web",
|
||||||
"label.admin": "Administradora",
|
"label.admin": "Administradora",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Todo",
|
"label.all": "Todo",
|
||||||
"label.all-time": "Sempre",
|
"label.all-time": "Sempre",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Tempo medio de visita",
|
"label.average-visit-time": "Tempo medio de visita",
|
||||||
"label.back": "Atrás",
|
"label.back": "Atrás",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Proporción de rebote",
|
"label.bounce-rate": "Proporción de rebote",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Navegadores",
|
"label.browsers": "Navegadores",
|
||||||
"label.cancel": "Cancelar",
|
"label.cancel": "Cancelar",
|
||||||
"label.change-password": "Mudar contrasinal",
|
"label.change-password": "Mudar contrasinal",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Confirmar contrasinal",
|
"label.confirm-password": "Confirmar contrasinal",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Países",
|
"label.countries": "Países",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Rango personalizado",
|
"label.custom-range": "Rango personalizado",
|
||||||
"label.dashboard": "Taboleiro",
|
"label.dashboard": "Taboleiro",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Rango temporal",
|
"label.date-range": "Rango temporal",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Rango temporal por defecto",
|
"label.default-date-range": "Rango temporal por defecto",
|
||||||
"label.delete": "Eliminar",
|
"label.delete": "Eliminar",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Eliminar sitio web",
|
"label.delete-website": "Eliminar sitio web",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Escritorio",
|
"label.desktop": "Escritorio",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Dispositivos",
|
"label.devices": "Dispositivos",
|
||||||
"label.dismiss": "Desbotar",
|
"label.dismiss": "Desbotar",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Dominio",
|
"label.domain": "Dominio",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Editar",
|
"label.edit": "Editar",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Eventos",
|
"label.events": "Eventos",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combinado",
|
"label.filter-combined": "Combinado",
|
||||||
"label.filter-raw": "Raw",
|
"label.filter-raw": "Raw",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Idioma",
|
"label.language": "Idioma",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Últimas {x} horas",
|
"label.last-hours": "Últimas {x} horas",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Acceder",
|
"label.login": "Acceder",
|
||||||
"label.logout": "Pechar sesión",
|
"label.logout": "Pechar sesión",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Móbil",
|
"label.mobile": "Móbil",
|
||||||
"label.more": "Máis",
|
"label.more": "Máis",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nome",
|
"label.name": "Nome",
|
||||||
"label.new-password": "Novo contrasinal",
|
"label.new-password": "Novo contrasinal",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Sistemas operativos",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Dona",
|
"label.owner": "Dona",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Vistas de páxinas",
|
"label.page-views": "Vistas de páxinas",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Páxinas",
|
"label.pages": "Páxinas",
|
||||||
"label.password": "Contrasinal",
|
"label.password": "Contrasinal",
|
||||||
"label.powered-by": "Funciona grazas a {name}",
|
"label.powered-by": "Funciona grazas a {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Agora mesmo",
|
"label.realtime": "Agora mesmo",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Orixes",
|
"label.referrers": "Orixes",
|
||||||
"label.refresh": "Actualizar",
|
"label.refresh": "Actualizar",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Requerido",
|
"label.required": "Requerido",
|
||||||
"label.reset": "Restablecer",
|
"label.reset": "Restablecer",
|
||||||
"label.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"label.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Gardar",
|
"label.save": "Gardar",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Axustes",
|
"label.settings": "Axustes",
|
||||||
"label.share-url": "Compartir URL",
|
"label.share-url": "Compartir URL",
|
||||||
"label.single-day": "Un só día",
|
"label.single-day": "Un só día",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tableta",
|
"label.tablet": "Tableta",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Decorado",
|
"label.theme": "Decorado",
|
||||||
"label.this-month": "Este mes",
|
"label.this-month": "Este mes",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Hoxe",
|
"label.today": "Hoxe",
|
||||||
"label.toggle-charts": "Activación das gráficas",
|
"label.toggle-charts": "Activación das gráficas",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Código de seguimento",
|
"label.tracking-code": "Código de seguimento",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Visitas únicas",
|
"label.unique-visitors": "Visitas únicas",
|
||||||
"label.unknown": "Descoñecido",
|
"label.unknown": "Descoñecido",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Identificador",
|
"label.username": "Identificador",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Ver detalles",
|
"label.view-details": "Ver detalles",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Sitios web",
|
"label.websites": "Sitios web",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} actual {x, plural, one {visitante} other {visitantes}}",
|
"message.active-users": "{x} actual {x, plural, one {visitante} other {visitantes}}",
|
||||||
"message.confirm-delete": "Tes a certeza de querer eliminar {target}?",
|
"message.confirm-delete": "Tes a certeza de querer eliminar {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Credenciais incorrectas.",
|
"message.incorrect-username-password": "Credenciais incorrectas.",
|
||||||
"message.invalid-domain": "Dominio non válido",
|
"message.invalid-domain": "Dominio non válido",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Sen datos dispoñibles.",
|
"message.no-data-available": "Sen datos dispoñibles.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Non concordan os contrasinais",
|
"message.no-match-password": "Non concordan os contrasinais",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Non tes sitios web configurados.",
|
||||||
"message.page-not-found": "Páxina non atopada.",
|
"message.page-not-found": "Páxina non atopada.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Vanse eliminar tódalas estatísticas deste sitio web, pero o código de seguimento permanecerá sen cambios.",
|
"message.reset-website-warning": "Vanse eliminar tódalas estatísticas deste sitio web, pero o código de seguimento permanecerá sen cambios.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Este é o URL da compartición pública de {target}.",
|
"message.share-url": "Este é o URL da compartición pública de {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Código de seguimento",
|
"message.tracking-code": "Código de seguimento",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}",
|
"message.visitor-log": "Visitante desde {country} usando {browser} en {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Non tes sitios web configurados.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "הוספת אתר",
|
"label.add-website": "הוספת אתר",
|
||||||
"label.admin": "מנהל",
|
"label.admin": "מנהל",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "הכל",
|
"label.all": "הכל",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "זמן ביקור ממוצע",
|
"label.average-visit-time": "זמן ביקור ממוצע",
|
||||||
"label.back": "חזרה",
|
"label.back": "חזרה",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce rate",
|
"label.bounce-rate": "Bounce rate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "דפדפנים",
|
"label.browsers": "דפדפנים",
|
||||||
"label.cancel": "ביטול",
|
"label.cancel": "ביטול",
|
||||||
"label.change-password": "שינוי סיסמה",
|
"label.change-password": "שינוי סיסמה",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "אישור סיסמה",
|
"label.confirm-password": "אישור סיסמה",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "מדינות",
|
"label.countries": "מדינות",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "טווח מותאם",
|
"label.custom-range": "טווח מותאם",
|
||||||
"label.dashboard": "דשבורד",
|
"label.dashboard": "דשבורד",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "טווח תאריכים",
|
"label.date-range": "טווח תאריכים",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "טווח תאריכים בברירת מחדל",
|
"label.default-date-range": "טווח תאריכים בברירת מחדל",
|
||||||
"label.delete": "הסרה",
|
"label.delete": "הסרה",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "הסרת אתר",
|
"label.delete-website": "הסרת אתר",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "דסקטופ",
|
"label.desktop": "דסקטופ",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "מכשירים",
|
"label.devices": "מכשירים",
|
||||||
"label.dismiss": "שיחרור",
|
"label.dismiss": "שיחרור",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "דומיין",
|
"label.domain": "דומיין",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "עריכה",
|
"label.edit": "עריכה",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "אירועים",
|
"label.events": "אירועים",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "משותף",
|
"label.filter-combined": "משותף",
|
||||||
"label.filter-raw": "גולמי",
|
"label.filter-raw": "גולמי",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "{x} שעות אחרונות",
|
"label.last-hours": "{x} שעות אחרונות",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "התחברות",
|
"label.login": "התחברות",
|
||||||
"label.logout": "התנתקות",
|
"label.logout": "התנתקות",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "מובייל",
|
"label.mobile": "מובייל",
|
||||||
"label.more": "עוד",
|
"label.more": "עוד",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "שם",
|
"label.name": "שם",
|
||||||
"label.new-password": "סיסמה חדשה",
|
"label.new-password": "סיסמה חדשה",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "מערכות הפעלה",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "צפיות בדפים",
|
"label.page-views": "צפיות בדפים",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "דפים",
|
"label.pages": "דפים",
|
||||||
"label.password": "סיסמה",
|
"label.password": "סיסמה",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "זמן אמת",
|
"label.realtime": "זמן אמת",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "מפנים",
|
"label.referrers": "מפנים",
|
||||||
"label.refresh": "רענון",
|
"label.refresh": "רענון",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "נדרש",
|
"label.required": "נדרש",
|
||||||
"label.reset": "איפוס",
|
"label.reset": "איפוס",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "שמירה",
|
"label.save": "שמירה",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "הגדרות",
|
"label.settings": "הגדרות",
|
||||||
"label.share-url": "שיתוף URL",
|
"label.share-url": "שיתוף URL",
|
||||||
"label.single-day": "יום בודד",
|
"label.single-day": "יום בודד",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "טאבלט",
|
"label.tablet": "טאבלט",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "החודש",
|
"label.this-month": "החודש",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "היום",
|
"label.today": "היום",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "קוד מעקב",
|
"label.tracking-code": "קוד מעקב",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "מבקרים ייחודיים",
|
"label.unique-visitors": "מבקרים ייחודיים",
|
||||||
"label.unknown": "לא ידוע",
|
"label.unknown": "לא ידוע",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "שם משתמש",
|
"label.username": "שם משתמש",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "פרטים נוספים",
|
"label.view-details": "פרטים נוספים",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "אתרים",
|
"label.websites": "אתרים",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} נוכחיים {x, plural, one {מבקר} other {מבקרים}}",
|
"message.active-users": "{x} נוכחיים {x, plural, one {מבקר} other {מבקרים}}",
|
||||||
"message.confirm-delete": "האם באמת למחוק את {target}?",
|
"message.confirm-delete": "האם באמת למחוק את {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "שם משתמש או סיסמה לא נכונים",
|
"message.incorrect-username-password": "שם משתמש או סיסמה לא נכונים",
|
||||||
"message.invalid-domain": "דומיין לא תקין",
|
"message.invalid-domain": "דומיין לא תקין",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "אין מידע זמין",
|
"message.no-data-available": "אין מידע זמין",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "סיסמאות לא תואמות",
|
"message.no-match-password": "סיסמאות לא תואמות",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "לא מוגדרים אתרים",
|
||||||
"message.page-not-found": "דף לא נמצא",
|
"message.page-not-found": "דף לא נמצא",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "זהו URL ציבורי עבור {target}",
|
"message.share-url": "זהו URL ציבורי עבור {target}",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "קוד מעקב",
|
"message.tracking-code": "קוד מעקב",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "מבקר ממדינת {country} משתמבש בדפדפן {browser} ב-{os} {device}",
|
"message.visitor-log": "מבקר ממדינת {country} משתמבש בדפדפן {browser} ב-{os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "לא מוגדרים אתרים",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "वेबसाइट",
|
"label.add-website": "वेबसाइट",
|
||||||
"label.admin": "प्रशासक",
|
"label.admin": "प्रशासक",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "सब",
|
"label.all": "सब",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "औसत दृश्य समय",
|
"label.average-visit-time": "औसत दृश्य समय",
|
||||||
"label.back": "पीछे",
|
"label.back": "पीछे",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "उछाल दर",
|
"label.bounce-rate": "उछाल दर",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "वेब ब्राउज़र",
|
"label.browsers": "वेब ब्राउज़र",
|
||||||
"label.cancel": "रद्द करें",
|
"label.cancel": "रद्द करें",
|
||||||
"label.change-password": "पासवर्ड बदलें",
|
"label.change-password": "पासवर्ड बदलें",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "पासवर्ड की पुष्टि कीजिये",
|
"label.confirm-password": "पासवर्ड की पुष्टि कीजिये",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "देश",
|
"label.countries": "देश",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "कस्टम रेंज",
|
"label.custom-range": "कस्टम रेंज",
|
||||||
"label.dashboard": "नियंत्रण-पट्ट",
|
"label.dashboard": "नियंत्रण-पट्ट",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "तिथि सीमा",
|
"label.date-range": "तिथि सीमा",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "डिफ़ॉल्ट तिथि सीमा",
|
"label.default-date-range": "डिफ़ॉल्ट तिथि सीमा",
|
||||||
"label.delete": "खाता हटाएं",
|
"label.delete": "खाता हटाएं",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "वेबसाइट हटाएं",
|
"label.delete-website": "वेबसाइट हटाएं",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "डेस्कटॉप",
|
"label.desktop": "डेस्कटॉप",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "उपकरण",
|
"label.devices": "उपकरण",
|
||||||
"label.dismiss": "खारिज कीजिये",
|
"label.dismiss": "खारिज कीजिये",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "डोमेन",
|
"label.domain": "डोमेन",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "संपादित करें",
|
"label.edit": "संपादित करें",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "स्पर्धाएँ",
|
"label.events": "स्पर्धाएँ",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "संयुक्त",
|
"label.filter-combined": "संयुक्त",
|
||||||
"label.filter-raw": "रॉ",
|
"label.filter-raw": "रॉ",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "पिछले {x} घंटे",
|
"label.last-hours": "पिछले {x} घंटे",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "लॉग इन",
|
"label.login": "लॉग इन",
|
||||||
"label.logout": "लॉग आउट",
|
"label.logout": "लॉग आउट",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "मोबाइल फोन",
|
"label.mobile": "मोबाइल फोन",
|
||||||
"label.more": "और",
|
"label.more": "और",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "नाम",
|
"label.name": "नाम",
|
||||||
"label.new-password": "नया पासवर्ड",
|
"label.new-password": "नया पासवर्ड",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "ऑपरेटिंग सिस्टम",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "पृष्ठ दृश्य",
|
"label.page-views": "पृष्ठ दृश्य",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "पृष्ठों",
|
"label.pages": "पृष्ठों",
|
||||||
"label.password": "पासवर्ड",
|
"label.password": "पासवर्ड",
|
||||||
"label.powered-by": "{name} द्वारा संचालित",
|
"label.powered-by": "{name} द्वारा संचालित",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "वास्तव काल",
|
"label.realtime": "वास्तव काल",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "सन्दर्भदाता",
|
"label.referrers": "सन्दर्भदाता",
|
||||||
"label.refresh": "रिफ्रेश",
|
"label.refresh": "रिफ्रेश",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "अपेक्षित",
|
"label.required": "अपेक्षित",
|
||||||
"label.reset": "रीसेट",
|
"label.reset": "रीसेट",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "सहेजें",
|
"label.save": "सहेजें",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "समायोजन",
|
"label.settings": "समायोजन",
|
||||||
"label.share-url": "यूआरएल साझा करें",
|
"label.share-url": "यूआरएल साझा करें",
|
||||||
"label.single-day": "एक दिन",
|
"label.single-day": "एक दिन",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "टैबलेट",
|
"label.tablet": "टैबलेट",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "इस महीने",
|
"label.this-month": "इस महीने",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "आज",
|
"label.today": "आज",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "ट्रैकिंग कोड",
|
"label.tracking-code": "ट्रैकिंग कोड",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "अद्वितीय आगंतुकों",
|
"label.unique-visitors": "अद्वितीय आगंतुकों",
|
||||||
"label.unknown": "अज्ञात",
|
"label.unknown": "अज्ञात",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "उपयोगकर्ता नाम",
|
"label.username": "उपयोगकर्ता नाम",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "विवरण देखें",
|
"label.view-details": "विवरण देखें",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "वेबसाइटों",
|
"label.websites": "वेबसाइटों",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} मौजूद {x, plural, one {आगंतुक} other {आगंतुकों}}",
|
"message.active-users": "{x} मौजूद {x, plural, one {आगंतुक} other {आगंतुकों}}",
|
||||||
"message.confirm-delete": "क्या आप वाकई में {target} हटाना चाहते हैं?",
|
"message.confirm-delete": "क्या आप वाकई में {target} हटाना चाहते हैं?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "ग़लत उपयोगकर्ता नाम / पासवर्ड।",
|
"message.incorrect-username-password": "ग़लत उपयोगकर्ता नाम / पासवर्ड।",
|
||||||
"message.invalid-domain": "अमान्य डोमेन",
|
"message.invalid-domain": "अमान्य डोमेन",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "कोई डेटा उपलब्ध नहीं है।",
|
"message.no-data-available": "कोई डेटा उपलब्ध नहीं है।",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "पासवर्ड मेल नहीं खाते",
|
"message.no-match-password": "पासवर्ड मेल नहीं खाते",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "आपके पास कोई वेबसाइट कॉन्फ़िगर नहीं है।",
|
||||||
"message.page-not-found": "पृष्ठ नहीं मिला।",
|
"message.page-not-found": "पृष्ठ नहीं मिला।",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "यह {target} के लिए सार्वजनिक रूप से साझा किया गया URL है।",
|
"message.share-url": "यह {target} के लिए सार्वजनिक रूप से साझा किया गया URL है।",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "ट्रैकिंग कोड",
|
"message.tracking-code": "ट्रैकिंग कोड",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "{country} का आगंतुक, जो {browser} का उपयोग करता है, {os} यन्त्र पर",
|
"message.visitor-log": "{country} का आगंतुक, जो {browser} का उपयोग करता है, {os} यन्त्र पर"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "आपके पास कोई वेबसाइट कॉन्फ़िगर नहीं है।",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Dodaj web stranicu",
|
"label.add-website": "Dodaj web stranicu",
|
||||||
"label.admin": "Administrator",
|
"label.admin": "Administrator",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Sve",
|
"label.all": "Sve",
|
||||||
"label.all-time": "Svo vrijeme",
|
"label.all-time": "Svo vrijeme",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Average visit time",
|
"label.average-visit-time": "Average visit time",
|
||||||
"label.back": "Natrag ",
|
"label.back": "Natrag ",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Bounce rate",
|
"label.bounce-rate": "Bounce rate",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Browsers",
|
"label.browsers": "Browsers",
|
||||||
"label.cancel": "Odustani",
|
"label.cancel": "Odustani",
|
||||||
"label.change-password": "Promijeni lozinku",
|
"label.change-password": "Promijeni lozinku",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Potvrdi lozinku",
|
"label.confirm-password": "Potvrdi lozinku",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Countries",
|
"label.countries": "Countries",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Prilagođeni raspon",
|
"label.custom-range": "Prilagođeni raspon",
|
||||||
"label.dashboard": "Nadzorna ploča",
|
"label.dashboard": "Nadzorna ploča",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Raspon datuma",
|
"label.date-range": "Raspon datuma",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Zadani datumski raspon",
|
"label.default-date-range": "Zadani datumski raspon",
|
||||||
"label.delete": "Obriši",
|
"label.delete": "Obriši",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Obriši web stranicu",
|
"label.delete-website": "Obriši web stranicu",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Devices",
|
"label.devices": "Devices",
|
||||||
"label.dismiss": "Odbaci",
|
"label.dismiss": "Odbaci",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domena",
|
"label.domain": "Domena",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Uredi",
|
"label.edit": "Uredi",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Podaci događaja",
|
"label.event-data": "Podaci događaja",
|
||||||
"label.events": "Events",
|
"label.events": "Events",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Combined",
|
"label.filter-combined": "Combined",
|
||||||
"label.filter-raw": "Raw",
|
"label.filter-raw": "Raw",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Jezik",
|
"label.language": "Jezik",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Zadnjih {x} sati",
|
"label.last-hours": "Zadnjih {x} sati",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Prijava",
|
"label.login": "Prijava",
|
||||||
"label.logout": "Odjava",
|
"label.logout": "Odjava",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Mobile",
|
"label.mobile": "Mobile",
|
||||||
"label.more": "Više",
|
"label.more": "Više",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Ime",
|
"label.name": "Ime",
|
||||||
"label.new-password": "Nova lozinka",
|
"label.new-password": "Nova lozinka",
|
||||||
"label.none": "Ništa",
|
"label.none": "Ništa",
|
||||||
"label.operating-systems": "Operating systems",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Vlasnik",
|
"label.owner": "Vlasnik",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Page views",
|
"label.page-views": "Page views",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Pages",
|
"label.pages": "Pages",
|
||||||
"label.password": "Lozinka",
|
"label.password": "Lozinka",
|
||||||
"label.powered-by": "Powered by {name}",
|
"label.powered-by": "Powered by {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Stvarno vrijeme",
|
"label.realtime": "Stvarno vrijeme",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Referrers",
|
"label.referrers": "Referrers",
|
||||||
"label.refresh": "Osvježi",
|
"label.refresh": "Osvježi",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Potrebna",
|
"label.required": "Potrebna",
|
||||||
"label.reset": "Resetirati",
|
"label.reset": "Resetirati",
|
||||||
"label.reset-website": "Resetirati web stranicu",
|
"label.reset-website": "Resetirati web stranicu",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Spremi",
|
"label.save": "Spremi",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Postavke",
|
"label.settings": "Postavke",
|
||||||
"label.share-url": "Podijeli poveznicu",
|
"label.share-url": "Podijeli poveznicu",
|
||||||
"label.single-day": "Jedan dan",
|
"label.single-day": "Jedan dan",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Ovaj mjesec",
|
"label.this-month": "Ovaj mjesec",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Danas",
|
"label.today": "Danas",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Kod za praćenje",
|
"label.tracking-code": "Kod za praćenje",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Unique visitors",
|
"label.unique-visitors": "Unique visitors",
|
||||||
"label.unknown": "Nepoznato",
|
"label.unknown": "Nepoznato",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Korisničko ime",
|
"label.username": "Korisničko ime",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Pogledaj detalje",
|
"label.view-details": "Pogledaj detalje",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Web stranice",
|
"label.websites": "Web stranice",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Jučer",
|
"label.yesterday": "Jučer",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} Trenutno {x, plural, one {posjetitelj} other {posjetitelja}}",
|
"message.active-users": "{x} Trenutno {x, plural, one {posjetitelj} other {posjetitelja}}",
|
||||||
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
|
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
|
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
|
||||||
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
"message.invalid-domain": "Invalid domain. Do not include http/https.",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Nema dostupnih podataka.",
|
"message.no-data-available": "Nema dostupnih podataka.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Passwords do not match.",
|
"message.no-match-password": "Passwords do not match.",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "You do not have any websites configured.",
|
||||||
"message.page-not-found": "Stranica nije pronađena.",
|
"message.page-not-found": "Stranica nije pronađena.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your settings will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Ovo je javno dijeljena poveznica za {target}.",
|
"message.share-url": "Ovo je javno dijeljena poveznica za {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
"message.tracking-code": "To track stats for this website, place the following code in the <head>...</head> section of your HTML.",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}",
|
"message.visitor-log": "Visitor from {country} using {browser} on {os} {device}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "You do not have any websites configured.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Weboldal hozzáadása",
|
"label.add-website": "Weboldal hozzáadása",
|
||||||
"label.admin": "Adminisztrátor",
|
"label.admin": "Adminisztrátor",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Összes",
|
"label.all": "Összes",
|
||||||
"label.all-time": "All time",
|
"label.all-time": "All time",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Átlagos látogatási idő",
|
"label.average-visit-time": "Átlagos látogatási idő",
|
||||||
"label.back": "Vissza",
|
"label.back": "Vissza",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Visszafordulási arány",
|
"label.bounce-rate": "Visszafordulási arány",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Böngészők",
|
"label.browsers": "Böngészők",
|
||||||
"label.cancel": "Mégsem",
|
"label.cancel": "Mégsem",
|
||||||
"label.change-password": "Jelszó módosítása",
|
"label.change-password": "Jelszó módosítása",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Jelszó megerősítése",
|
"label.confirm-password": "Jelszó megerősítése",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Országok",
|
"label.countries": "Országok",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Egyedi tartomány",
|
"label.custom-range": "Egyedi tartomány",
|
||||||
"label.dashboard": "Áttekintés",
|
"label.dashboard": "Áttekintés",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Időintervallum",
|
"label.date-range": "Időintervallum",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Alapértelmezett időintervallum",
|
"label.default-date-range": "Alapértelmezett időintervallum",
|
||||||
"label.delete": "Eltávolítás",
|
"label.delete": "Eltávolítás",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Weboldal eltávolítása",
|
"label.delete-website": "Weboldal eltávolítása",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Asztali számítógép",
|
"label.desktop": "Asztali számítógép",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Eszközök",
|
"label.devices": "Eszközök",
|
||||||
"label.dismiss": "Mellőzés",
|
"label.dismiss": "Mellőzés",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Módosítás",
|
"label.edit": "Módosítás",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Események",
|
"label.events": "Események",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Összevont",
|
"label.filter-combined": "Összevont",
|
||||||
"label.filter-raw": "Nyers",
|
"label.filter-raw": "Nyers",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Language",
|
"label.language": "Language",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "Legutóbbi {x} óra",
|
"label.last-hours": "Legutóbbi {x} óra",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Bejelentkezés",
|
"label.login": "Bejelentkezés",
|
||||||
"label.logout": "Kijelentkezés",
|
"label.logout": "Kijelentkezés",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Telefon",
|
"label.mobile": "Telefon",
|
||||||
"label.more": "Bővebben",
|
"label.more": "Bővebben",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Név",
|
"label.name": "Név",
|
||||||
"label.new-password": "Új jelszó",
|
"label.new-password": "Új jelszó",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Operációs rendszerek",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Owner",
|
"label.owner": "Owner",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Oldalmegtekintések",
|
"label.page-views": "Oldalmegtekintések",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Oldalak",
|
"label.pages": "Oldalak",
|
||||||
"label.password": "Jelszó",
|
"label.password": "Jelszó",
|
||||||
"label.powered-by": "Működteti az {name}",
|
"label.powered-by": "Működteti az {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Valós idejű",
|
"label.realtime": "Valós idejű",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Hivatkozók",
|
"label.referrers": "Hivatkozók",
|
||||||
"label.refresh": "Frissítés",
|
"label.refresh": "Frissítés",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Kötelező",
|
"label.required": "Kötelező",
|
||||||
"label.reset": "Visszaállítás",
|
"label.reset": "Visszaállítás",
|
||||||
"label.reset-website": "Reset statistics",
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Mentés",
|
"label.save": "Mentés",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Beállítások",
|
"label.settings": "Beállítások",
|
||||||
"label.share-url": "URL megosztása",
|
"label.share-url": "URL megosztása",
|
||||||
"label.single-day": "Egy nap",
|
"label.single-day": "Egy nap",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Táblagép",
|
"label.tablet": "Táblagép",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Theme",
|
"label.theme": "Theme",
|
||||||
"label.this-month": "Ezen hónap",
|
"label.this-month": "Ezen hónap",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Ma",
|
"label.today": "Ma",
|
||||||
"label.toggle-charts": "Toggle charts",
|
"label.toggle-charts": "Toggle charts",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Követési kód",
|
"label.tracking-code": "Követési kód",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Egyedi látogatók",
|
"label.unique-visitors": "Egyedi látogatók",
|
||||||
"label.unknown": "Ismeretlen",
|
"label.unknown": "Ismeretlen",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Felhasználónév",
|
"label.username": "Felhasználónév",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Részletek",
|
"label.view-details": "Részletek",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Weboldalak",
|
"label.websites": "Weboldalak",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} {x, plural, one {látogató} other {latógató}} jelenleg",
|
"message.active-users": "{x} {x, plural, one {látogató} other {latógató}} jelenleg",
|
||||||
"message.confirm-delete": "Biztos, hogy törölni szeretnéd {target} elemet?",
|
"message.confirm-delete": "Biztos, hogy törölni szeretnéd {target} elemet?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Érvénytelen felhasználónév/jelszó.",
|
"message.incorrect-username-password": "Érvénytelen felhasználónév/jelszó.",
|
||||||
"message.invalid-domain": "Érvénytelen domain",
|
"message.invalid-domain": "Érvénytelen domain",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Nincs rendelkezésre álló adat.",
|
"message.no-data-available": "Nincs rendelkezésre álló adat.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "A jelszavak nem egyeznek",
|
"message.no-match-password": "A jelszavak nem egyeznek",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Még nem állítottál be egyetlen weboldalt sem.",
|
||||||
"message.page-not-found": "Oldal nem található.",
|
"message.page-not-found": "Oldal nem található.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
"message.reset-website-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "{target} nyilvánosan megosztott URL címe.",
|
"message.share-url": "{target} nyilvánosan megosztott URL címe.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Követési kód",
|
"message.tracking-code": "Követési kód",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Látógató {country} területéről, {os} {device} eszközön, {browser} böngészőből.",
|
"message.visitor-log": "Látógató {country} területéről, {os} {device} eszközön, {browser} böngészőből."
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Még nem állítottál be egyetlen weboldalt sem.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,30 @@
|
|||||||
"label.add-description": "Add description",
|
"label.add-description": "Add description",
|
||||||
"label.add-website": "Tambah situs web",
|
"label.add-website": "Tambah situs web",
|
||||||
"label.admin": "Pengelola",
|
"label.admin": "Pengelola",
|
||||||
|
"label.after": "After",
|
||||||
"label.all": "Semua",
|
"label.all": "Semua",
|
||||||
"label.all-time": "Semua waktu",
|
"label.all-time": "Semua waktu",
|
||||||
"label.analytics": "Analytics",
|
"label.analytics": "Analytics",
|
||||||
|
"label.average": "Average",
|
||||||
"label.average-visit-time": "Waktu kunjungan rata-rata",
|
"label.average-visit-time": "Waktu kunjungan rata-rata",
|
||||||
"label.back": "Kembali",
|
"label.back": "Kembali",
|
||||||
|
"label.before": "Before",
|
||||||
"label.bounce-rate": "Rasio pentalan",
|
"label.bounce-rate": "Rasio pentalan",
|
||||||
|
"label.breakdown": "Breakdown",
|
||||||
|
"label.browser": "Browser",
|
||||||
"label.browsers": "Peramban",
|
"label.browsers": "Peramban",
|
||||||
"label.cancel": "Batal",
|
"label.cancel": "Batal",
|
||||||
"label.change-password": "Ganti kata sandi",
|
"label.change-password": "Ganti kata sandi",
|
||||||
"label.cities": "Cities",
|
"label.cities": "Cities",
|
||||||
|
"label.city": "City",
|
||||||
"label.clear-all": "Clear all",
|
"label.clear-all": "Clear all",
|
||||||
"label.confirm": "Confirm",
|
"label.confirm": "Confirm",
|
||||||
"label.confirm-password": "Konfirmasi kata sandi",
|
"label.confirm-password": "Konfirmasi kata sandi",
|
||||||
|
"label.contains": "Contains",
|
||||||
"label.continue": "Continue",
|
"label.continue": "Continue",
|
||||||
"label.countries": "Negara",
|
"label.countries": "Negara",
|
||||||
|
"label.country": "Country",
|
||||||
|
"label.create-report": "Create report",
|
||||||
"label.create-team": "Create team",
|
"label.create-team": "Create team",
|
||||||
"label.create-user": "Create user",
|
"label.create-user": "Create user",
|
||||||
"label.created": "Created",
|
"label.created": "Created",
|
||||||
@ -28,16 +37,21 @@
|
|||||||
"label.custom-range": "Rentang khusus",
|
"label.custom-range": "Rentang khusus",
|
||||||
"label.dashboard": "Dasbor",
|
"label.dashboard": "Dasbor",
|
||||||
"label.data": "Data",
|
"label.data": "Data",
|
||||||
|
"label.date": "Date",
|
||||||
"label.date-range": "Rentang tanggal",
|
"label.date-range": "Rentang tanggal",
|
||||||
|
"label.day": "Day",
|
||||||
"label.default-date-range": "Rentang tanggal bawaan",
|
"label.default-date-range": "Rentang tanggal bawaan",
|
||||||
"label.delete": "Hapus",
|
"label.delete": "Hapus",
|
||||||
"label.delete-team": "Delete team",
|
"label.delete-team": "Delete team",
|
||||||
"label.delete-user": "Delete user",
|
"label.delete-user": "Delete user",
|
||||||
"label.delete-website": "Hapus situs web",
|
"label.delete-website": "Hapus situs web",
|
||||||
|
"label.description": "Description",
|
||||||
"label.desktop": "Desktop",
|
"label.desktop": "Desktop",
|
||||||
"label.details": "Details",
|
"label.details": "Details",
|
||||||
|
"label.device": "Device",
|
||||||
"label.devices": "Perangkat",
|
"label.devices": "Perangkat",
|
||||||
"label.dismiss": "Tutup",
|
"label.dismiss": "Tutup",
|
||||||
|
"label.does-not-contain": "Does not contain",
|
||||||
"label.domain": "Domain",
|
"label.domain": "Domain",
|
||||||
"label.dropoff": "Dropoff",
|
"label.dropoff": "Dropoff",
|
||||||
"label.edit": "Sunting",
|
"label.edit": "Sunting",
|
||||||
@ -46,12 +60,20 @@
|
|||||||
"label.event": "Event",
|
"label.event": "Event",
|
||||||
"label.event-data": "Event data",
|
"label.event-data": "Event data",
|
||||||
"label.events": "Perihal",
|
"label.events": "Perihal",
|
||||||
|
"label.false": "False",
|
||||||
"label.field": "Field",
|
"label.field": "Field",
|
||||||
"label.fields": "Fields",
|
"label.fields": "Fields",
|
||||||
"label.filter-combined": "Gabungan",
|
"label.filter-combined": "Gabungan",
|
||||||
"label.filter-raw": "Mentah",
|
"label.filter-raw": "Mentah",
|
||||||
|
"label.filters": "Filters",
|
||||||
"label.funnel": "Funnel",
|
"label.funnel": "Funnel",
|
||||||
|
"label.greater-than": "Greater than",
|
||||||
|
"label.greater-than-equals": "Greater than or equals",
|
||||||
"label.insights": "Insights",
|
"label.insights": "Insights",
|
||||||
|
"label.is": "Is",
|
||||||
|
"label.is-not": "Is not",
|
||||||
|
"label.is-not-set": "Is not set",
|
||||||
|
"label.is-set": "Is set",
|
||||||
"label.join": "Join",
|
"label.join": "Join",
|
||||||
"label.join-team": "Join team",
|
"label.join-team": "Join team",
|
||||||
"label.language": "Bahasa",
|
"label.language": "Bahasa",
|
||||||
@ -61,17 +83,25 @@
|
|||||||
"label.last-hours": "{x} jam terakhir",
|
"label.last-hours": "{x} jam terakhir",
|
||||||
"label.leave": "Leave",
|
"label.leave": "Leave",
|
||||||
"label.leave-team": "Leave team",
|
"label.leave-team": "Leave team",
|
||||||
|
"label.less-than": "Less than",
|
||||||
|
"label.less-than-equals": "Less than or equals",
|
||||||
"label.login": "Masuk",
|
"label.login": "Masuk",
|
||||||
"label.logout": "Keluar",
|
"label.logout": "Keluar",
|
||||||
|
"label.max": "Max",
|
||||||
"label.members": "Members",
|
"label.members": "Members",
|
||||||
|
"label.min": "Min",
|
||||||
"label.mobile": "Ponsel",
|
"label.mobile": "Ponsel",
|
||||||
"label.more": "Lebih banyak",
|
"label.more": "Lebih banyak",
|
||||||
|
"label.my-websites": "My websites",
|
||||||
"label.name": "Nama",
|
"label.name": "Nama",
|
||||||
"label.new-password": "Kata sandi baru",
|
"label.new-password": "Kata sandi baru",
|
||||||
"label.none": "None",
|
"label.none": "None",
|
||||||
"label.operating-systems": "Sistem Operasi",
|
"label.os": "OS",
|
||||||
|
"label.overview": "Overview",
|
||||||
"label.owner": "Pemilik",
|
"label.owner": "Pemilik",
|
||||||
|
"label.page-of": "Page {current} of {total}",
|
||||||
"label.page-views": "Tampilan halaman",
|
"label.page-views": "Tampilan halaman",
|
||||||
|
"label.pageTitle": "Page title",
|
||||||
"label.pages": "Halaman",
|
"label.pages": "Halaman",
|
||||||
"label.password": "Kata sandi",
|
"label.password": "Kata sandi",
|
||||||
"label.powered-by": "Didukung oleh {name}",
|
"label.powered-by": "Didukung oleh {name}",
|
||||||
@ -80,15 +110,18 @@
|
|||||||
"label.query": "Query",
|
"label.query": "Query",
|
||||||
"label.query-parameters": "Query parameters",
|
"label.query-parameters": "Query parameters",
|
||||||
"label.realtime": "Waktu nyata",
|
"label.realtime": "Waktu nyata",
|
||||||
|
"label.referrer": "Referrer",
|
||||||
"label.referrers": "Perujuk",
|
"label.referrers": "Perujuk",
|
||||||
"label.refresh": "Segarkan",
|
"label.refresh": "Segarkan",
|
||||||
"label.regenerate": "Regenerate",
|
"label.regenerate": "Regenerate",
|
||||||
|
"label.region": "Region",
|
||||||
"label.regions": "Regions",
|
"label.regions": "Regions",
|
||||||
"label.remove": "Remove",
|
"label.remove": "Remove",
|
||||||
"label.reports": "Reports",
|
"label.reports": "Reports",
|
||||||
"label.required": "Wajib",
|
"label.required": "Wajib",
|
||||||
"label.reset": "Atur ulang",
|
"label.reset": "Atur ulang",
|
||||||
"label.reset-website": "Atur ulang statistik",
|
"label.reset-website": "Atur ulang statistik",
|
||||||
|
"label.retention": "Retention",
|
||||||
"label.role": "Role",
|
"label.role": "Role",
|
||||||
"label.run-query": "Run query",
|
"label.run-query": "Run query",
|
||||||
"label.save": "Simpan",
|
"label.save": "Simpan",
|
||||||
@ -99,12 +132,15 @@
|
|||||||
"label.settings": "Pengaturan",
|
"label.settings": "Pengaturan",
|
||||||
"label.share-url": "Bagikan URL",
|
"label.share-url": "Bagikan URL",
|
||||||
"label.single-day": "Sehari",
|
"label.single-day": "Sehari",
|
||||||
|
"label.sum": "Sum",
|
||||||
"label.tablet": "Tablet",
|
"label.tablet": "Tablet",
|
||||||
"label.team": "Team",
|
"label.team": "Team",
|
||||||
"label.team-guest": "Team guest",
|
"label.team-guest": "Team guest",
|
||||||
"label.team-id": "Team ID",
|
"label.team-id": "Team ID",
|
||||||
"label.team-member": "Team member",
|
"label.team-member": "Team member",
|
||||||
|
"label.team-name": "Team name",
|
||||||
"label.team-owner": "Team owner",
|
"label.team-owner": "Team owner",
|
||||||
|
"label.team-websites": "Team websites",
|
||||||
"label.teams": "Teams",
|
"label.teams": "Teams",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Bulan ini",
|
"label.this-month": "Bulan ini",
|
||||||
@ -114,14 +150,21 @@
|
|||||||
"label.title": "Title",
|
"label.title": "Title",
|
||||||
"label.today": "Hari ini",
|
"label.today": "Hari ini",
|
||||||
"label.toggle-charts": "Buka grafik",
|
"label.toggle-charts": "Buka grafik",
|
||||||
|
"label.total": "Total",
|
||||||
|
"label.total-records": "Total records",
|
||||||
"label.tracking-code": "Kode lacak",
|
"label.tracking-code": "Kode lacak",
|
||||||
|
"label.true": "True",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unique": "Unique",
|
||||||
"label.unique-visitors": "Pengunjung unik",
|
"label.unique-visitors": "Pengunjung unik",
|
||||||
"label.unknown": "Tidak diketahui",
|
"label.unknown": "Tidak diketahui",
|
||||||
|
"label.untitled": "Untitled",
|
||||||
"label.url": "URL",
|
"label.url": "URL",
|
||||||
"label.urls": "URLs",
|
"label.urls": "URLs",
|
||||||
"label.user": "User",
|
"label.user": "User",
|
||||||
"label.username": "Nama pengguna",
|
"label.username": "Nama pengguna",
|
||||||
"label.users": "Users",
|
"label.users": "Users",
|
||||||
|
"label.value": "Value",
|
||||||
"label.view": "View",
|
"label.view": "View",
|
||||||
"label.view-details": "Lihat Detil",
|
"label.view-details": "Lihat Detil",
|
||||||
"label.view-only": "View only",
|
"label.view-only": "View only",
|
||||||
@ -132,33 +175,6 @@
|
|||||||
"label.websites": "Situs web",
|
"label.websites": "Situs web",
|
||||||
"label.window": "Window",
|
"label.window": "Window",
|
||||||
"label.yesterday": "Yesterday",
|
"label.yesterday": "Yesterday",
|
||||||
"labels.after": "After",
|
|
||||||
"labels.average": "Average",
|
|
||||||
"labels.before": "Before",
|
|
||||||
"labels.breakdown": "Breakdown",
|
|
||||||
"labels.contains": "Contains",
|
|
||||||
"labels.create-report": "Create report",
|
|
||||||
"labels.description": "Description",
|
|
||||||
"labels.does-not-contain": "Does not contain",
|
|
||||||
"labels.does-not-equal": "Does not equal",
|
|
||||||
"labels.equals": "Equals",
|
|
||||||
"labels.false": "False",
|
|
||||||
"labels.filters": "Filters",
|
|
||||||
"labels.greater-than": "Greater than",
|
|
||||||
"labels.greater-than-equals": "Greater than or equals",
|
|
||||||
"labels.less-than": "Less than",
|
|
||||||
"labels.less-than-equals": "Less than or equals",
|
|
||||||
"labels.max": "Max",
|
|
||||||
"labels.min": "Min",
|
|
||||||
"labels.overview": "Overview",
|
|
||||||
"labels.sum": "Sum",
|
|
||||||
"labels.total": "Total",
|
|
||||||
"labels.total-records": "Total records",
|
|
||||||
"labels.true": "True",
|
|
||||||
"labels.type": "Type",
|
|
||||||
"labels.unique": "Unique",
|
|
||||||
"labels.untitled": "Untitled",
|
|
||||||
"labels.value": "Value",
|
|
||||||
"message.active-users": "{x} pengunjung saat ini",
|
"message.active-users": "{x} pengunjung saat ini",
|
||||||
"message.confirm-delete": "Apakah kamu yakin ingin menghapus {target}?",
|
"message.confirm-delete": "Apakah kamu yakin ingin menghapus {target}?",
|
||||||
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
"message.confirm-leave": "Are you sure you want to leave {target}?",
|
||||||
@ -172,11 +188,15 @@
|
|||||||
"message.incorrect-username-password": "Nama pengguna/kata sandi salah.",
|
"message.incorrect-username-password": "Nama pengguna/kata sandi salah.",
|
||||||
"message.invalid-domain": "Domain tidak valid",
|
"message.invalid-domain": "Domain tidak valid",
|
||||||
"message.min-password-length": "Minimum length of {n} characters",
|
"message.min-password-length": "Minimum length of {n} characters",
|
||||||
|
"message.new-version-available": "A new version of Umami {version} is available!",
|
||||||
"message.no-data-available": "Tidak ada data.",
|
"message.no-data-available": "Tidak ada data.",
|
||||||
"message.no-event-data": "No event data is available.",
|
"message.no-event-data": "No event data is available.",
|
||||||
"message.no-match-password": "Kata sandi tidak cocok",
|
"message.no-match-password": "Kata sandi tidak cocok",
|
||||||
|
"message.no-results-found": "No results were found.",
|
||||||
|
"message.no-team-websites": "This team does not have any websites.",
|
||||||
"message.no-teams": "You have not created any teams.",
|
"message.no-teams": "You have not created any teams.",
|
||||||
"message.no-users": "There are no users.",
|
"message.no-users": "There are no users.",
|
||||||
|
"message.no-websites-configured": "Anda tidak memiliki situs web yang dikonfigurasi.",
|
||||||
"message.page-not-found": "Halaman tidak ditemukan.",
|
"message.page-not-found": "Halaman tidak ditemukan.",
|
||||||
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
|
||||||
"message.reset-website-warning": "Semua statistik pada website ini akan dihapus, tetapi kode lacak akan tetap terpasang",
|
"message.reset-website-warning": "Semua statistik pada website ini akan dihapus, tetapi kode lacak akan tetap terpasang",
|
||||||
@ -184,12 +204,8 @@
|
|||||||
"message.share-url": "Ini adalah URL yang dibagikan secara publik untuk {target}.",
|
"message.share-url": "Ini adalah URL yang dibagikan secara publik untuk {target}.",
|
||||||
"message.team-already-member": "You are already a member of the team.",
|
"message.team-already-member": "You are already a member of the team.",
|
||||||
"message.team-not-found": "Team not found.",
|
"message.team-not-found": "Team not found.",
|
||||||
|
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
||||||
"message.tracking-code": "Kode lacak",
|
"message.tracking-code": "Kode lacak",
|
||||||
"message.user-deleted": "User deleted.",
|
"message.user-deleted": "User deleted.",
|
||||||
"message.visitor-log": "Pengunjung dari {country} dengan {browser} di {device} {os}",
|
"message.visitor-log": "Pengunjung dari {country} dengan {browser} di {device} {os}"
|
||||||
"message.no-results-found": "No results were found.",
|
|
||||||
"message.no-team-websites": "This team does not have any websites.",
|
|
||||||
"message.no-websites-configured": "Anda tidak memiliki situs web yang dikonfigurasi.",
|
|
||||||
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
|
|
||||||
"message.new-version-available": "A new version of Umami {version} is available!"
|
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user