Files
TREK/shared/src/i18n/uk/dayplan.ts
T
Maurice f46cc8a98e Reorder whole days and insert a day (#589) (#1148)
* feat(days): reorder whole days and insert a day at a position

Adds reorderDays + insertDay to the day service and a PUT /days/reorder route
(plus an optional position on create). Day rows stay stable so a day's
assignments, notes, bookings and accommodations ride along by id; on a dated
trip the calendar dates stay pinned to their slots while the content moves
across them, and each booking's date is re-stamped onto its day's new date
(time-of-day preserved) so day_id stays consistent. Renumbering uses the
two-phase write to avoid the UNIQUE(trip_id, day_number) collision, and a move
that would invert an accommodation's check-in/out span is rejected.

* feat(planner): reorder days from a toolbar popup, and add days

A new toolbar button opens a popup listing the days; drag a row by its grip or
use the up/down arrows to reorder, and add a day from there. Reorders apply
optimistically with rollback and sync over WebSocket; the day headers are left
untouched, so the existing place drop-targets are unaffected.

* i18n: add day-reorder strings across all languages
2026-06-12 00:17:49 +02:00

61 lines
3.8 KiB
TypeScript

import type { TranslationStrings } from '../types';
const dayplan: TranslationStrings = {
'dayplan.icsTooltip': 'Експорт календаря (ICS)',
'dayplan.emptyDay': 'На цей день місць не заплановано',
'dayplan.addNote': 'Додати нотатку',
'dayplan.editNote': 'Редагувати нотатку',
'dayplan.noteAdd': 'Додати нотатку',
'dayplan.noteEdit': 'Редагувати нотатку',
'dayplan.noteTitle': 'Нотатка',
'dayplan.noteSubtitle': 'Нотатка на день',
'dayplan.collapseAll': 'Згорнути всі дні',
'dayplan.expandAll': 'Розгорнути всі дні',
'dayplan.totalCost': 'Загальна вартість',
'dayplan.days': 'Дни',
'dayplan.dayN': 'День {n}',
'dayplan.calculating': 'Розрахунок...',
'dayplan.route': 'Маршрут',
'dayplan.optimize': 'Оптимізувати',
'dayplan.optimized': 'Маршрут оптимізовано',
'dayplan.routeError': 'Не вдалося розрахувати маршрут',
'dayplan.toast.needTwoPlaces':
'Для оптимизации маршрута нужно минимум два места',
'dayplan.toast.routeOptimized': 'Маршрут оптимизирован',
'dayplan.toast.routeOptimizedFromHotel': 'Маршрут оптимізовано від вашого житла',
'dayplan.toast.noGeoPlaces':
'Не знайдено місць з координатами для розрахунку маршруту',
'dayplan.confirmed': 'Подтверждено',
'dayplan.pendingRes': 'Ожидание',
'dayplan.pdf': 'PDF',
'dayplan.pdfTooltip': 'Експортувати план дня в PDF',
'dayplan.pdfError': 'Помилка експорту PDF',
'dayplan.cannotReorderTransport':
'Бронювання з фіксованим часом не можна переміщувати',
'dayplan.confirmRemoveTimeTitle': 'Видалити час?',
'dayplan.confirmRemoveTimeBody':
'У цього місця фіксований час ({time}). При переміщенні час буде видалено, і стане доступне вільне сортування.',
'dayplan.confirmRemoveTimeAction': 'Видалити час і перемістити',
'dayplan.confirmDeleteNoteTitle': 'Видалити нотатку?',
'dayplan.confirmDeleteNoteBody': 'Цю нотатку буде видалено назавжди.',
'dayplan.cannotDropOnTimed':
'Елементи не можна розміщувати між записами з фіксованим часом',
'dayplan.cannotBreakChronology':
'Це порушить хронологічний порядок запланованих елементів і бронювань',
'dayplan.mobile.addPlace': 'Додати місце',
'dayplan.mobile.searchPlaces': 'Пошук місць...',
'dayplan.mobile.allAssigned': 'Усі місця розподілені',
'dayplan.mobile.noMatch': 'Немає збігів',
'dayplan.mobile.createNew': 'Створити нове місце',
'dayplan.reorderDays': 'Змінити порядок днів',
'dayplan.reorderTitle': 'Змінити порядок днів',
'dayplan.reorderHint': 'Місця, нотатки та бронювання дня переміщуються разом із ним.',
'dayplan.addDay': 'Додати день',
'dayplan.moveUp': 'Перемістити вгору',
'dayplan.moveDown': 'Перемістити вниз',
'dayplan.reorderUndo': 'Змінити порядок днів',
'dayplan.reorderError': 'Не вдалося змінити порядок днів',
'dayplan.addDayError': 'Не вдалося додати день',
};
export default dayplan;