Add a dayTintProvider plugin hook

Lets a plugin colour-code days in the Plan sidebar. trip-segments can
already announce "Kanazawa begins" in the day plan, but it can't make
day 12 look like it belongs to Kanazawa.

dayScheduleProvider can't cover this: it renders a fixed row, and it's
capped at 60 items per provider, so one item per day would tint the
first 60 days of a six-month trip and silently stop. This hook is
bounded by day count instead.

GET /api/day-tints/:tripId returns per-day tones for three regions of a
day card - the number badge (also the mobile day chip), the header row,
and the expanded activity list. `tone` is a shorthand filling every
region a contribution doesn't name; unnamed regions render as they do
today. Tones only, never hex, so the host can pick the alpha per theme
and per region.

One contribution per day, resolved whole: first entry wins within a
provider, first granted provider wins across plugins.
This commit is contained in:
Renzo Beux
2026-07-29 12:05:31 -03:00
committed by Maurice
parent 28ffc814c0
commit c89d2bf3a1
46 changed files with 664 additions and 17 deletions
+3
View File
@@ -331,6 +331,8 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:route-provider':
'توفير ملفات تعريف توجيه يحسب بها المخطط مسارات الأيام (مثل توجيه السيارات الكهربائية مع توقفات للشحن)',
'admin.plugins.perm.hook:day-schedule-provider': 'إلحاق مدخلات زمنية بخطة اليوم (توقفات للشحن، هوامش احتياطية)',
'admin.plugins.perm.hook:day-tint-provider':
'تلوين الأيام في خطة اليوم (مثلاً تحديد المرحلة التي ينتمي إليها كل يوم)',
'admin.plugins.perm.geolocation:read':
'الاستعلام عن موقعك المباشر ما دامت إحدى واجهاته مفتوحة (سيطلب متصفحك الإذن أيضًا)',
'admin.plugins.perm.hook:pdf-section-provider': 'إضافة أقسام نصية إلى تصدير PDF للرحلة',
@@ -452,6 +454,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'يرسم على الخريطة',
'admin.plugins.cap.routing': 'يوفّر التوجيه',
'admin.plugins.cap.daySchedule': 'يضيف أوقات الخطة',
'admin.plugins.cap.dayTint': 'يلوّن الأيام',
'admin.plugins.cap.geolocation': 'يقرأ موقعك',
'admin.plugins.cap.events': 'يتفاعل مع النشاط',
'admin.plugins.cap.requiresAddon': 'يتطلب {addon}',
+3
View File
@@ -317,6 +317,8 @@ const admin: TranslationStrings = {
'Oferecer perfis de roteamento com os quais o planejador calcula os dias (ex. rotas para carro elétrico com paradas de recarga)',
'admin.plugins.perm.hook:day-schedule-provider':
'Anexar entradas de horário ao plano do dia (paradas de recarga, margens de segurança)',
'admin.plugins.perm.hook:day-tint-provider':
'Colorir os dias no plano do dia (por exemplo, a qual trecho da viagem um dia pertence)',
'admin.plugins.perm.geolocation:read':
'Consultar sua localização em tempo real enquanto uma das visualizações dele estiver aberta (seu navegador ainda pedirá permissão)',
'admin.plugins.perm.hook:pdf-section-provider': 'Anexar seções de texto à exportação em PDF da viagem',
@@ -441,6 +443,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Desenha no mapa',
'admin.plugins.cap.routing': 'Oferece roteamento',
'admin.plugins.cap.daySchedule': 'Adiciona horários ao plano',
'admin.plugins.cap.dayTint': 'Colore os dias',
'admin.plugins.cap.geolocation': 'Lê sua localização',
'admin.plugins.cap.events': 'Reage a atividades',
'admin.plugins.cap.requiresAddon': 'Requer {addon}',
+3
View File
@@ -461,6 +461,8 @@ const admin: TranslationStrings = {
'Oferir perfils de ruta amb què el planificador pot calcular els dies (p. ex. rutes per a cotxe elèctric amb parades de recàrrega)',
'admin.plugins.perm.hook:day-schedule-provider':
'Afegir entrades horàries al pla del dia (parades de recàrrega, marges de seguretat)',
'admin.plugins.perm.hook:day-tint-provider':
'Acolorir els dies del pla del dia (per exemple, a quin tram del viatge pertany un dia)',
'admin.plugins.perm.geolocation:read':
"Consultar la teva ubicació en temps real mentre una de les seves vistes és oberta (el teu navegador també t'ho demanarà)",
'admin.plugins.updateConsentTitle': 'Aquesta actualització necessita permisos nous',
@@ -566,6 +568,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Dibuixa al mapa',
'admin.plugins.cap.routing': 'Calcula rutes',
'admin.plugins.cap.daySchedule': 'Afegeix horaris al pla',
'admin.plugins.cap.dayTint': 'Acoloreix els dies',
'admin.plugins.cap.geolocation': 'Llegeix la teva ubicació',
'admin.plugins.cap.events': "Reacciona a l'activitat",
'admin.plugins.cap.requiresAddon': 'Requereix {addon}',
+3
View File
@@ -318,6 +318,8 @@ const admin: TranslationStrings = {
'Nabízet trasovací profily, podle kterých plánovač počítá trasy dnů (např. trasování pro elektromobily se zastávkami na nabíjení)',
'admin.plugins.perm.hook:day-schedule-provider':
'Připojovat časové položky k dennímu plánu (zastávky na nabíjení, časové rezervy)',
'admin.plugins.perm.hook:day-tint-provider':
'Barevně odlišovat dny v denním plánu (například ke které části cesty den patří)',
'admin.plugins.perm.geolocation:read':
'Zjišťovat vaši aktuální polohu, dokud je otevřené některé z jeho zobrazení (váš prohlížeč se navíc zeptá sám)',
'admin.plugins.perm.hook:pdf-section-provider': 'Připojovat textové sekce k PDF exportu cesty',
@@ -439,6 +441,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Kreslí na mapě',
'admin.plugins.cap.routing': 'Nabízí trasování',
'admin.plugins.cap.daySchedule': 'Doplňuje časy plánu',
'admin.plugins.cap.dayTint': 'Barví dny',
'admin.plugins.cap.geolocation': 'Čte vaši polohu',
'admin.plugins.cap.events': 'Reaguje na aktivitu',
'admin.plugins.cap.requiresAddon': 'Vyžaduje {addon}',
+3
View File
@@ -323,6 +323,8 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:route-provider':
'Routing-Profile anbieten, mit denen der Planer Tage berechnet (z. B. E-Auto-Routing mit Ladestopps)',
'admin.plugins.perm.hook:day-schedule-provider': 'Zeiteinträge an den Tagesplan anhängen (Ladestopps, Puffer)',
'admin.plugins.perm.hook:day-tint-provider':
'Tage im Tagesplan farblich markieren (z. B. zu welchem Reiseabschnitt ein Tag gehört)',
'admin.plugins.perm.geolocation:read':
'Deinen Live-Standort abfragen, solange eine seiner Ansichten offen ist (dein Browser fragt zusätzlich nach)',
'admin.plugins.perm.hook:pdf-section-provider': 'Textabschnitte an den PDF-Export einer Reise anhängen',
@@ -448,6 +450,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Zeichnet auf der Karte',
'admin.plugins.cap.routing': 'Bietet Routing an',
'admin.plugins.cap.daySchedule': 'Ergänzt Planzeiten',
'admin.plugins.cap.dayTint': 'Färbt Tage ein',
'admin.plugins.cap.geolocation': 'Liest deinen Standort',
'admin.plugins.cap.events': 'Reagiert auf Aktivität',
'admin.plugins.cap.requiresAddon': 'Benötigt {addon}',
+3
View File
@@ -361,6 +361,8 @@ const admin: TranslationStrings = {
'Offer routing profiles the planner can route days with (e.g. EV routing with charging stops)',
'admin.plugins.perm.hook:day-schedule-provider':
'Attach time entries to the day plan (charging stops, security buffers)',
'admin.plugins.perm.hook:day-tint-provider':
'Colour-code days in the day plan (e.g. which leg of the trip a day belongs to)',
'admin.plugins.perm.geolocation:read':
'Ask for your live position while one of its views is open (your browser will still ask first)',
'admin.plugins.perm.hook:pdf-section-provider': 'Append text sections to the trip PDF export',
@@ -483,6 +485,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Draws on the map',
'admin.plugins.cap.routing': 'Offers routing',
'admin.plugins.cap.daySchedule': 'Adds plan times',
'admin.plugins.cap.dayTint': 'Tints days',
'admin.plugins.cap.geolocation': 'Reads your position',
'admin.plugins.cap.events': 'Reacts to activity',
'admin.plugins.cap.requiresAddon': 'Requires {addon}',
+3
View File
@@ -326,6 +326,8 @@ const admin: TranslationStrings = {
'Ofrecer perfiles de ruta con los que el planificador puede calcular los días (p. ej. rutas para vehículos eléctricos con paradas de carga)',
'admin.plugins.perm.hook:day-schedule-provider':
'Añadir entradas de tiempo al plan del día (paradas de carga, márgenes de seguridad)',
'admin.plugins.perm.hook:day-tint-provider':
'Colorear los días del plan del día (por ejemplo, a qué tramo del viaje pertenece un día)',
'admin.plugins.perm.geolocation:read':
'Consultar tu ubicación en tiempo real mientras una de sus vistas esté abierta (tu navegador también pedirá permiso)',
'admin.plugins.perm.hook:pdf-section-provider': 'Añadir secciones de texto a la exportación PDF del viaje',
@@ -450,6 +452,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Dibuja en el mapa',
'admin.plugins.cap.routing': 'Ofrece rutas',
'admin.plugins.cap.daySchedule': 'Añade horarios al plan',
'admin.plugins.cap.dayTint': 'Colorea los días',
'admin.plugins.cap.geolocation': 'Lee tu ubicación',
'admin.plugins.cap.events': 'Reacciona a la actividad',
'admin.plugins.cap.requiresAddon': 'Requiere {addon}',
+3
View File
@@ -328,6 +328,8 @@ const admin: TranslationStrings = {
'Proposer des profils de routage avec lesquels le planificateur calcule les itinéraires des jours (p. ex. routage pour véhicule électrique avec arrêts de recharge)',
'admin.plugins.perm.hook:day-schedule-provider':
'Ajouter des entrées horaires au plan de la journée (arrêts de recharge, marges de sécurité)',
'admin.plugins.perm.hook:day-tint-provider':
'Colorer les jours du plan de la journée (par exemple, à quelle étape du voyage appartient un jour)',
'admin.plugins.perm.geolocation:read':
"Demander votre position en temps réel tant que l'une de ses vues est ouverte (votre navigateur vous demandera d'abord l'autorisation)",
'admin.plugins.perm.hook:pdf-section-provider': "Ajouter des sections de texte à l'export PDF du voyage",
@@ -453,6 +455,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Dessine sur la carte',
'admin.plugins.cap.routing': 'Propose des itinéraires',
'admin.plugins.cap.daySchedule': 'Ajoute des horaires',
'admin.plugins.cap.dayTint': 'Colore les jours',
'admin.plugins.cap.geolocation': 'Lit votre position',
'admin.plugins.cap.events': 'Réagit à l’activité',
'admin.plugins.cap.requiresAddon': 'Nécessite {addon}',
+3
View File
@@ -376,6 +376,8 @@ const admin: TranslationStrings = {
'Παροχή προφίλ δρομολόγησης με τα οποία ο σχεδιαστής υπολογίζει τις διαδρομές των ημερών (π.χ. δρομολόγηση ηλεκτρικού οχήματος με στάσεις φόρτισης)',
'admin.plugins.perm.hook:day-schedule-provider':
'Προσθήκη χρονικών καταχωρίσεων στο πλάνο της ημέρας (στάσεις φόρτισης, περιθώρια ασφαλείας)',
'admin.plugins.perm.hook:day-tint-provider':
'Χρωματική σήμανση ημερών στο πλάνο της ημέρας (π.χ. σε ποιο σκέλος του ταξιδιού ανήκει μια ημέρα)',
'admin.plugins.perm.geolocation:read':
'Αίτημα της τρέχουσας τοποθεσίας σας όσο μία από τις προβολές του είναι ανοιχτή (το πρόγραμμα περιήγησής σας θα ζητήσει επιπλέον επιβεβαίωση)',
'admin.plugins.perm.hook:pdf-section-provider': 'Προσθήκη ενοτήτων κειμένου στην εξαγωγή PDF του ταξιδιού',
@@ -501,6 +503,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Σχεδιάζει στον χάρτη',
'admin.plugins.cap.routing': 'Παρέχει δρομολόγηση',
'admin.plugins.cap.daySchedule': 'Προσθέτει χρόνους πλάνου',
'admin.plugins.cap.dayTint': 'Χρωματίζει τις ημέρες',
'admin.plugins.cap.geolocation': 'Διαβάζει την τοποθεσία σας',
'admin.plugins.cap.events': 'Αντιδρά σε δραστηριότητα',
'admin.plugins.cap.requiresAddon': 'Απαιτεί {addon}',
+3
View File
@@ -329,6 +329,8 @@ const admin: TranslationStrings = {
'Útvonaltervezési profilok biztosítása, amelyekkel a tervező kiszámítja a napok útvonalát (pl. e-autós útvonaltervezés töltőmegállókkal)',
'admin.plugins.perm.hook:day-schedule-provider':
'Időbejegyzések hozzáadása a napi tervhez (töltőmegállók, biztonsági ráhagyások)',
'admin.plugins.perm.hook:day-tint-provider':
'A napok színezése a napi tervben (például hogy az út melyik szakaszához tartozik egy nap)',
'admin.plugins.perm.geolocation:read':
'Az élő tartózkodási helyed lekérdezése, amíg valamelyik nézete nyitva van (a böngésződ ilyenkor is külön engedélyt kér)',
'admin.plugins.perm.hook:pdf-section-provider': 'Szöveges szakaszok hozzáfűzése az utazás PDF-exportjához',
@@ -453,6 +455,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Rajzol a térképre',
'admin.plugins.cap.routing': 'Útvonaltervezést biztosít',
'admin.plugins.cap.daySchedule': 'Időpontokat ad a tervhez',
'admin.plugins.cap.dayTint': 'Színezi a napokat',
'admin.plugins.cap.geolocation': 'Lekéri a tartózkodási helyedet',
'admin.plugins.cap.events': 'Reagál a tevékenységre',
'admin.plugins.cap.requiresAddon': '{addon} szükséges',
+3
View File
@@ -373,6 +373,8 @@ const admin: TranslationStrings = {
'Menawarkan profil routing yang dapat digunakan perencana untuk menghitung rute hari (mis. routing mobil listrik dengan pemberhentian pengisian daya)',
'admin.plugins.perm.hook:day-schedule-provider':
'Melampirkan entri waktu ke rencana hari (pemberhentian pengisian daya, jeda keamanan)',
'admin.plugins.perm.hook:day-tint-provider':
'Memberi warna pada hari di rencana hari (misalnya bagian perjalanan mana yang memuat suatu hari)',
'admin.plugins.perm.geolocation:read':
'Meminta lokasi terkinimu selama salah satu tampilannya terbuka (browser-mu tetap akan meminta izin terlebih dahulu)',
'admin.plugins.perm.hook:pdf-section-provider': 'Menambahkan bagian teks ke ekspor PDF perjalanan',
@@ -495,6 +497,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Menggambar di peta',
'admin.plugins.cap.routing': 'Menyediakan routing',
'admin.plugins.cap.daySchedule': 'Menambahkan waktu rencana',
'admin.plugins.cap.dayTint': 'Mewarnai hari',
'admin.plugins.cap.geolocation': 'Membaca lokasimu',
'admin.plugins.cap.events': 'Bereaksi terhadap aktivitas',
'admin.plugins.cap.requiresAddon': 'Membutuhkan {addon}',
+3
View File
@@ -325,6 +325,8 @@ const admin: TranslationStrings = {
'Offrire profili di routing con cui il pianificatore calcola i giorni (es. routing per auto elettriche con soste di ricarica)',
'admin.plugins.perm.hook:day-schedule-provider':
'Aggiungere voci orarie al piano della giornata (soste di ricarica, margini di sicurezza)',
'admin.plugins.perm.hook:day-tint-provider':
'Colorare i giorni nel piano della giornata (ad esempio a quale tratta del viaggio appartiene un giorno)',
'admin.plugins.perm.geolocation:read':
'Richiedere la tua posizione in tempo reale mentre una delle sue viste è aperta (il tuo browser chiederà comunque conferma)',
'admin.plugins.perm.hook:pdf-section-provider': "Aggiungere sezioni di testo all'esportazione PDF del viaggio",
@@ -448,6 +450,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Disegna sulla mappa',
'admin.plugins.cap.routing': 'Offre routing',
'admin.plugins.cap.daySchedule': 'Aggiunge orari al piano',
'admin.plugins.cap.dayTint': 'Colora i giorni',
'admin.plugins.cap.geolocation': 'Legge la tua posizione',
'admin.plugins.cap.events': "Reagisce all'attività",
'admin.plugins.cap.requiresAddon': 'Richiede {addon}',
+2
View File
@@ -341,6 +341,7 @@ const admin: TranslationStrings = {
'プランナーが日程のルート計算に使えるルーティングプロファイルを提供(例: 充電スポットを経由する EV ルーティング)',
'admin.plugins.perm.hook:day-schedule-provider':
'日程プランに時間エントリーを追加(充電ストップ、保安検査のバッファ)',
'admin.plugins.perm.hook:day-tint-provider': '日程プランの日付を色分け(例:その日が旅程のどの区間に属するか)',
'admin.plugins.perm.geolocation:read':
'このプラグインのビューが開いている間、あなたの現在地を取得(ブラウザでも改めて確認が求められます)',
'admin.plugins.perm.hook:pdf-section-provider': '旅行の PDF エクスポートにテキストセクションを追加',
@@ -461,6 +462,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': '地図に描画',
'admin.plugins.cap.routing': 'ルーティングを提供',
'admin.plugins.cap.daySchedule': '予定時刻を追加',
'admin.plugins.cap.dayTint': '日を色分け',
'admin.plugins.cap.geolocation': '現在地を読み取り',
'admin.plugins.cap.events': 'アクティビティに反応',
'admin.plugins.cap.requiresAddon': '{addon}が必要',
+2
View File
@@ -342,6 +342,7 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:route-provider':
'플래너가 일자 경로 계산에 사용할 라우팅 프로필 제공(예: 충전소 경유 전기차 라우팅)',
'admin.plugins.perm.hook:day-schedule-provider': '일자 계획에 시간 항목 추가(충전 정차, 보안 검색 여유 시간)',
'admin.plugins.perm.hook:day-tint-provider': '일자 계획에서 날짜를 색으로 구분(예: 해당 날짜가 여행의 어느 구간인지)',
'admin.plugins.perm.geolocation:read':
'해당 플러그인 화면이 열려 있는 동안 실시간 위치 요청 (브라우저에서 추가로 확인함)',
'admin.plugins.perm.hook:pdf-section-provider': '여행 PDF 내보내기에 텍스트 섹션 추가',
@@ -461,6 +462,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': '지도에 그리기',
'admin.plugins.cap.routing': '라우팅 제공',
'admin.plugins.cap.daySchedule': '계획 시간 추가',
'admin.plugins.cap.dayTint': '날짜 색상 표시',
'admin.plugins.cap.geolocation': '위치 읽기',
'admin.plugins.cap.events': '활동에 반응',
'admin.plugins.cap.requiresAddon': '{addon} 필요',
+3
View File
@@ -324,6 +324,8 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:route-provider':
'Routeprofielen aanbieden waarmee de planner dagroutes berekent (bijv. EV-routering met laadstops)',
'admin.plugins.perm.hook:day-schedule-provider': 'Tijdsitems aan het dagplan koppelen (laadstops, buffertijden)',
'admin.plugins.perm.hook:day-tint-provider':
'Dagen in het dagplan een kleur geven (bijvoorbeeld bij welk deel van de reis een dag hoort)',
'admin.plugins.perm.geolocation:read':
'Je live locatie opvragen zolang een van zijn weergaven open is (je browser vraagt zelf ook nog om toestemming)',
'admin.plugins.perm.hook:pdf-section-provider': 'Tekstsecties toevoegen aan de PDF-export van de reis',
@@ -447,6 +449,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Tekent op de kaart',
'admin.plugins.cap.routing': 'Biedt routering aan',
'admin.plugins.cap.daySchedule': 'Voegt plantijden toe',
'admin.plugins.cap.dayTint': 'Kleurt dagen',
'admin.plugins.cap.geolocation': 'Leest je locatie',
'admin.plugins.cap.events': 'Reageert op activiteit',
'admin.plugins.cap.requiresAddon': 'Vereist {addon}',
+3
View File
@@ -320,6 +320,8 @@ const admin: TranslationStrings = {
'Udostępnianie profili trasowania, za pomocą których planer wyznacza trasy dni (np. trasowanie aut elektrycznych z postojami na ładowanie)',
'admin.plugins.perm.hook:day-schedule-provider':
'Dołączanie wpisów czasowych do planu dnia (postoje na ładowanie, bufory czasowe)',
'admin.plugins.perm.hook:day-tint-provider':
'Oznaczanie dni w planie dnia kolorami (na przykład do którego etapu podróży należy dany dzień)',
'admin.plugins.perm.geolocation:read':
'Odczytywanie Twojej aktualnej lokalizacji, gdy otwarty jest któryś z jego widoków (przeglądarka i tak zapyta o zgodę)',
'admin.plugins.perm.hook:pdf-section-provider': 'Dołączanie sekcji tekstowych do eksportu PDF podróży',
@@ -445,6 +447,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Rysuje na mapie',
'admin.plugins.cap.routing': 'Oferuje trasowanie',
'admin.plugins.cap.daySchedule': 'Uzupełnia czasy planu',
'admin.plugins.cap.dayTint': 'Koloruje dni',
'admin.plugins.cap.geolocation': 'Odczytuje Twoją lokalizację',
'admin.plugins.cap.events': 'Reaguje na aktywność',
'admin.plugins.cap.requiresAddon': 'Wymaga {addon}',
+3
View File
@@ -325,6 +325,8 @@ const admin: TranslationStrings = {
'Предоставлять профили маршрутизации, по которым планировщик строит маршруты дней (например, маршрутизация для электромобилей с остановками для зарядки)',
'admin.plugins.perm.hook:day-schedule-provider':
'Добавлять записи времени в план дня (остановки для зарядки, запас времени на контроль)',
'admin.plugins.perm.hook:day-tint-provider':
'Отмечать дни в плане цветом (например, к какому этапу поездки относится день)',
'admin.plugins.perm.geolocation:read':
'Запрашивать ваше местоположение в реальном времени, пока открыто одно из его представлений (ваш браузер всё равно спросит разрешение)',
'admin.plugins.perm.hook:pdf-section-provider': 'Добавлять текстовые разделы в PDF-экспорт поездки',
@@ -449,6 +451,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Рисует на карте',
'admin.plugins.cap.routing': 'Предоставляет маршрутизацию',
'admin.plugins.cap.daySchedule': 'Добавляет время в план',
'admin.plugins.cap.dayTint': 'Раскрашивает дни',
'admin.plugins.cap.geolocation': 'Считывает ваше местоположение',
'admin.plugins.cap.events': 'Реагирует на активность',
'admin.plugins.cap.requiresAddon': 'Требуется {addon}',
+3
View File
@@ -379,6 +379,8 @@ const admin: TranslationStrings = {
'Erbjuda ruttprofiler som planeraren kan beräkna dagar med (t.ex. elbilsrutter med laddstopp)',
'admin.plugins.perm.hook:day-schedule-provider':
'Lägga till tidsposter i dagsplanen (laddstopp, säkerhetsmarginaler)',
'admin.plugins.perm.hook:day-tint-provider':
'Färgkoda dagar i dagsplanen (till exempel vilken etapp av resan en dag tillhör)',
'admin.plugins.perm.geolocation:read':
'Fråga efter din position i realtid medan en av dess vyer är öppen (din webbläsare frågar dessutom först)',
'admin.plugins.perm.hook:pdf-section-provider': 'Lägga till textavsnitt i resans PDF-export',
@@ -503,6 +505,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Ritar på kartan',
'admin.plugins.cap.routing': 'Erbjuder ruttplanering',
'admin.plugins.cap.daySchedule': 'Lägger till tider i planen',
'admin.plugins.cap.dayTint': 'Färgar dagarna',
'admin.plugins.cap.geolocation': 'Läser din position',
'admin.plugins.cap.events': 'Reagerar på aktivitet',
'admin.plugins.cap.requiresAddon': 'Kräver {addon}',
+3
View File
@@ -369,6 +369,8 @@ const admin: TranslationStrings = {
'Planlayıcının günlerin rotasını hesaplamak için kullanabileceği rota profilleri sunar (ör. şarj duraklı elektrikli araç rotası)',
'admin.plugins.perm.hook:day-schedule-provider':
'Gün planına zaman girişleri ekler (şarj durakları, güvenlik tamponları)',
'admin.plugins.perm.hook:day-tint-provider':
'Gün planındaki günleri renklendirir (örneğin bir günün yolculuğun hangi etabına ait olduğu)',
'admin.plugins.perm.geolocation:read':
'Görünümlerinden biri açıkken canlı konumunu sorar (tarayıcın ayrıca izin ister)',
'admin.plugins.perm.hook:pdf-section-provider': 'Seyahat PDF dışa aktarımına metin bölümleri ekler',
@@ -492,6 +494,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Haritada çizim yapar',
'admin.plugins.cap.routing': 'Rota sunar',
'admin.plugins.cap.daySchedule': 'Plana zaman ekler',
'admin.plugins.cap.dayTint': 'Günleri renklendirir',
'admin.plugins.cap.geolocation': 'Konumunu okur',
'admin.plugins.cap.events': 'Etkinliğe tepki verir',
'admin.plugins.cap.requiresAddon': '{addon} gerekir',
+3
View File
@@ -322,6 +322,8 @@ const admin: TranslationStrings = {
'Надавати профілі маршрутизації, за якими планувальник будує маршрути днів (наприклад, маршрути для електромобілів із зупинками для заряджання)',
'admin.plugins.perm.hook:day-schedule-provider':
'Додавати часові записи до плану дня (зупинки для заряджання, буфери часу)',
'admin.plugins.perm.hook:day-tint-provider':
'Позначати дні в плані дня кольором (наприклад, до якого етапу подорожі належить день)',
'admin.plugins.perm.geolocation:read':
'Запитувати ваше місцезнаходження в реальному часі, поки відкрито одне з його подань (браузер додатково запитає дозвіл)',
'admin.plugins.perm.hook:pdf-section-provider': 'Додавати текстові розділи до PDF-експорту подорожі',
@@ -446,6 +448,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Малює на карті',
'admin.plugins.cap.routing': 'Пропонує маршрутизацію',
'admin.plugins.cap.daySchedule': 'Додає часи до плану',
'admin.plugins.cap.dayTint': 'Розфарбовує дні',
'admin.plugins.cap.geolocation': 'Читає ваше місцезнаходження',
'admin.plugins.cap.events': 'Реагує на активність',
'admin.plugins.cap.requiresAddon': 'Потрібен {addon}',
+3
View File
@@ -322,6 +322,8 @@ const admin: TranslationStrings = {
'Cung cấp các hồ sơ định tuyến để trình lập kế hoạch tính lộ trình cho các ngày (vd. định tuyến xe điện với điểm dừng sạc)',
'admin.plugins.perm.hook:day-schedule-provider':
'Gắn các mục thời gian vào kế hoạch ngày (điểm dừng sạc, thời gian đệm an ninh)',
'admin.plugins.perm.hook:day-tint-provider':
'Tô màu các ngày trong kế hoạch ngày (ví dụ ngày đó thuộc chặng nào của chuyến đi)',
'admin.plugins.perm.geolocation:read':
'Hỏi vị trí trực tiếp của bạn khi một trong các chế độ xem của nó đang mở (trình duyệt của bạn vẫn sẽ hỏi trước)',
'admin.plugins.perm.hook:pdf-section-provider': 'Thêm các phần văn bản vào bản xuất PDF của chuyến đi',
@@ -445,6 +447,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': 'Vẽ trên bản đồ',
'admin.plugins.cap.routing': 'Cung cấp định tuyến',
'admin.plugins.cap.daySchedule': 'Thêm giờ kế hoạch',
'admin.plugins.cap.dayTint': 'Tô màu ngày',
'admin.plugins.cap.geolocation': 'Đọc vị trí của bạn',
'admin.plugins.cap.events': 'Phản hồi hoạt động',
'admin.plugins.cap.requiresAddon': 'Cần {addon}',
+2
View File
@@ -329,6 +329,7 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:route-provider':
'提供路線規劃設定檔,供規劃工具計算每日路線(例如含充電停靠站的電動車路線規劃)',
'admin.plugins.perm.hook:day-schedule-provider': '向每日行程附加時間項目(充電停靠站、緩衝時間)',
'admin.plugins.perm.hook:day-tint-provider': '為每日行程中的日期標示顏色(例如某天屬於旅程的哪一段)',
'admin.plugins.perm.geolocation:read': '在其任一檢視開啟時查詢你的即時位置(你的瀏覽器仍會先詢問)',
'admin.plugins.perm.hook:pdf-section-provider': '向行程 PDF 匯出附加文字段落',
'admin.plugins.perm.hook:atlas-layer-provider': '在 Atlas 世界地圖上標示國家(例如願望清單或旅遊警示)',
@@ -443,6 +444,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': '在地圖上繪製',
'admin.plugins.cap.routing': '提供路線規劃',
'admin.plugins.cap.daySchedule': '新增行程時間',
'admin.plugins.cap.dayTint': '為日期著色',
'admin.plugins.cap.geolocation': '讀取你的位置',
'admin.plugins.cap.events': '回應活動',
'admin.plugins.cap.requiresAddon': '需要 {addon}',
+2
View File
@@ -287,6 +287,7 @@ const admin: TranslationStrings = {
'admin.plugins.perm.hook:map-layer-provider': '在旅行地图上绘制路线、走廊和区域',
'admin.plugins.perm.hook:route-provider': '提供路线规划方案,供规划器计算每日路线(例如带充电停靠点的电动车路线)',
'admin.plugins.perm.hook:day-schedule-provider': '向当日计划添加时间条目(充电停靠点、安全缓冲时间)',
'admin.plugins.perm.hook:day-tint-provider': '为当日计划中的日期标注颜色(例如某天属于行程的哪一段)',
'admin.plugins.perm.geolocation:read': '在其某个视图打开时请求你的实时位置(你的浏览器仍会先询问)',
'admin.plugins.perm.hook:pdf-section-provider': '向行程 PDF 导出追加文本段落',
'admin.plugins.perm.hook:atlas-layer-provider': '在 Atlas 世界地图上高亮国家(例如愿望清单或旅行提醒)',
@@ -403,6 +404,7 @@ const admin: TranslationStrings = {
'admin.plugins.cap.mapLayers': '在地图上绘制',
'admin.plugins.cap.routing': '提供路线规划',
'admin.plugins.cap.daySchedule': '补充计划时间',
'admin.plugins.cap.dayTint': '为日期着色',
'admin.plugins.cap.geolocation': '读取你的位置',
'admin.plugins.cap.events': '响应活动',
'admin.plugins.cap.requiresAddon': '需要 {addon}',