Add guided tours and unify left-to-right hall wall hang.

Visitors walk published tours in a 3D hall with stop notes; curators edit drafts via Tour editor. All galleries (artist, movement, tour) place the first work left of the entrance view and the last on the right.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Danila Khodjaef
2026-07-16 20:27:36 +03:00
co-authored by Cursor
parent 48bd17e985
commit 5ddc3fd7f0
31 changed files with 1890 additions and 124 deletions
+5
View File
@@ -15,6 +15,11 @@
"checkup": "Checkup",
"translations": "Translations",
"influences": "Influences",
"tours": "Tours",
"toursEditor": "Tour editor",
"openingTourGallery": "Opening guided tour…",
"tourEmpty": "This tour has no paintings yet.",
"tourLoadFailed": "Failed to load the tour.",
"curatorRequiredTitle": "Curator access required",
"curatorRequiredBody": "Sign in as a curator to use this tool.",
"backToGalleryBtn": "Back to gallery"
+5 -1
View File
@@ -7,5 +7,9 @@
"catalogPosition": "Catalog position",
"lightboxHint": "Click anywhere to close",
"prevPainting": "Previous painting",
"nextPainting": "Next painting"
"nextPainting": "Next painting",
"tourNotes": "Tour notes",
"tourNotesFor": "Tour notes · {{title}}",
"tourNotesEmpty": "No notes for this stop.",
"tourStopPosition": "Stop {{current}} of {{total}}"
}
+28
View File
@@ -0,0 +1,28 @@
{
"title": "Guided tours",
"popupTitle": "Guided tours",
"popupHint": "Choose a curated walkthrough of selected works.",
"close": "Close",
"loading": "Loading…",
"loadFailed": "Failed to load tours",
"noPublished": "No published tours yet.",
"noTours": "No tours yet. Create one to get started.",
"stopCount": "{{count}} stops",
"back": "← Back to gallery",
"create": "Create",
"newTourPlaceholder": "New tour title…",
"selectTour": "Select a tour to edit.",
"tourTitle": "Title",
"tourDescription": "Description",
"status": "Status",
"draft": "Draft",
"published": "Published",
"saveMeta": "Save details",
"delete": "Delete tour",
"confirmDelete": "Delete this tour and all its stops?",
"searchPainting": "Search paintings to add…",
"saveStops": "Save stops",
"remove": "Remove",
"stopBodyPlaceholder": "Tour notes for this stop (English)…",
"noStops": "No stops yet. Search and add paintings."
}
+5
View File
@@ -15,6 +15,11 @@
"checkup": "Проверка",
"translations": "Переводы",
"influences": "Влияния",
"tours": "Экскурсии",
"toursEditor": "Редактор экскурсий",
"openingTourGallery": "Открытие экскурсии…",
"tourEmpty": "В этой экскурсии пока нет картин.",
"tourLoadFailed": "Не удалось загрузить экскурсию.",
"curatorRequiredTitle": "Требуется доступ куратора",
"curatorRequiredBody": "Войдите как куратор, чтобы использовать этот инструмент.",
"backToGalleryBtn": "Вернуться в галерею"
+5 -1
View File
@@ -7,5 +7,9 @@
"catalogPosition": "Позиция в каталоге",
"lightboxHint": "Нажмите в любом месте, чтобы закрыть",
"prevPainting": "Предыдущая картина",
"nextPainting": "Следующая картина"
"nextPainting": "Следующая картина",
"tourNotes": "Текст экскурсии",
"tourNotesFor": "Экскурсия · {{title}}",
"tourNotesEmpty": "Для этой остановки нет текста.",
"tourStopPosition": "Остановка {{current}} из {{total}}"
}
+28
View File
@@ -0,0 +1,28 @@
{
"title": "Экскурсии",
"popupTitle": "Экскурсии",
"popupHint": "Выберите кураторскую подборку произведений.",
"close": "Закрыть",
"loading": "Загрузка…",
"loadFailed": "Не удалось загрузить экскурсии",
"noPublished": "Пока нет опубликованных экскурсий.",
"noTours": "Экскурсий пока нет. Создайте первую.",
"stopCount": "{{count}} остановок",
"back": "← В галерею",
"create": "Создать",
"newTourPlaceholder": "Название новой экскурсии…",
"selectTour": "Выберите экскурсию для редактирования.",
"tourTitle": "Название",
"tourDescription": "Описание",
"status": "Статус",
"draft": "Черновик",
"published": "Опубликовано",
"saveMeta": "Сохранить сведения",
"delete": "Удалить экскурсию",
"confirmDelete": "Удалить эту экскурсию и все остановки?",
"searchPainting": "Поиск картин для добавления…",
"saveStops": "Сохранить остановки",
"remove": "Убрать",
"stopBodyPlaceholder": "Текст экскурсии для этой остановки (на английском)…",
"noStops": "Остановок пока нет. Найдите и добавьте картины."
}