From d80739a203f846f9cea12f0a605612620dd018af Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Wed, 28 Aug 2024 09:35:16 +0900 Subject: [PATCH 01/18] Remove `locale.css` --- src/app/layout.tsx | 1 - src/styles/locale.css | 29 ----------------------------- 2 files changed, 30 deletions(-) delete mode 100644 src/styles/locale.css diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 92285c63dd..999cea0321 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,7 +4,6 @@ import '@fontsource/inter/400.css'; import '@fontsource/inter/700.css'; import '@fontsource/inter/800.css'; import 'react-basics/dist/styles.css'; -import 'styles/locale.css'; import 'styles/index.css'; import 'styles/variables.css'; diff --git a/src/styles/locale.css b/src/styles/locale.css deleted file mode 100644 index dddf495b6a..0000000000 --- a/src/styles/locale.css +++ /dev/null @@ -1,29 +0,0 @@ -.zh-CN { - font-family: '方体', 'PingFang SC', '黑体', 'Heiti SC', 'Microsoft JhengHei UI', - 'Microsoft JhengHei', Roboto, Noto, 'Noto Sans CJK SC', sans-serif !important; -} - -.zh-TW { - font-family: '方體', 'PingFang TC', '黑體', 'Heiti TC', 'Microsoft JhengHei UI', - 'Microsoft JhengHei', Roboto, Noto, 'Noto Sans CJK TC', sans-serif !important; -} - -.ja-JP { - font-family: '游ゴシック体', YuGothic, 'ヒラギノ丸ゴ', 'Hiragino Sans', 'Yu Gothic UI', - 'Meiryo UI', 'MS Gothic', Roboto, Noto, 'Noto Sans CJK JP', sans-serif !important; -} - -.ko-KR { - font-family: 'Nanum Gothic', 'Apple SD Gothic Neo', 'Malgun Gothic', Roboto, Noto, - 'Noto Sans CJK KR', sans-serif !important; -} - -.ar-SA { - font-family: 'Geeza Pro', 'Arabic Typesetting', Roboto, Noto, 'Noto Naskh Arabic', - 'Times New Roman', serif !important; -} - -.he-IL { - font-family: 'New Peninim MT', 'Arial Hebrew', Gisha, 'Times New Roman', Roboto, Noto, - 'Noto Sans Hebrew', sans-serif !important; -} From d7734d0493bbb0451270695d8939fd6e548b6c32 Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Wed, 28 Aug 2024 10:13:11 +0900 Subject: [PATCH 02/18] Remove className locale --- src/components/input/LanguageButton.tsx | 4 ++-- src/components/metrics/CountriesTable.tsx | 7 +------ src/components/metrics/LanguagesTable.tsx | 2 +- src/components/metrics/Legend.tsx | 5 +---- src/components/metrics/RegionsTable.tsx | 2 +- 5 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/components/input/LanguageButton.tsx b/src/components/input/LanguageButton.tsx index fcaa4046ee..5da3bf7845 100644 --- a/src/components/input/LanguageButton.tsx +++ b/src/components/input/LanguageButton.tsx @@ -1,4 +1,4 @@ -import { Icon, Button, PopupTrigger, Popup, Text } from 'react-basics'; +import { Icon, Button, PopupTrigger, Popup } from 'react-basics'; import classNames from 'classnames'; import { languages } from 'lib/lang'; import { useLocale } from 'components/hooks'; @@ -33,7 +33,7 @@ export function LanguageButton() { className={classNames(styles.item, { [styles.selected]: value === locale })} onClick={(e: any) => handleSelect(value, close, e)} > - {label} + {label} {value === locale && ( diff --git a/src/components/metrics/CountriesTable.tsx b/src/components/metrics/CountriesTable.tsx index 592ade8a0d..c1fc28318c 100644 --- a/src/components/metrics/CountriesTable.tsx +++ b/src/components/metrics/CountriesTable.tsx @@ -12,12 +12,7 @@ export function CountriesTable({ ...props }: MetricsTableProps) { const renderLink = ({ x: code }) => { return ( - + ); diff --git a/src/components/metrics/LanguagesTable.tsx b/src/components/metrics/LanguagesTable.tsx index 67b6e62237..f4b0b50386 100644 --- a/src/components/metrics/LanguagesTable.tsx +++ b/src/components/metrics/LanguagesTable.tsx @@ -13,7 +13,7 @@ export function LanguagesTable({ const languageNames = useLanguageNames(locale); const renderLabel = ({ x }) => { - return
{languageNames[x?.split('-')[0]] ?? x}
; + return languageNames[x?.split('-')[0]] ?? x; }; return ( diff --git a/src/components/metrics/Legend.tsx b/src/components/metrics/Legend.tsx index c7ef1022b0..4ebcf4b440 100644 --- a/src/components/metrics/Legend.tsx +++ b/src/components/metrics/Legend.tsx @@ -3,7 +3,6 @@ import { safeDecodeURIComponent } from 'next-basics'; import { colord } from 'colord'; import classNames from 'classnames'; import { LegendItem } from 'chart.js/auto'; -import { useLocale } from 'components/hooks'; import styles from './Legend.module.css'; export function Legend({ @@ -13,8 +12,6 @@ export function Legend({ items: any[]; onClick: (index: LegendItem) => void; }) { - const { locale } = useLocale(); - if (!items.find(({ text }) => text)) { return null; } @@ -32,7 +29,7 @@ export function Legend({ onClick={() => onClick(item)} > - {safeDecodeURIComponent(text)} + {safeDecodeURIComponent(text)} ); diff --git a/src/components/metrics/RegionsTable.tsx b/src/components/metrics/RegionsTable.tsx index 215551af8b..b4071f50ec 100644 --- a/src/components/metrics/RegionsTable.tsx +++ b/src/components/metrics/RegionsTable.tsx @@ -11,7 +11,7 @@ export function RegionsTable(props: MetricsTableProps) { const renderLink = ({ x: code, country }) => { return ( - + ); From 8f786d6d278f29f81e8eba04f6117e36b87c3068 Mon Sep 17 00:00:00 2001 From: Konstantin Tutsch Date: Wed, 28 Aug 2024 07:32:33 +0200 Subject: [PATCH 03/18] Increase consistency of German translation on Events screen --- src/lang/de-DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/de-DE.json b/src/lang/de-DE.json index dfbb9a47e0..ad822b04f2 100644 --- a/src/lang/de-DE.json +++ b/src/lang/de-DE.json @@ -271,7 +271,7 @@ "message.transfer-team-website-to-user": "Diese Website zu Ihrem Account transferieren?", "message.transfer-user-website-to-team": "Wählen Sie ein Team aus, zu dem die Website transferiert werden soll.", "message.transfer-website": "Übertragen Sie die Eigentümerrechte zu Ihrem Account oder einem anderen Team.", - "message.triggered-event": "Ausgelöstes Ereigniss", + "message.triggered-event": "Ereigniss ausgelöst", "message.user-deleted": "Benutzer gelöscht.", "message.viewed-page": "Seite besucht", "message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}", From bd728682d24d7fb4a8f7968bd7c944b68b127bc6 Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Wed, 28 Aug 2024 16:31:42 +0900 Subject: [PATCH 04/18] Update RealtimeCountries.tsx --- .../(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx index ae4967dab9..5166344101 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx @@ -12,7 +12,7 @@ export function RealtimeCountries({ data }) { const renderCountryName = useCallback( ({ x: code }) => ( - + {countryNames[code]} From 2d21260f3778c8f9e6ab43e933b920905ab2aed5 Mon Sep 17 00:00:00 2001 From: Quadrubo <71718414+Quadrubo@users.noreply.github.com> Date: Wed, 4 Sep 2024 14:53:59 +0200 Subject: [PATCH 05/18] feat: major and minor tags on docker build --- .github/workflows/cd-manual.yml | 19 +++++++++++++++++-- .github/workflows/cd.yml | 14 ++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cd-manual.yml b/.github/workflows/cd-manual.yml index ac701fcc50..1f8651fa29 100644 --- a/.github/workflows/cd-manual.yml +++ b/.github/workflows/cd-manual.yml @@ -20,11 +20,26 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Extract version parts from input + id: extract_version + run: | + echo "version=$(echo ${{ github.event.inputs.version }})" >> $GITHUB_ENV + echo "major=$(echo ${{ github.event.inputs.version }} | cut -d. -f1)" >> $GITHUB_ENV + echo "minor=$(echo ${{ github.event.inputs.version }} | cut -d. -f2)" >> $GITHUB_ENV + + - name: Generate tags + id: generate_tags + run: | + echo "tag_major=$(echo ${{ matrix.db-type }}-${{ env.major }})" >> $GITHUB_ENV + echo "tag_minor=$(echo ${{ matrix.db-type }}-${{ env.major }}.${{ env.minor }})" >> $GITHUB_ENV + echo "tag_patch=$(echo ${{ matrix.db-type }}-${{ env.version }})" >> $GITHUB_ENV + echo "tag_latest=$(echo ${{ matrix.db-type }}-latest)" >> $GITHUB_ENV + - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} with: image: umami - tags: ${{ matrix.db-type }}-${{ inputs.version }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: ghcr.io multiPlatform: true @@ -36,7 +51,7 @@ jobs: name: Build & push Docker image to docker.io for ${{ matrix.db-type }} with: image: umamisoftware/umami - tags: ${{ matrix.db-type }}-${{ inputs.version }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: docker.io username: ${{ secrets.DOCKER_USERNAME }} diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index b4de549922..f67f51c385 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -17,14 +17,21 @@ jobs: - name: Set env run: | - echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV echo "NOW=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV + + - name: Generate tags + id: generate_tags + run: | + echo "tag_patch=$(echo ${{ matrix.db-type }})-${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + echo "tag_minor=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1,2)" >> $GITHUB_ENV + echo "tag_major=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1)" >> $GITHUB_ENV + echo "tag_latest=$(echo ${{ matrix.db-type }})-latest" >> $GITHUB_ENV - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} with: image: umami - tags: ${{ matrix.db-type }}-${{ env.RELEASE_VERSION }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: ghcr.io multiPlatform: true @@ -32,12 +39,11 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to docker.io for ${{ matrix.db-type }} with: image: umamisoftware/umami - tags: ${{ matrix.db-type }}-${{ env.RELEASE_VERSION }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: docker.io username: ${{ secrets.DOCKER_USERNAME }} From 89fee63990a68d60b1cf9542dbf907509b775bff Mon Sep 17 00:00:00 2001 From: robertsilen Date: Thu, 5 Sep 2024 09:19:46 +0300 Subject: [PATCH 06/18] add MariaDB to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33a5aac39a..2c46b6263e 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ A detailed getting started guide can be found at [umami.is/docs](https://umami.i ### Requirements - A server with Node.js version 16.13 or newer -- A database. Umami supports [MySQL](https://www.mysql.com/) (minimum v8.0) and [PostgreSQL](https://www.postgresql.org/) (minimum v12.14) databases. +- A database. Umami supports [MariaDB](https://www.mariadb.org/) (minimum v10.5), [MySQL](https://www.mysql.com/) (minimum v8.0) and [PostgreSQL](https://www.postgresql.org/) (minimum v12.14) databases. ### Install Yarn From f2f77a050de28376433b8ca618c60daa0d31ea49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80?= <57842677+xuserz@users.noreply.github.com> Date: Thu, 5 Sep 2024 16:02:03 +0300 Subject: [PATCH 07/18] Update ru-RU.json Updated and translated all remaining text --- src/lang/ru-RU.json | 258 ++++++++++++++++++++++---------------------- 1 file changed, 129 insertions(+), 129 deletions(-) diff --git a/src/lang/ru-RU.json b/src/lang/ru-RU.json index f483522a97..745f2179b6 100644 --- a/src/lang/ru-RU.json +++ b/src/lang/ru-RU.json @@ -2,194 +2,194 @@ "label.access-code": "Код доступа", "label.actions": "Действия", "label.activity": "Журнал активности", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.add": "Добавить", + "label.add-description": "Добавить описание", + "label.add-member": "Добавить участника", + "label.add-step": "Добавить шаг", "label.add-website": "Добавить сайт", "label.admin": "Администратор", - "label.after": "After", + "label.after": "После", "label.all": "Все", "label.all-time": "Все время", "label.analytics": "Аналитика", - "label.average": "Average", + "label.average": "Средний", "label.back": "Назад", - "label.before": "Before", + "label.before": "До", "label.bounce-rate": "Отказы", - "label.breakdown": "Breakdown", - "label.browser": "Browser", + "label.breakdown": "Авария", + "label.browser": "Браузер", "label.browsers": "Браузеры", "label.cancel": "Отменить", "label.change-password": "Изменить пароль", "label.cities": "Города", - "label.city": "City", + "label.city": "Город", "label.clear-all": "Очистить все", - "label.compare": "Compare", + "label.compare": "Сравнить", "label.confirm": "Подтвердить", "label.confirm-password": "Подтвердить пароль", - "label.contains": "Contains", + "label.contains": "Содержит", "label.continue": "Продолжить", - "label.count": "Count", + "label.count": "Считать", "label.countries": "Страны", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", + "label.country": "Страна", + "label.create": "Создать", + "label.create-report": "Создать отчет", "label.create-team": "Создать команду", "label.create-user": "Создать пользователя", "label.created": "Создано", - "label.created-by": "Created By", - "label.current": "Current", + "label.created-by": "Создано", + "label.current": "Текущий", "label.current-password": "Текущий пароль", "label.custom-range": "Другой период", "label.dashboard": "Информационная панель", "label.data": "Данные", - "label.date": "Date", + "label.date": "Дата", "label.date-range": "Диапазон дат", - "label.day": "Day", + "label.day": "День", "label.default-date-range": "Диапазон дат по-умолчанию", "label.delete": "Удалить", - "label.delete-report": "Delete report", + "label.delete-report": "Удалить отчет", "label.delete-team": "Удалить команду", "label.delete-user": "Удалить пользователя", "label.delete-website": "Удалить сайт", - "label.description": "Description", + "label.description": "Описание", "label.desktop": "Настольный компьютер", "label.details": "Подробности", - "label.device": "Device", + "label.device": "Устройство", "label.devices": "Устройства", "label.dismiss": "Отклонить", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Не содержит", "label.domain": "Домен", - "label.dropoff": "Dropoff", + "label.dropoff": "Высадка", "label.edit": "Изменить", "label.edit-dashboard": "Редактировать дашборд", - "label.edit-member": "Edit member", + "label.edit-member": "Редактировать участника", "label.enable-share-url": "Разрешить делиться ссылкой", - "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", - "label.event-data": "Event data", + "label.end-step": "Конечный шаг", + "label.entry": "URL-адрес входа", + "label.event": "Событие", + "label.event-data": "Данные о событии", "label.events": "События", - "label.exit": "Exit URL", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", - "label.filter": "Filter", + "label.exit": "URL-адрес выхода", + "label.false": "Ложь", + "label.field": "Поле", + "label.fields": "Поля", + "label.filter": "Фильтр", "label.filter-combined": "Объединенные", "label.filter-raw": "Сырые данные", - "label.filters": "Filters", - "label.first-seen": "First seen", - "label.funnel": "Funnel", - "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", - "label.greater-than": "Greater than", - "label.greater-than-equals": "Greater than or equals", + "label.filters": "Фильтры", + "label.first-seen": "Первый вход", + "label.funnel": "Воронка", + "label.funnel-description": "Изучите коэффициент конверсии и ухода пользователей.", + "label.goal": "Цель", + "label.goals": "Цели", + "label.goals-description": "Отслеживайте свои цели по просмотрам страниц и событиям.", + "label.greater-than": "Больше, чем", + "label.greater-than-equals": "Больше или равно", "label.host": "Host", "label.hosts": "Hosts", - "label.insights": "Insights", - "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", + "label.insights": "Информация", + "label.insights-description": "Погрузитесь глубже в свои данные с помощью сегментов и фильтров.", + "label.is": "Является", + "label.is-not": "Не установлен", + "label.is-not-set": "Не установлено", + "label.is-set": "Установлен", "label.join": "Присоединиться", "label.join-team": "Присоединиться к команде", "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey-description": "Поймите, как пользователи перемещаются по вашему сайту.", "label.language": "Язык", "label.languages": "Языки", "label.laptop": "Ноутбук", "label.last-days": "Последние {x} дней", "label.last-hours": "Последние {x} часа", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "Последние {x} месяцев", + "label.last-seen": "Последний вход", "label.leave": "Уйти", "label.leave-team": "Покинуть команду", - "label.less-than": "Less than", - "label.less-than-equals": "Less than or equals", + "label.less-than": "Меньше, чем", + "label.less-than-equals": "Меньше или равно", "label.login": "Войти", "label.logout": "Выйти", - "label.manage": "Manage", - "label.manager": "Manager", - "label.max": "Max", - "label.member": "Member", + "label.manage": "Управление", + "label.manager": "Менеджер", + "label.max": "Максимум", + "label.member": "Участник", "label.members": "Участники", - "label.min": "Min", + "label.min": "Минимум", "label.mobile": "Смартфон", "label.more": "Больше", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Мой профиль", + "label.my-websites": "Мои сайты", "label.name": "Имя", "label.new-password": "Новый пароль", "label.none": "Не указано", - "label.number-of-records": "{x} {x, plural, one {record} other {records}}", + "label.number-of-records": "{x} {x, множественное число, один {запись} другие {записи}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", + "label.overview": "Обзор", "label.owner": "Владелец", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Страница {current} из {total}", "label.page-views": "Просмотры страниц", - "label.pageTitle": "Page title", + "label.pageTitle": "Название страницы", "label.pages": "Страницы", "label.password": "Пароль", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Путь", + "label.paths": "Пути", "label.powered-by": "На движке {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.previous": "Предыдущий", + "label.previous-period": "Предыдущий период", + "label.previous-year": "Предыдущий год", "label.profile": "Профиль", - "label.properties": "Properties", - "label.property": "Property", + "label.properties": "Свойства", + "label.property": "Свойство", "label.queries": "Запросы", - "label.query": "Query", + "label.query": "Запрос", "label.query-parameters": "Параметры запроса", "label.realtime": "Реальное время", - "label.referrer": "Referrer", + "label.referrer": "Реферер", "label.referrers": "Источники", "label.refresh": "Обновить", "label.regenerate": "Обновить", - "label.region": "Region", + "label.region": "Регион", "label.regions": "Регионы", "label.remove": "Удалить", - "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.remove-member": "Удалить участника", + "label.reports": "Отчеты", "label.required": "Обязательное", "label.reset": "Сбросить", "label.reset-website": "Сбросить статистику", - "label.retention": "Retention", - "label.retention-description": "Measure your website stickiness by tracking how often users return.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.retention": "Удержание", + "label.retention-description": "Измерьте «прилипаемость» вашего сайта, отслеживая, как часто пользователи возвращаются на него.", + "label.revenue": "Выручка", + "label.revenue-description": "Изучите свои доходы за определенное время.", + "label.revenue-property": "Доходная недвижимость", "label.role": "Роль", - "label.run-query": "Run query", + "label.run-query": "Выполнить запрос", "label.save": "Сохранить", "label.screens": "Экраны", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "Select date", - "label.select-role": "Select role", + "label.search": "Поиск", + "label.select": "Выберите", + "label.select-date": "Выберите дату", + "label.select-role": "Выберите роль", "label.select-website": "Выбрать сайт", - "label.session": "Session", + "label.session": "Сессия", "label.sessions": "Сессии", "label.settings": "Настройки", "label.share-url": "Поделиться ссылкой", "label.single-day": "Один день", - "label.start-step": "Start Step", - "label.steps": "Steps", - "label.sum": "Sum", + "label.start-step": "Начальный этап", + "label.steps": "Шаги", + "label.sum": "Сумма", "label.tablet": "Планшет", "label.team": "Команда", "label.team-id": "ID команды", - "label.team-manager": "Team manager", + "label.team-manager": "Менеджер команды", "label.team-member": "Член команды", - "label.team-name": "Team name", + "label.team-name": "Название команды", "label.team-owner": "Владелец команды", - "label.team-view-only": "Team view only", - "label.team-websites": "Team websites", + "label.team-view-only": "Только командный просмотр", + "label.team-websites": "Веб-сайты команды", "label.teams": "Команды", "label.theme": "Тема", "label.this-month": "Этот месяц", @@ -199,62 +199,62 @@ "label.title": "Заголовок", "label.today": "Сегодня", "label.toggle-charts": "Показать/скрыть графики", - "label.total": "Total", - "label.total-records": "Total records", + "label.total": "Всего", + "label.total-records": "Всего записей", "label.tracking-code": "Код отслеживания", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", - "label.true": "True", - "label.type": "Type", - "label.unique": "Unique", + "label.transactions": "Транзакции", + "label.transfer": "Передача", + "label.transfer-website": "Передать сайт", + "label.true": "Правда", + "label.type": "Тип", + "label.unique": "Уникальный", "label.unique-visitors": "Уникальные посетители", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "Уникальные клиенты", "label.unknown": "Неизвестно", - "label.untitled": "Untitled", - "label.update": "Update", + "label.untitled": "Без названия", + "label.update": "Обновление", "label.url": "URL", "label.urls": "URLs", "label.user": "Пользователь", - "label.user-property": "User Property", + "label.user-property": "Собственность пользователя", "label.username": "Имя пользователя", "label.users": "Пользователи", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", - "label.value": "Value", + "label.utm-description": "Отслеживайте свои кампании с помощью UTM-параметров.", + "label.value": "Значение", "label.view": "Просмотреть", "label.view-details": "Посмотреть детали", - "label.view-only": "View only", + "label.view-only": "Только просмотр", "label.views": "Просмотры", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Просмотров за посещение", "label.visit-duration": "Среднее время посещения", "label.visitors": "Посетители", - "label.visits": "Visits", - "label.website": "Website", + "label.visits": "Посещения", + "label.website": "Сайт", "label.website-id": "ID сайта", "label.websites": "Сайты", - "label.window": "Window", + "label.window": "Окно", "label.yesterday": "Вчера", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", + "message.action-confirmation": "Введите {confirmation} в поле ниже, чтобы подтвердить.", "message.active-users": "{x} текущих посетителей", - "message.collected-data": "Collected data", + "message.collected-data": "Собранные данные", "message.confirm-delete": "Вы уверены, что хотите удалить {target}?", "message.confirm-leave": "Вы уверены, что хотите уйти {target}?", - "message.confirm-remove": "Are you sure you want to remove {target}?", + "message.confirm-remove": "Вы уверены, что хотите удалить {target}?", "message.confirm-reset": "Вы уверены, что хотите сбросить статистику {target}?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", + "message.delete-team-warning": "При удалении команды будут удалены и все ее веб-сайты.", "message.delete-website-warning": "Все связанные данные будут также удалены.", "message.error": "Что-то пошло не так.", - "message.event-log": "{event} on {url}", + "message.event-log": "{event} на {url}", "message.go-to-settings": "Перейти к настройкам", "message.incorrect-username-password": "Неверное имя пользователя/пароль.", "message.invalid-domain": "Некорректный домен", "message.min-password-length": "Минимальная длина {n} символов", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.new-version-available": "Вышла новая версия Umami {version}!", "message.no-data-available": "Нет данных.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Данные о событиях отсутствуют.", "message.no-match-password": "Пароли не совпадают", - "message.no-results-found": "No results were found.", + "message.no-results-found": "Результаты не найдены.", "message.no-team-websites": "У этой команды нет ни одного сайта.", "message.no-teams": "Вы не создали ни одной команды.", "message.no-users": "Нет пользователей.", @@ -268,12 +268,12 @@ "message.team-not-found": "Команда не найдена.", "message.team-websites-info": "Сайты могут просматривать все члены команды.", "message.tracking-code": "Код отслеживания", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", + "message.transfer-team-website-to-user": "Перенести этот сайт в свой прфоиль?", + "message.transfer-user-website-to-team": "Выберите команду, которой нужно передать этот сайт.", + "message.transfer-website": "Передайте право владения сайтом своей учетной записи или другой команде.", + "message.triggered-event": "Запущенное событие", "message.user-deleted": "Пользователь удален.", - "message.viewed-page": "Viewed page", + "message.viewed-page": "Просмотренная страница", "message.visitor-log": "Посетитель из {country} используя {browser} на {os} {device}", - "message.visitors-dropped-off": "Visitors dropped off" + "message.visitors-dropped-off": "Высадка посетителей" } From 517da90abe1dddbbffd0f8683f0c06bbec7a6390 Mon Sep 17 00:00:00 2001 From: Peter Kuhmann Date: Mon, 16 Sep 2024 14:55:56 +0200 Subject: [PATCH 08/18] Add `Access-Control-Allow-Origin` header with value `*` to tracker script asset and all its alternative paths. --- next.config.js | 63 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/next.config.js b/next.config.js index b610eb2c83..87a2355416 100644 --- a/next.config.js +++ b/next.config.js @@ -24,7 +24,7 @@ const contentSecurityPolicy = [ `frame-ancestors 'self' ${frameAncestors}`, ]; -const headers = [ +const defaultHeaders = [ { key: 'X-DNS-Prefetch-Control', value: 'on', @@ -39,12 +39,30 @@ const headers = [ ]; if (forceSSL) { - headers.push({ + defaultHeaders.push({ key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload', }); } +const trackerHeaders = [ + { + key: 'Access-Control-Allow-Origin', + value: '*', + }, +]; + +const headers = [ + { + source: '/:path*', + headers: defaultHeaders, + }, + { + source: '/script.js', + headers: trackerHeaders, + }, +]; + const rewrites = []; if (collectApiEndpoint) { @@ -54,19 +72,6 @@ if (collectApiEndpoint) { }); } -if (trackerScriptName) { - const names = trackerScriptName?.split(',').map(name => name.trim()); - - if (names) { - names.forEach(name => { - rewrites.push({ - source: `/${name.replace(/^\/+/, '')}`, - destination: '/script.js', - }); - }); - } -} - const redirects = [ { source: '/settings', @@ -85,6 +90,27 @@ const redirects = [ }, ]; +// Adding rewrites + headers for all alternative tracker script names. +if (trackerScriptName) { + const names = trackerScriptName?.split(',').map(name => name.trim()); + + if (names) { + names.forEach(name => { + const normalizedSource = `/${name.replace(/^\/+/, '')}`; + + rewrites.push({ + source: normalizedSource, + destination: '/script.js', + }); + + headers.push({ + source: normalizedSource, + headers: trackerHeaders, + }); + }); + } +} + if (cloudMode && cloudUrl) { redirects.push({ source: '/settings/:path*', @@ -153,12 +179,7 @@ const config = { return config; }, async headers() { - return [ - { - source: '/:path*', - headers, - }, - ]; + return headers; }, async rewrites() { return [ From 8fef99b1f0e99bca951df7e33711e9008654239c Mon Sep 17 00:00:00 2001 From: Dinesh Salunke Date: Fri, 20 Sep 2024 09:23:01 +0530 Subject: [PATCH 09/18] fix: use the same id for event and event data for clickhouse --- src/queries/analytics/events/saveEvent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/queries/analytics/events/saveEvent.ts b/src/queries/analytics/events/saveEvent.ts index 6c0f917baa..f249dff29b 100644 --- a/src/queries/analytics/events/saveEvent.ts +++ b/src/queries/analytics/events/saveEvent.ts @@ -145,7 +145,7 @@ async function clickhouseQuery(data: { website_id: websiteId, session_id: sessionId, visit_id: visitId, - event_id: uuid(), + event_id: eventId, country: country, subdivision1: country && subdivision1 From e7ffcbd92abf14030740acbdcbe8704885f3d47e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 19:21:56 +0000 Subject: [PATCH 10/18] Bump rollup from 3.29.4 to 3.29.5 Bumps [rollup](https://github.com/rollup/rollup) from 3.29.4 to 3.29.5. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v3.29.4...v3.29.5) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a53045fef1..00bd738bbb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9482,9 +9482,9 @@ rollup-pluginutils@^2.8.2: estree-walker "^0.6.1" rollup@^3.28.0: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + version "3.29.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54" + integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w== optionalDependencies: fsevents "~2.3.2" From d8e46e487c39a7ab5a9af89a869f79167b09c544 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 5 Oct 2024 10:16:21 -0700 Subject: [PATCH 11/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33a5aac39a..b4bd8f3bd0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Umami Logo + Umami Logo

Umami

From ba078a11816d297b92586bb25b6d11dd0438d323 Mon Sep 17 00:00:00 2001 From: Andreas Bielawski Date: Sun, 6 Oct 2024 12:46:35 +0200 Subject: [PATCH 12/18] Fix singular of Event in German translation --- src/lang/de-DE.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/de-DE.json b/src/lang/de-DE.json index ad822b04f2..36090a8485 100644 --- a/src/lang/de-DE.json +++ b/src/lang/de-DE.json @@ -67,8 +67,8 @@ "label.enable-share-url": "Freigabe-URL aktivieren", "label.end-step": "Schlussschritt", "label.entry": "Eingangs-URL", - "label.event": "Ereigniss", - "label.event-data": "Ereignissdaten", + "label.event": "Ereignis", + "label.event-data": "Ereignisdaten", "label.events": "Ereignisse", "label.exit": "Ausgangs-URL", "label.false": "Falsch", @@ -271,7 +271,7 @@ "message.transfer-team-website-to-user": "Diese Website zu Ihrem Account transferieren?", "message.transfer-user-website-to-team": "Wählen Sie ein Team aus, zu dem die Website transferiert werden soll.", "message.transfer-website": "Übertragen Sie die Eigentümerrechte zu Ihrem Account oder einem anderen Team.", - "message.triggered-event": "Ereigniss ausgelöst", + "message.triggered-event": "Ereignis ausgelöst", "message.user-deleted": "Benutzer gelöscht.", "message.viewed-page": "Seite besucht", "message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}", From d3c4dc47623e325ba1fd9f9369c2d07c04b87540 Mon Sep 17 00:00:00 2001 From: Alexej Sidorenko Date: Sat, 12 Oct 2024 18:58:13 +0200 Subject: [PATCH 13/18] Update cs-CZ.json Fixed translation "visits" instead of "visitors". A few more translations were added. --- src/lang/cs-CZ.json | 132 ++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/src/lang/cs-CZ.json b/src/lang/cs-CZ.json index 717bd97019..8adc5e368f 100644 --- a/src/lang/cs-CZ.json +++ b/src/lang/cs-CZ.json @@ -1,88 +1,88 @@ { - "label.access-code": "Access code", + "label.access-code": "Přístupový kód", "label.actions": "Akce", - "label.activity": "Activity log", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.activity": "Log aktivity", + "label.add": "Přidat", + "label.add-description": "Přidat popis", + "label.add-member": "Přidat člena", + "label.add-step": "Přidat krok", "label.add-website": "Přidat web", "label.admin": "Administrátor", - "label.after": "After", + "label.after": "Po", "label.all": "Vše", - "label.all-time": "All time", + "label.all-time": "Celá doba", "label.analytics": "Analytics", - "label.average": "Average", + "label.average": "Průměr", "label.back": "Zpět", - "label.before": "Before", + "label.before": "Před", "label.bounce-rate": "Okamžité opuštění", "label.breakdown": "Breakdown", - "label.browser": "Browser", - "label.browsers": "Prohlížeč", + "label.browser": "Prohlížeč", + "label.browsers": "Prohlížeče", "label.cancel": "Zrušit", "label.change-password": "Změnit heslo", - "label.cities": "Cities", - "label.city": "City", - "label.clear-all": "Clear all", - "label.compare": "Compare", - "label.confirm": "Confirm", + "label.cities": "Města", + "label.city": "Město", + "label.clear-all": "Vyčistit vše", + "label.compare": "Porovnat", + "label.confirm": "Potvrdit", "label.confirm-password": "Potvrdit heslo", - "label.contains": "Contains", - "label.continue": "Continue", - "label.count": "Count", - "label.countries": "Země", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", - "label.create-team": "Create team", - "label.create-user": "Create user", - "label.created": "Created", + "label.contains": "Obsahuje", + "label.continue": "Pokračovat", + "label.count": "Počet", + "label.countries": "Státy", + "label.country": "Stát", + "label.create": "Vytvořit", + "label.create-report": "Vytvořit hlášení", + "label.create-team": "Vytvořit tým", + "label.create-user": "Vytvořit uživatele", + "label.created": "Vytvořeno", "label.created-by": "Created By", - "label.current": "Current", + "label.current": "Aktuální", "label.current-password": "Aktuální heslo", "label.custom-range": "Vlastní rozsah", "label.dashboard": "Přehled", "label.data": "Data", - "label.date": "Date", + "label.date": "Datum", "label.date-range": "Období", - "label.day": "Day", + "label.day": "Den", "label.default-date-range": "Výchozí období", "label.delete": "Smazat", - "label.delete-report": "Delete report", - "label.delete-team": "Delete team", - "label.delete-user": "Delete user", + "label.delete-report": "Smazat hlášení", + "label.delete-team": "Smazat tým", + "label.delete-user": "Smazat uživatele", "label.delete-website": "Smazat web", - "label.description": "Description", + "label.description": "Popis", "label.desktop": "Stolní počítač", - "label.details": "Details", - "label.device": "Device", + "label.details": "Detaily", + "label.device": "Zařízení", "label.devices": "Zařízení", "label.dismiss": "Odejít", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Neobsahuje", "label.domain": "Doména", "label.dropoff": "Dropoff", "label.edit": "Upravit", - "label.edit-dashboard": "Edit dashboard", - "label.edit-member": "Edit member", + "label.edit-dashboard": "Upravit dashboard", + "label.edit-member": "Upravit člena", "label.enable-share-url": "Povolit sdílení URL", "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", + "label.entry": "Vstupní URL", + "label.event": "Událost", "label.event-data": "Event data", "label.events": "Události", "label.exit": "Exit URL", "label.false": "False", - "label.field": "Field", + "label.field": "Pole", "label.fields": "Fields", - "label.filter": "Filter", + "label.filter": "Filtr", "label.filter-combined": "Kombinace", "label.filter-raw": "Nezpracované", - "label.filters": "Filters", + "label.filters": "Filtry", "label.first-seen": "First seen", "label.funnel": "Funnel", "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", + "label.goal": "Cíl", + "label.goals": "Cíle", "label.goals-description": "Track your goals for pageviews and events.", "label.greater-than": "Greater than", "label.greater-than-equals": "Greater than or equals", @@ -98,44 +98,44 @@ "label.join-team": "Join team", "label.journey": "Journey", "label.journey-description": "Understand how users navigate through your website.", - "label.language": "Language", - "label.languages": "Languages", + "label.language": "Jazyk", + "label.languages": "Jazyky", "label.laptop": "Přenosný počítač", "label.last-days": "Posledních {x} dnů", "label.last-hours": "Posledních {x} hodin", - "label.last-months": "Last {x} months", + "label.last-months": "Posledních {x} měsíců", "label.last-seen": "Last seen", - "label.leave": "Leave", - "label.leave-team": "Leave team", + "label.leave": "Opustit", + "label.leave-team": "Opustit tým", "label.less-than": "Less than", "label.less-than-equals": "Less than or equals", "label.login": "Přihlásit", "label.logout": "Odhlásit", - "label.manage": "Manage", - "label.manager": "Manager", + "label.manage": "Spravovat", + "label.manager": "Správce", "label.max": "Max", - "label.member": "Member", - "label.members": "Members", + "label.member": "Člen", + "label.members": "Členové", "label.min": "Min", "label.mobile": "Mobilní telefon", "label.more": "Více", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Můj účet", + "label.my-websites": "Mé weby", "label.name": "Jméno", "label.new-password": "Nové heslo", "label.none": "None", "label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", - "label.owner": "Owner", + "label.overview": "Přehled", + "label.owner": "Vlastník", "label.page-of": "Page {current} of {total}", "label.page-views": "Zobrazení stránek", - "label.pageTitle": "Page title", + "label.pageTitle": "Název stránky", "label.pages": "Stránky", "label.password": "Heslo", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Cesta", + "label.paths": "Cesty", "label.powered-by": "Běží na {name}", "label.previous": "Previous", "label.previous-period": "Previous period", @@ -228,13 +228,13 @@ "label.views": "Zobrazení", "label.views-per-visit": "Views per visit", "label.visit-duration": "Průměrný čas návštěvy", - "label.visitors": "Návštěvy", - "label.visits": "Visits", + "label.visitors": "Návštěvníci", + "label.visits": "Návštěvy", "label.website": "Website", "label.website-id": "Website ID", "label.websites": "Weby", - "label.window": "Window", - "label.yesterday": "Yesterday", + "label.window": "Okno", + "label.yesterday": "Včera", "message.action-confirmation": "Type {confirmation} in the box below to confirm.", "message.active-users": "{x} aktuálně {x, plural, one {návštěvník} other {návštěvníci}}", "message.collected-data": "Collected data", From da47dce903af5b781ef1957092d35474e7a5ed15 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Mon, 21 Oct 2024 12:35:53 -0700 Subject: [PATCH 14/18] fix hardcoded currency query --- src/queries/analytics/reports/getRevenue.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/queries/analytics/reports/getRevenue.ts b/src/queries/analytics/reports/getRevenue.ts index caef94694e..a2803e854d 100644 --- a/src/queries/analytics/reports/getRevenue.ts +++ b/src/queries/analytics/reports/getRevenue.ts @@ -81,7 +81,7 @@ async function relationalQuery( join (select website_event_id from event_data where data_key ${like} '%currency%' - and string_value = 'USD') currency + and string_value = {{currency}}) currency on currency.website_event_id = ed.website_event_id where ed.website_id = {{websiteId::uuid}} and ed.created_at between {{startDate}} and {{endDate}} @@ -103,7 +103,7 @@ async function relationalQuery( join (select website_event_id from event_data where data_key ${like} '%currency%' - and string_value = 'USD') currency + and string_value = {{currency}}) currency on currency.website_event_id = ed.website_event_id where ed.website_id = {{websiteId::uuid}} and ed.created_at between {{startDate}} and {{endDate}} From 1384a734a604cedc3b16fd27c1b871744b9c844f Mon Sep 17 00:00:00 2001 From: Rafael Schranz <106320220+rafaelschranz@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:30:43 +0200 Subject: [PATCH 15/18] edited de-CH --- src/lang/de-CH.json | 278 ++++++++++++++++++++++---------------------- 1 file changed, 139 insertions(+), 139 deletions(-) diff --git a/src/lang/de-CH.json b/src/lang/de-CH.json index aa57f90c9c..e99ecaca28 100644 --- a/src/lang/de-CH.json +++ b/src/lang/de-CH.json @@ -2,278 +2,278 @@ "label.access-code": "Zuegangscode", "label.actions": "Aktione", "label.activity": "Aktivitätsverlauf", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.add": "hinzuefüege", + "label.add-description": "Beschriibig hinzuefüege", + "label.add-member": "Mitglied hinzuefüege", + "label.add-step": "Schritt hinzuefüege", "label.add-website": "Websiite hinzuefüege", "label.admin": "Administrator", - "label.after": "After", + "label.after": "Nach", "label.all": "Alli", - "label.all-time": "Gesamte Zitruum", + "label.all-time": "Gsamte Zitruum", "label.analytics": "Analytics", - "label.average": "Average", + "label.average": "Durchschnitt", "label.back": "Zrugg", - "label.before": "Before", + "label.before": "Vor", "label.bounce-rate": "Absprungsrate", - "label.breakdown": "Breakdown", + "label.breakdown": "Uufschlüsselig", "label.browser": "Browser", "label.browsers": "Browser", "label.cancel": "Abbreche", "label.change-password": "Passwort ändere", "label.cities": "Städt", - "label.city": "City", + "label.city": "Stadt", "label.clear-all": "Alles lösche", - "label.compare": "Compare", + "label.compare": "Vergliiche", "label.confirm": "Bestätige", "label.confirm-password": "Passwort widerhole", - "label.contains": "Contains", + "label.contains": "Enthaltet", "label.continue": "Wiiter", - "label.count": "Count", + "label.count": "Azahl", "label.countries": "Länder", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", + "label.country": "Land", + "label.create": "Erstelle", + "label.create-report": "Bricht erstelle", "label.create-team": "Team erstelle", "label.create-user": "Benutzer erstelle", "label.created": "Erstellt", "label.created-by": "Created By", - "label.current": "Current", - "label.current-password": "Jetzigs Passwort", + "label.current": "Aktuell", + "label.current-password": "Aktuells Passwort", "label.custom-range": "Benutzerdefinierte Bereich", "label.dashboard": "Übersicht", "label.data": "Datä", - "label.date": "Date", + "label.date": "Datum", "label.date-range": "Datumsbereich", - "label.day": "Day", - "label.default-date-range": "Vorigstellte Datumsbereich", + "label.day": "Tag", + "label.default-date-range": "Voriigstellte Datumsbereich", "label.delete": "Lösche", - "label.delete-report": "Delete report", + "label.delete-report": "Bricht lösche", "label.delete-team": "Team lösche", "label.delete-user": "Benutzer lösche", "label.delete-website": "Websiite lösche", - "label.description": "Description", + "label.description": "Beschriibig", "label.desktop": "Desktop", "label.details": "Details", - "label.device": "Device", + "label.device": "Grät", "label.devices": "Grät", - "label.dismiss": "Verwerfe", - "label.does-not-contain": "Does not contain", + "label.dismiss": "Verwärfe", + "label.does-not-contain": "Enthaltet nid", "label.domain": "Domain", - "label.dropoff": "Dropoff", + "label.dropoff": "Absprung", "label.edit": "Bearbeite", "label.edit-dashboard": "Dashboard bearbeite", - "label.edit-member": "Edit member", + "label.edit-member": "Mitglied bearbeite", "label.enable-share-url": "Freigab-URL aktiviere", - "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", - "label.event-data": "Event data", + "label.end-step": "Schlussschritt", + "label.entry": "Iigangs URL", + "label.event": "Ereigniss", + "label.event-data": "Ereigniss Date", "label.events": "Ereigniss", - "label.exit": "Exit URL", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", + "label.exit": "Uusgangs URL", + "label.false": "Falsch", + "label.field": "Fäld", + "label.fields": "Fälder", "label.filter": "Filter", "label.filter-combined": "Kombiniert", "label.filter-raw": "Rohdate", "label.filters": "Filters", - "label.first-seen": "First seen", - "label.funnel": "Funnel", - "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", - "label.greater-than": "Greater than", - "label.greater-than-equals": "Greater than or equals", + "label.first-seen": "Erstmal gse", + "label.funnel": "Tunnel", + "label.funnel-description": "Verstönd Sie d Konversions- und Abspruungsrate vo Nutzer.", + "label.goal": "Ziel", + "label.goals": "Ziele", + "label.goals-description": "verfolged Sie Ihri Ziel für Siitenufrüef und Ereigniss.", + "label.greater-than": "Grösser als", + "label.greater-than-equals": "Grösser oder gliich", "label.host": "Host", "label.hosts": "Hosts", - "label.insights": "Insights", - "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", + "label.insights": "Iiblick", + "label.insights-description": "Vertüfed Sie sich i Ihri Date, mit Hilf vo Segment und Filter.", + "label.is": "Isch", + "label.is-not": "Isch nid", + "label.is-not-set": "Isch ned gsetzt", + "label.is-set": "Isch gsetzt", "label.join": "Biträte", "label.join-team": "Team biträte", - "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey": "Reis", + "label.journey-description": "Verstönd Sie, wie Nutzer dur Ihri Website navigiered.", "label.language": "Sprach", "label.languages": "Sprache", "label.laptop": "Laptop", "label.last-days": "Letzti {x} Täg", "label.last-hours": "Letzti {x} Stunde", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "Letzti {x} Mönet", + "label.last-seen": "Zletzt gse", "label.leave": "Verlah", "label.leave-team": "Team verlah", - "label.less-than": "Less than", - "label.less-than-equals": "Less than or equals", - "label.login": "Aamelde", - "label.logout": "Abmelde", - "label.manage": "Manage", + "label.less-than": "Kliiner als", + "label.less-than-equals": "Kliiner oder gliich", + "label.login": "Aamälde", + "label.logout": "Abmälde", + "label.manage": "Verwalte", "label.manager": "Manager", "label.max": "Max", - "label.member": "Member", + "label.member": "Mitglied", "label.members": "Mitglieder", "label.min": "Min", - "label.mobile": "Handy", + "label.mobile": "Händy", "label.more": "Meh", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Min Account", + "label.my-websites": "Mini Websiite", "label.name": "Name", "label.new-password": "Neus Passwort", "label.none": "Keis", "label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", + "label.overview": "Übersicht", "label.owner": "Bsitzer", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Siite {current} vo {total}", "label.page-views": "Siitenufrüef", - "label.pageTitle": "Page title", + "label.pageTitle": "Siitetitel", "label.pages": "Siite", "label.password": "Passwort", - "label.path": "Path", - "label.paths": "Paths", - "label.powered-by": "Betribe dur {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.path": "Pfad", + "label.paths": "Pfade", + "label.powered-by": "Betriibe dur {name}", + "label.previous": "Vorherig", + "label.previous-period": "Vorherigi Periode", + "label.previous-year": "Vorherigs Jahr", "label.profile": "Profil", "label.properties": "Properties", "label.property": "Property", "label.queries": "Abfrage", - "label.query": "Query", + "label.query": "Abfrag", "label.query-parameters": "Abfragparameter", "label.realtime": "Echtzit", - "label.referrer": "Referrer", - "label.referrers": "Referrer", + "label.referrer": "Verwiiser", + "label.referrers": "Verwiisendi", "label.refresh": "Aktualisiere", "label.regenerate": "Erneuere", "label.region": "Region", "label.regions": "Regionä", "label.remove": "Entferne", - "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.remove-member": "Mitglied entferne", + "label.reports": "Brichte", "label.required": "Erforderlich", "label.reset": "Zruggsetze", "label.reset-website": "Statistik zruggsetze", "label.retention": "Retention", - "label.retention-description": "Measure your website stickiness by tracking how often users return.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.retention-description": "Mässed Sie d Verwiilduur vo Ihrere Website, indem Sie verfolged wie oft ihri Nutzer zruggkehred.", + "label.revenue": "Umsatz", + "label.revenue-description": "Lueged Sie sich Ihre Umsatz im Lauf vor Ziit a.", + "label.revenue-property": "Umsatzeigenschafte", "label.role": "Rollä", - "label.run-query": "Run query", + "label.run-query": "Abfrag starte", "label.save": "Speichere", "label.screens": "Bildschirmuflösige", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "Select date", - "label.select-role": "Select role", + "label.search": "Sueche", + "label.select": "Auswähle", + "label.select-date": "Datä uuswähle", + "label.select-role": "Rollä uuswähle", "label.select-website": "Websiite uuswähle", - "label.session": "Session", - "label.sessions": "Sessions", + "label.session": "Sitzig", + "label.sessions": "Sitzige", "label.settings": "Istellige", "label.share-url": "Freigab-URL", "label.single-day": "Ein Tag", - "label.start-step": "Start Step", - "label.steps": "Steps", - "label.sum": "Sum", + "label.start-step": "Startschritt", + "label.steps": "Schritt", + "label.sum": "Summe", "label.tablet": "Tablet", "label.team": "Team", "label.team-id": "Team ID", - "label.team-manager": "Team manager", + "label.team-manager": "Team Manager", "label.team-member": "Team Mitglied", - "label.team-name": "Team name", + "label.team-name": "Team Name", "label.team-owner": "Team Bsitzer", - "label.team-view-only": "Team view only", - "label.team-websites": "Team websites", + "label.team-view-only": "Nur für Teammitglieder sichtbar", + "label.team-websites": "Team Websiite", "label.teams": "Teams", "label.theme": "Thema", - "label.this-month": "De Monet", - "label.this-week": "Die Wuche", - "label.this-year": "Das Jahr", + "label.this-month": "Dä Monet", + "label.this-week": "Diä Wuuche", + "label.this-year": "Das Johr", "label.timezone": "Ziitzone", "label.title": "Titel", "label.today": "Hüt", - "label.toggle-charts": "Schaubilder umschalte", + "label.toggle-charts": "Charts umschalte", "label.total": "Total", - "label.total-records": "Total records", + "label.total-records": "Gsamti Datesätz", "label.tracking-code": "Tracking Code", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", - "label.true": "True", - "label.type": "Type", - "label.unique": "Unique", - "label.unique-visitors": "Eidütigi Bsuecher", - "label.uniqueCustomers": "Unique Customers", + "label.transactions": "Transaktione", + "label.transfer": "Transferiere", + "label.transfer-website": "Websiite transferiere", + "label.true": "Wahr", + "label.type": "Typ", + "label.unique": "Einzigartigi", + "label.unique-visitors": "Einzigartigi Bsuecher", + "label.uniqueCustomers": "Einzigartigi Kunde", "label.unknown": "Unbekannt", - "label.untitled": "Untitled", + "label.untitled": "Unbennant", "label.update": "Update", "label.url": "URL", "label.urls": "URLs", "label.user": "Benutzer", - "label.user-property": "User Property", + "label.user-property": "Benutzereigeschafte", "label.username": "Benutzername", "label.users": "Benutzer", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", - "label.value": "Value", + "label.utm-description": "Tracked Sie Ihri Kampagnen mit UTM Parameters.", + "label.value": "Wärt", "label.view": "Azeige", "label.view-details": "Details azeige", - "label.view-only": "View only", + "label.view-only": "Nume aluege", "label.views": "Ufrüef", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Ufrüef pro Bsuech", "label.visit-duration": "Durchschn. Bsuechsziit", "label.visitors": "Bsuecher", - "label.visits": "Visits", + "label.visits": "Bsüech", "label.website": "Website", "label.website-id": "Websiite ID", "label.websites": "Websiite", - "label.window": "Window", + "label.window": "Fenster", "label.yesterday": "Gester", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", + "message.action-confirmation": "Typed Sie {confirmation} is Feld underhalb um z bestätige.", "message.active-users": "{x} {x, plural, one {aktive Bsuecher} other {aktivi Bsuecher}}", - "message.collected-data": "Collected data", + "message.collected-data": "Gsammleti Date", "message.confirm-delete": "Sind Sie sich sicher, {target} zlösche?", "message.confirm-leave": "Sind Sie sich sicher, {target} zverlah?", - "message.confirm-remove": "Are you sure you want to remove {target}?", - "message.confirm-reset": "Sind Sie sicher, dass Sie dStatistike vo {target} zruggsetze wend?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", - "message.delete-website-warning": "Alli dezueghörige Date werdet ebefalls glöscht.", - "message.error": "Es isch en Fehler uftrete.", + "message.confirm-remove": "Sind Sie sich sicher, dass Sie {target} wänd entferne?", + "message.confirm-reset": "Sind Sie sicher, dass Sie d Statistike vo {target} zruggsetze wänd?", + "message.delete-team-warning": "Es Team lösche dued ebefalls alli team Websiite lösche.", + "message.delete-website-warning": "Alli dezueghörige Date werded ebefalls glöscht.", + "message.error": "Es isch en Fehler ufträte.", "message.event-log": "{event} uf {url}", "message.go-to-settings": "Zu de Istellige", - "message.incorrect-username-password": "Falschs Passwort oder Benutzername.", + "message.incorrect-username-password": "Falsches Passwort oder Benutzername.", "message.invalid-domain": "Ungültigi Domain", "message.min-password-length": "Miminamli längi vo {n} Zeiche", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.new-version-available": "Es isch en neue Version vo Umami {version} verfügbar!", "message.no-data-available": "Kei Date vorhande.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Es sind kei Event Date verfügbar.", "message.no-match-password": "Passwörter stimmed ned überi", - "message.no-results-found": "No results were found.", + "message.no-results-found": "Kei Ergäbnis gfunde.", "message.no-team-websites": "Dem Team sind kei Websiite zuegordnet.", "message.no-teams": "Bisher sind no kei Teams erstellt worde.", "message.no-users": "Da gits kei Benutzer", "message.no-websites-configured": "Es isch kei Websiite vorhande.", "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": "Um die Websiite zruggzsetze, typed Sie {confirmation} is Feld unde dran.", "message.reset-website-warning": "Alli Date für die Websiite werdet glöscht, nur de Tracking Code blibt bestah.", "message.saved": "Erfolgrich gspeichert.", "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 däm Team.", "message.team-not-found": "Team nöd gfunde.", - "message.team-websites-info": "Websiite chönd vo jedem im Team agluegt werde", + "message.team-websites-info": "Websiite chöi vo jedem im Team agluegt werde", "message.tracking-code": "Tracking Code", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", - "message.user-deleted": "Benutzer glöscht.", - "message.viewed-page": "Viewed page", - "message.visitor-log": "Bsuecher us {country} benutzt {browser} uf {os} {device}", - "message.visitors-dropped-off": "Visitors dropped off" -} + "message.transfer-team-website-to-user": "Websiite uf zu Ihrem Account transferiere?", + "message.transfer-user-website-to-team": "Wähled Sie s Team zum däm Websiite transferiert werde söll.", + "message.transfer-website": "Übertraged Sie d Websiite Eigetümerrecht uf Ihre Account oder uf es anders Team", + "message.triggered-event": "Usglösts Ereigniss", + "message.user-deleted": "Bnutzer glöscht.", + "message.viewed-page": "Siite agluegt", + "message.visitor-log": "Bsuecher us {country} nutzt {browser} uf {os} {device}", + "message.visitors-dropped-off": "Bsuercher verlore" +} \ No newline at end of file From 586d223bdd220b4329cfbcca71a9e968060caf9a Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 26 Oct 2024 11:36:43 -0700 Subject: [PATCH 16/18] Updated lang files. --- public/intl/messages/cs-CZ.json | 134 +++++++-------- public/intl/messages/de-CH.json | 290 ++++++++++++++++---------------- public/intl/messages/de-DE.json | 6 +- public/intl/messages/ru-RU.json | 268 ++++++++++++++--------------- src/lang/ru-RU.json | 2 +- 5 files changed, 350 insertions(+), 350 deletions(-) diff --git a/public/intl/messages/cs-CZ.json b/public/intl/messages/cs-CZ.json index 26ae71415c..aa08174e13 100644 --- a/public/intl/messages/cs-CZ.json +++ b/public/intl/messages/cs-CZ.json @@ -2,7 +2,7 @@ "label.access-code": [ { "type": 0, - "value": "Access code" + "value": "Přístupový kód" } ], "label.actions": [ @@ -14,31 +14,31 @@ "label.activity": [ { "type": 0, - "value": "Activity log" + "value": "Log aktivity" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "Přidat" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Přidat popis" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Přidat člena" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Přidat krok" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Po" } ], "label.all": [ @@ -68,7 +68,7 @@ "label.all-time": [ { "type": 0, - "value": "All time" + "value": "Celá doba" } ], "label.analytics": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Průměr" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Před" } ], "label.bounce-rate": [ @@ -110,13 +110,13 @@ "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Prohlížeč" } ], "label.browsers": [ { "type": 0, - "value": "Prohlížeč" + "value": "Prohlížeče" } ], "label.cancel": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "Města" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "Město" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "Vyčistit vše" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Porovnat" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "Potvrdit" } ], "label.confirm-password": [ @@ -170,61 +170,61 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Obsahuje" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "Pokračovat" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "Počet" } ], "label.countries": [ { "type": 0, - "value": "Země" + "value": "Státy" } ], "label.country": [ { "type": 0, - "value": "Country" + "value": "Stát" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Vytvořit" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Vytvořit hlášení" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "Vytvořit tým" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "Vytvořit uživatele" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "Vytvořeno" } ], "label.created-by": [ @@ -236,7 +236,7 @@ "label.current": [ { "type": 0, - "value": "Current" + "value": "Aktuální" } ], "label.current-password": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Datum" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Den" } ], "label.default-date-range": [ @@ -296,19 +296,19 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Smazat hlášení" } ], "label.delete-team": [ { "type": 0, - "value": "Delete team" + "value": "Smazat tým" } ], "label.delete-user": [ { "type": 0, - "value": "Delete user" + "value": "Smazat uživatele" } ], "label.delete-website": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Popis" } ], "label.desktop": [ @@ -332,13 +332,13 @@ "label.details": [ { "type": 0, - "value": "Details" + "value": "Detaily" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "Zařízení" } ], "label.devices": [ @@ -356,7 +356,7 @@ "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Neobsahuje" } ], "label.domain": [ @@ -380,13 +380,13 @@ "label.edit-dashboard": [ { "type": 0, - "value": "Edit dashboard" + "value": "Upravit dashboard" } ], "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Upravit člena" } ], "label.enable-share-url": [ @@ -404,13 +404,13 @@ "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Vstupní URL" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Událost" } ], "label.event-data": [ @@ -440,7 +440,7 @@ "label.field": [ { "type": 0, - "value": "Field" + "value": "Pole" } ], "label.fields": [ @@ -452,7 +452,7 @@ "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Filtr" } ], "label.filter-combined": [ @@ -470,7 +470,7 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Filtry" } ], "label.first-seen": [ @@ -494,13 +494,13 @@ "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Cíl" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Cíle" } ], "label.goals-description": [ @@ -596,13 +596,13 @@ "label.language": [ { "type": 0, - "value": "Language" + "value": "Jazyk" } ], "label.languages": [ { "type": 0, - "value": "Languages" + "value": "Jazyky" } ], "label.laptop": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Posledních " }, { "type": 1, @@ -650,7 +650,7 @@ }, { "type": 0, - "value": " months" + "value": " měsíců" } ], "label.last-seen": [ @@ -662,13 +662,13 @@ "label.leave": [ { "type": 0, - "value": "Leave" + "value": "Opustit" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "Opustit tým" } ], "label.less-than": [ @@ -698,13 +698,13 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Spravovat" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Správce" } ], "label.max": [ @@ -716,13 +716,13 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "Člen" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "Členové" } ], "label.min": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Můj účet" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Mé weby" } ], "label.name": [ @@ -822,13 +822,13 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Přehled" } ], "label.owner": [ { "type": 0, - "value": "Owner" + "value": "Vlastník" } ], "label.page-of": [ @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Název stránky" } ], "label.pages": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Cesta" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Cesty" } ], "label.powered-by": [ @@ -1444,13 +1444,13 @@ "label.visitors": [ { "type": 0, - "value": "Návštěvy" + "value": "Návštěvníci" } ], "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Návštěvy" } ], "label.website": [ @@ -1474,13 +1474,13 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Okno" } ], "label.yesterday": [ { "type": 0, - "value": "Yesterday" + "value": "Včera" } ], "message.action-confirmation": [ diff --git a/public/intl/messages/de-CH.json b/public/intl/messages/de-CH.json index 7b46c539b0..37f1b9de6e 100644 --- a/public/intl/messages/de-CH.json +++ b/public/intl/messages/de-CH.json @@ -20,25 +20,25 @@ "label.add": [ { "type": 0, - "value": "Add" + "value": "hinzuefüege" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Beschriibig hinzuefüege" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Mitglied hinzuefüege" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Schritt hinzuefüege" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Nach" } ], "label.all": [ @@ -68,7 +68,7 @@ "label.all-time": [ { "type": 0, - "value": "Gesamte Zitruum" + "value": "Gsamte Zitruum" } ], "label.analytics": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Durchschnitt" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Vor" } ], "label.bounce-rate": [ @@ -104,7 +104,7 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Uufschlüsselig" } ], "label.browser": [ @@ -140,7 +140,7 @@ "label.city": [ { "type": 0, - "value": "City" + "value": "Stadt" } ], "label.clear-all": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Vergliiche" } ], "label.confirm": [ @@ -170,7 +170,7 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Enthaltet" } ], "label.continue": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Azahl" } ], "label.countries": [ @@ -194,19 +194,19 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Land" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Erstelle" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Bricht erstelle" } ], "label.create-team": [ @@ -236,13 +236,13 @@ "label.current": [ { "type": 0, - "value": "Current" + "value": "Aktuell" } ], "label.current-password": [ { "type": 0, - "value": "Jetzigs Passwort" + "value": "Aktuells Passwort" } ], "label.custom-range": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Datum" } ], "label.date-range": [ @@ -278,13 +278,13 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Tag" } ], "label.default-date-range": [ { "type": 0, - "value": "Vorigstellte Datumsbereich" + "value": "Voriigstellte Datumsbereich" } ], "label.delete": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Bricht lösche" } ], "label.delete-team": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Beschriibig" } ], "label.desktop": [ @@ -338,7 +338,7 @@ "label.device": [ { "type": 0, - "value": "Device" + "value": "Grät" } ], "label.devices": [ @@ -350,13 +350,13 @@ "label.dismiss": [ { "type": 0, - "value": "Verwerfe" + "value": "Verwärfe" } ], "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Enthaltet nid" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Absprung" } ], "label.edit": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Mitglied bearbeite" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Schlussschritt" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Iigangs URL" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Ereigniss" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Ereigniss Date" } ], "label.events": [ @@ -428,25 +428,25 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "Uusgangs URL" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Falsch" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Fäld" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Fälder" } ], "label.filter": [ @@ -476,49 +476,49 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Erstmal gse" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Tunnel" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Verstönd Sie d Konversions- und Abspruungsrate vo Nutzer." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Ziel" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Ziele" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "verfolged Sie Ihri Ziel für Siitenufrüef und Ereigniss." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Grösser als" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Grösser oder gliich" } ], "label.host": [ @@ -536,37 +536,37 @@ "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Iiblick" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Vertüfed Sie sich i Ihri Date, mit Hilf vo Segment und Filter." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Isch" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Isch nid" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Isch ned gsetzt" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Isch gsetzt" } ], "label.join": [ @@ -584,13 +584,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Reis" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Verstönd Sie, wie Nutzer dur Ihri Website navigiered." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Letzti " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " Mönet" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Zletzt gse" } ], "label.leave": [ @@ -674,31 +674,31 @@ "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Kliiner als" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Kliiner oder gliich" } ], "label.login": [ { "type": 0, - "value": "Aamelde" + "value": "Aamälde" } ], "label.logout": [ { "type": 0, - "value": "Abmelde" + "value": "Abmälde" } ], "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Verwalte" } ], "label.manager": [ @@ -716,7 +716,7 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "Mitglied" } ], "label.members": [ @@ -734,7 +734,7 @@ "label.mobile": [ { "type": 0, - "value": "Handy" + "value": "Händy" } ], "label.more": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Min Account" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Mini Websiite" } ], "label.name": [ @@ -822,7 +822,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Übersicht" } ], "label.owner": [ @@ -834,7 +834,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Siite " }, { "type": 1, @@ -842,7 +842,7 @@ }, { "type": 0, - "value": " of " + "value": " vo " }, { "type": 1, @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Siitetitel" } ], "label.pages": [ @@ -876,19 +876,19 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Pfad" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Pfade" } ], "label.powered-by": [ { "type": 0, - "value": "Betribe dur " + "value": "Betriibe dur " }, { "type": 1, @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Vorherig" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Vorherigi Periode" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Vorherigs Jahr" } ], "label.profile": [ @@ -940,7 +940,7 @@ "label.query": [ { "type": 0, - "value": "Query" + "value": "Abfrag" } ], "label.query-parameters": [ @@ -958,13 +958,13 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Verwiiser" } ], "label.referrers": [ { "type": 0, - "value": "Referrer" + "value": "Verwiisendi" } ], "label.refresh": [ @@ -1000,13 +1000,13 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Mitglied entferne" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Brichte" } ], "label.required": [ @@ -1036,25 +1036,25 @@ "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Mässed Sie d Verwiilduur vo Ihrere Website, indem Sie verfolged wie oft ihri Nutzer zruggkehred." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Umsatz" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Lueged Sie sich Ihre Umsatz im Lauf vor Ziit a." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Umsatzeigenschafte" } ], "label.role": [ @@ -1066,7 +1066,7 @@ "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Abfrag starte" } ], "label.save": [ @@ -1084,25 +1084,25 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Sueche" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Auswähle" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Datä uuswähle" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Rollä uuswähle" } ], "label.select-website": [ @@ -1114,13 +1114,13 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Sitzig" } ], "label.sessions": [ { "type": 0, - "value": "Sessions" + "value": "Sitzige" } ], "label.settings": [ @@ -1144,19 +1144,19 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Startschritt" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Schritt" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Summe" } ], "label.tablet": [ @@ -1180,7 +1180,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Team Manager" } ], "label.team-member": [ @@ -1192,7 +1192,7 @@ "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Team Name" } ], "label.team-owner": [ @@ -1204,13 +1204,13 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Nur für Teammitglieder sichtbar" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Team Websiite" } ], "label.teams": [ @@ -1228,19 +1228,19 @@ "label.this-month": [ { "type": 0, - "value": "De Monet" + "value": "Dä Monet" } ], "label.this-week": [ { "type": 0, - "value": "Die Wuche" + "value": "Diä Wuuche" } ], "label.this-year": [ { "type": 0, - "value": "Das Jahr" + "value": "Das Johr" } ], "label.timezone": [ @@ -1264,7 +1264,7 @@ "label.toggle-charts": [ { "type": 0, - "value": "Schaubilder umschalte" + "value": "Charts umschalte" } ], "label.total": [ @@ -1276,7 +1276,7 @@ "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Gsamti Datesätz" } ], "label.tracking-code": [ @@ -1288,49 +1288,49 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Transaktione" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Transferiere" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Websiite transferiere" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Wahr" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Typ" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Einzigartigi" } ], "label.unique-visitors": [ { "type": 0, - "value": "Eidütigi Bsuecher" + "value": "Einzigartigi Bsuecher" } ], "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Einzigartigi Kunde" } ], "label.unknown": [ @@ -1342,7 +1342,7 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Unbennant" } ], "label.update": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Benutzereigeschafte" } ], "label.username": [ @@ -1396,13 +1396,13 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Tracked Sie Ihri Kampagnen mit UTM Parameters." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Wärt" } ], "label.view": [ @@ -1420,7 +1420,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Nume aluege" } ], "label.views": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Ufrüef pro Bsuech" } ], "label.visit-duration": [ @@ -1450,7 +1450,7 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Bsüech" } ], "label.website": [ @@ -1474,7 +1474,7 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Fenster" } ], "label.yesterday": [ @@ -1486,7 +1486,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Typed Sie " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " is Feld underhalb um z bestätige." } ], "message.active-users": [ @@ -1534,7 +1534,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Gsammleti Date" } ], "message.confirm-delete": [ @@ -1568,7 +1568,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Sind Sie sich sicher, dass Sie " }, { "type": 1, @@ -1576,13 +1576,13 @@ }, { "type": 0, - "value": "?" + "value": " wänd entferne?" } ], "message.confirm-reset": [ { "type": 0, - "value": "Sind Sie sicher, dass Sie dStatistike vo " + "value": "Sind Sie sicher, dass Sie d Statistike vo " }, { "type": 1, @@ -1590,25 +1590,25 @@ }, { "type": 0, - "value": " zruggsetze wend?" + "value": " zruggsetze wänd?" } ], "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Es Team lösche dued ebefalls alli team Websiite lösche." } ], "message.delete-website-warning": [ { "type": 0, - "value": "Alli dezueghörige Date werdet ebefalls glöscht." + "value": "Alli dezueghörige Date werded ebefalls glöscht." } ], "message.error": [ { "type": 0, - "value": "Es isch en Fehler uftrete." + "value": "Es isch en Fehler ufträte." } ], "message.event-log": [ @@ -1634,7 +1634,7 @@ "message.incorrect-username-password": [ { "type": 0, - "value": "Falschs Passwort oder Benutzername." + "value": "Falsches Passwort oder Benutzername." } ], "message.invalid-domain": [ @@ -1660,7 +1660,7 @@ "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Es isch en neue Version vo Umami " }, { "type": 1, @@ -1668,7 +1668,7 @@ }, { "type": 0, - "value": " is available!" + "value": " verfügbar!" } ], "message.no-data-available": [ @@ -1680,7 +1680,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Es sind kei Event Date verfügbar." } ], "message.no-match-password": [ @@ -1692,7 +1692,7 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Kei Ergäbnis gfunde." } ], "message.no-team-websites": [ @@ -1728,7 +1728,7 @@ "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "Um die Websiite zruggzsetze, typed Sie " }, { "type": 1, @@ -1736,7 +1736,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " is Feld unde dran." } ], "message.reset-website-warning": [ @@ -1760,7 +1760,7 @@ "message.team-already-member": [ { "type": 0, - "value": "Sie sind bereits es Mitglied vo dem Team." + "value": "Sie sind bereits es Mitglied vo däm Team." } ], "message.team-not-found": [ @@ -1772,7 +1772,7 @@ "message.team-websites-info": [ { "type": 0, - "value": "Websiite chönd vo jedem im Team agluegt werde" + "value": "Websiite chöi vo jedem im Team agluegt werde" } ], "message.tracking-code": [ @@ -1784,37 +1784,37 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Websiite uf zu Ihrem Account transferiere?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Wähled Sie s Team zum däm Websiite transferiert werde söll." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Übertraged Sie d Websiite Eigetümerrecht uf Ihre Account oder uf es anders Team" } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Usglösts Ereigniss" } ], "message.user-deleted": [ { "type": 0, - "value": "Benutzer glöscht." + "value": "Bnutzer glöscht." } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Siite agluegt" } ], "message.visitor-log": [ @@ -1828,7 +1828,7 @@ }, { "type": 0, - "value": " benutzt " + "value": " nutzt " }, { "type": 1, @@ -1854,7 +1854,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Bsuercher verlore" } ] } diff --git a/public/intl/messages/de-DE.json b/public/intl/messages/de-DE.json index 84e7364c53..b5ec879314 100644 --- a/public/intl/messages/de-DE.json +++ b/public/intl/messages/de-DE.json @@ -410,13 +410,13 @@ "label.event": [ { "type": 0, - "value": "Ereigniss" + "value": "Ereignis" } ], "label.event-data": [ { "type": 0, - "value": "Ereignissdaten" + "value": "Ereignisdaten" } ], "label.events": [ @@ -1798,7 +1798,7 @@ "message.triggered-event": [ { "type": 0, - "value": "Ausgelöstes Ereigniss" + "value": "Ereignis ausgelöst" } ], "message.user-deleted": [ diff --git a/public/intl/messages/ru-RU.json b/public/intl/messages/ru-RU.json index e8f7f5b4fc..b7c0165ca8 100644 --- a/public/intl/messages/ru-RU.json +++ b/public/intl/messages/ru-RU.json @@ -20,25 +20,25 @@ "label.add": [ { "type": 0, - "value": "Add" + "value": "Добавить" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Добавить описание" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Добавить участника" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Добавить шаг" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "После" } ], "label.all": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Средний" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "До" } ], "label.bounce-rate": [ @@ -104,13 +104,13 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Авария" } ], "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Браузер" } ], "label.browsers": [ @@ -140,7 +140,7 @@ "label.city": [ { "type": 0, - "value": "City" + "value": "Город" } ], "label.clear-all": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Сравнить" } ], "label.confirm": [ @@ -170,7 +170,7 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Содержит" } ], "label.continue": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Считать" } ], "label.countries": [ @@ -194,19 +194,19 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Страна" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Создать" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Создать отчет" } ], "label.create-team": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Создано" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Текущий" } ], "label.current-password": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Дата" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "День" } ], "label.default-date-range": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Удалить отчет" } ], "label.delete-team": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Описание" } ], "label.desktop": [ @@ -338,7 +338,7 @@ "label.device": [ { "type": 0, - "value": "Device" + "value": "Устройство" } ], "label.devices": [ @@ -356,7 +356,7 @@ "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Не содержит" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Высадка" } ], "label.edit": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Редактировать участника" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Конечный шаг" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL-адрес входа" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Событие" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Данные о событии" } ], "label.events": [ @@ -428,31 +428,31 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL-адрес выхода" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Ложь" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Поле" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Поля" } ], "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Фильтр" } ], "label.filter-combined": [ @@ -470,55 +470,55 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Фильтры" } ], "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Первый вход" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Воронка" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Изучите коэффициент конверсии и ухода пользователей." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Цель" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Цели" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Отслеживайте свои цели по просмотрам страниц и событиям." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Больше, чем" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Больше или равно" } ], "label.host": [ @@ -536,37 +536,37 @@ "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Информация" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Погрузитесь глубже в свои данные с помощью сегментов и фильтров." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Является" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Не установлен" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Не установлено" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Установлен" } ], "label.join": [ @@ -590,7 +590,7 @@ "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Поймите, как пользователи перемещаются по вашему сайту." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Последние " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " месяцев" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Последний вход" } ], "label.leave": [ @@ -674,13 +674,13 @@ "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Меньше, чем" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Меньше или равно" } ], "label.login": [ @@ -698,25 +698,25 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Управление" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Менеджер" } ], "label.max": [ { "type": 0, - "value": "Max" + "value": "Максимум" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "Участник" } ], "label.members": [ @@ -728,7 +728,7 @@ "label.min": [ { "type": 0, - "value": "Min" + "value": "Минимум" } ], "label.mobile": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Мой профиль" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Мои сайты" } ], "label.name": [ @@ -789,7 +789,7 @@ "value": [ { "type": 0, - "value": "record" + "value": "запись" } ] }, @@ -797,7 +797,7 @@ "value": [ { "type": 0, - "value": "records" + "value": "записи" } ] } @@ -822,7 +822,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Обзор" } ], "label.owner": [ @@ -834,7 +834,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Страница " }, { "type": 1, @@ -842,7 +842,7 @@ }, { "type": 0, - "value": " of " + "value": " из " }, { "type": 1, @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Название страницы" } ], "label.pages": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Путь" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Пути" } ], "label.powered-by": [ @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Предыдущий" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Предыдущий период" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Предыдущий год" } ], "label.profile": [ @@ -922,13 +922,13 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Свойства" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Свойство" } ], "label.queries": [ @@ -940,7 +940,7 @@ "label.query": [ { "type": 0, - "value": "Query" + "value": "Запрос" } ], "label.query-parameters": [ @@ -958,7 +958,7 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Реферер" } ], "label.referrers": [ @@ -982,7 +982,7 @@ "label.region": [ { "type": 0, - "value": "Region" + "value": "Регион" } ], "label.regions": [ @@ -1000,13 +1000,13 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Удалить участника" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Отчеты" } ], "label.required": [ @@ -1030,31 +1030,31 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Удержание" } ], "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Измерьте «прилипаемость» вашего сайта, отслеживая, как часто пользователи возвращаются на него." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Выручка" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Изучите свои доходы за определенное время." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Доходная недвижимость" } ], "label.role": [ @@ -1066,7 +1066,7 @@ "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Выполнить запрос" } ], "label.save": [ @@ -1084,25 +1084,25 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Поиск" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Выберите" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Выберите дату" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Выберите роль" } ], "label.select-website": [ @@ -1114,7 +1114,7 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Сессия" } ], "label.sessions": [ @@ -1144,19 +1144,19 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Начальный этап" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Шаги" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Сумма" } ], "label.tablet": [ @@ -1180,7 +1180,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Менеджер команды" } ], "label.team-member": [ @@ -1192,7 +1192,7 @@ "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Название команды" } ], "label.team-owner": [ @@ -1204,13 +1204,13 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Только командный просмотр" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Веб-сайты команды" } ], "label.teams": [ @@ -1270,13 +1270,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "Всего" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Всего записей" } ], "label.tracking-code": [ @@ -1288,37 +1288,37 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Транзакции" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Передача" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Передать сайт" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Правда" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Тип" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Уникальный" } ], "label.unique-visitors": [ @@ -1330,7 +1330,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Уникальные клиенты" } ], "label.unknown": [ @@ -1342,13 +1342,13 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Без названия" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "Обновление" } ], "label.url": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Собственность пользователя" } ], "label.username": [ @@ -1396,13 +1396,13 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Отслеживайте свои кампании с помощью UTM-параметров." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Значение" } ], "label.view": [ @@ -1420,7 +1420,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Только просмотр" } ], "label.views": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Просмотров за посещение" } ], "label.visit-duration": [ @@ -1450,13 +1450,13 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Посещения" } ], "label.website": [ { "type": 0, - "value": "Website" + "value": "Сайт" } ], "label.website-id": [ @@ -1474,7 +1474,7 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Окно" } ], "label.yesterday": [ @@ -1486,7 +1486,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Введите " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " в поле ниже, чтобы подтвердить." } ], "message.active-users": [ @@ -1510,7 +1510,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Собранные данные" } ], "message.confirm-delete": [ @@ -1544,7 +1544,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Вы уверены, что хотите удалить " }, { "type": 1, @@ -1572,7 +1572,7 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "При удалении команды будут удалены и все ее веб-сайты." } ], "message.delete-website-warning": [ @@ -1594,7 +1594,7 @@ }, { "type": 0, - "value": " on " + "value": " на " }, { "type": 1, @@ -1636,7 +1636,7 @@ "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Вышла новая версия Umami " }, { "type": 1, @@ -1644,7 +1644,7 @@ }, { "type": 0, - "value": " is available!" + "value": "!" } ], "message.no-data-available": [ @@ -1656,7 +1656,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Данные о событиях отсутствуют." } ], "message.no-match-password": [ @@ -1668,7 +1668,7 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Результаты не найдены." } ], "message.no-team-websites": [ @@ -1760,25 +1760,25 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Перенести этот сайт в свой прфоиль?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Выберите команду, которой нужно передать этот сайт." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Передайте право владения сайтом своей учетной записи или другой команде." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Запущенное событие" } ], "message.user-deleted": [ @@ -1790,7 +1790,7 @@ "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Просмотренная страница" } ], "message.visitor-log": [ @@ -1830,7 +1830,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Высадка посетителей" } ] } diff --git a/src/lang/ru-RU.json b/src/lang/ru-RU.json index 745f2179b6..558b411a34 100644 --- a/src/lang/ru-RU.json +++ b/src/lang/ru-RU.json @@ -124,7 +124,7 @@ "label.name": "Имя", "label.new-password": "Новый пароль", "label.none": "Не указано", - "label.number-of-records": "{x} {x, множественное число, один {запись} другие {записи}}", + "label.number-of-records": "{x} {x, plural, one {запись} other {записи}}", "label.ok": "OK", "label.os": "OS", "label.overview": "Обзор", From 3fb68e168442a9dc142505e4570ed411393d2189 Mon Sep 17 00:00:00 2001 From: wuzhiqing Date: Mon, 28 Oct 2024 02:01:46 +0000 Subject: [PATCH 17/18] feat: Add support for hash-based routing tracking --- src/tracker/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tracker/index.js b/src/tracker/index.js index 707594cf40..1cf7c18606 100644 --- a/src/tracker/index.js +++ b/src/tracker/index.js @@ -53,8 +53,9 @@ const parseURL = url => { try { - const { pathname, search } = new URL(url); - url = pathname + search; + // use location.origin as the base to handle cases where the url is a relative path + const { pathname, search, hash } = new URL(url, location.origin); + url = pathname + search + hash; } catch (e) { /* empty */ } From 1225473c2008cd9e4a0479c6f58f96b4d798aab2 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Tue, 29 Oct 2024 16:39:51 -0700 Subject: [PATCH 18/18] Added TRACKER_SCRIPT_URL env var. --- next.config.js | 18 ++++++++++++------ package.json | 2 +- rollup.tracker.config.mjs | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/next.config.js b/next.config.js index b7d7331d6a..33a43ee7bb 100644 --- a/next.config.js +++ b/next.config.js @@ -3,6 +3,8 @@ require('dotenv').config(); const path = require('path'); const pkg = require('./package.json'); +const TRACKER_SCRIPT = '/script.js'; + const basePath = process.env.BASE_PATH; const collectApiEndpoint = process.env.COLLECT_API_ENDPOINT; const cloudMode = process.env.CLOUD_MODE; @@ -14,6 +16,7 @@ const forceSSL = process.env.FORCE_SSL; const frameAncestors = process.env.ALLOWED_FRAME_URLS; const privateMode = process.env.PRIVATE_MODE; const trackerScriptName = process.env.TRACKER_SCRIPT_NAME; +const trackerScriptURL = process.env.TRACKER_SCRIPT_URL; const contentSecurityPolicy = [ `default-src 'self'`, @@ -58,13 +61,20 @@ const headers = [ headers: defaultHeaders, }, { - source: '/script.js', + source: TRACKER_SCRIPT, headers: trackerHeaders, }, ]; const rewrites = []; +if (trackerScriptURL) { + rewrites.push({ + source: TRACKER_SCRIPT, + destination: trackerScriptURL, + }); +} + if (collectApiEndpoint) { rewrites.push({ source: collectApiEndpoint, @@ -100,7 +110,7 @@ if (trackerScriptName) { rewrites.push({ source: normalizedSource, - destination: '/script.js', + destination: TRACKER_SCRIPT, }); headers.push({ @@ -184,10 +194,6 @@ const config = { async rewrites() { return [ ...rewrites, - { - source: '/script.js', - destination: 'https://tracker-script.umami.dev/', - }, { source: '/telemetry.js', destination: '/api/scripts/telemetry', diff --git a/package.json b/package.json index c78a113750..77c40cae32 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "2.13.2", + "version": "2.14.0", "description": "A simple, fast, privacy-focused alternative to Google Analytics.", "author": "Umami Software, Inc. ", "license": "MIT", diff --git a/rollup.tracker.config.mjs b/rollup.tracker.config.mjs index 4b1f0e0e25..05df28798d 100644 --- a/rollup.tracker.config.mjs +++ b/rollup.tracker.config.mjs @@ -5,7 +5,7 @@ import { terser } from 'rollup-plugin-terser'; export default { input: 'src/tracker/index.js', output: { - file: 'public/tracker.js', + file: 'public/script.js', format: 'iife', }, plugins: [