mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-24 15:51:46 +00:00
3e9626fce9
* feat(places): enrich list-imported places via the Places API (#886) Google/Naver list imports only carry a name and coordinates, so the places open as bare pins — the Maps tab jumps to coordinates, with no photo, address or open/closed. Add an opt-in "Enrich places via Google" toggle to the list-import dialog, shown only when a Google Maps key is configured. When enabled, after the (fast, unchanged) import the server runs a background pass that re-resolves each place by name — biased to and validated against the imported coordinates so a common-name search cannot overwrite the wrong place — and fills the empty address/website/phone/photo columns plus the resolved google_place_id, pushing each row over the live sync. Opening hours and the proper Maps link then work on demand from the stored id. Enrichment only fills empty fields, runs detached so a long list never blocks the import, and no-ops when no key is configured. * fix(places): use the ToggleSwitch component for the enrich toggle Match the rest of the app — the import-enrichment opt-in used a raw checkbox; swap it for the shared ToggleSwitch (text left, switch right) like the settings toggles.
97 lines
4.7 KiB
TypeScript
97 lines
4.7 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const places: TranslationStrings = {
|
|
'places.addPlace': 'Přidat místo/aktivitu',
|
|
'places.importFile': 'Importovat soubor',
|
|
'places.sidebarDrop': 'Pusťte pro import',
|
|
'places.importFileHint':
|
|
'Importujte soubory .gpx, .kml nebo .kmz z nástrojů jako Google My Maps, Google Earth nebo GPS tracker.',
|
|
'places.importFileDropHere':
|
|
'Klikněte pro výběr souboru nebo jej přetáhněte sem',
|
|
'places.importFileDropActive': 'Přetáhněte soubor pro výběr',
|
|
'places.importFileUnsupported':
|
|
'Nepodporovaný typ souboru. Použijte .gpx, .kml nebo .kmz.',
|
|
'places.importFileTooLarge':
|
|
'Soubor je příliš velký. Maximální velikost nahrání je {maxMb} MB.',
|
|
'places.importFileError': 'Import se nezdařil',
|
|
'places.importAllSkipped': 'Všechna místa již byla v cestě.',
|
|
'places.gpxImported': '{count} míst importováno z GPX',
|
|
'places.gpxImportTypes': 'Co chcete importovat?',
|
|
'places.gpxImportWaypoints': 'Trasové body',
|
|
'places.gpxImportRoutes': 'Trasy',
|
|
'places.gpxImportTracks': 'Trasy GPS (s geometrií)',
|
|
'places.gpxImportNoneSelected': 'Vyberte alespoň jeden typ k importu.',
|
|
'places.kmlImportTypes': 'Co chcete importovat?',
|
|
'places.kmlImportPoints': 'Body (Placemarks)',
|
|
'places.kmlImportPaths': 'Trasy (LineStrings)',
|
|
'places.kmlImportNoneSelected': 'Vyberte alespoň jeden typ.',
|
|
'places.selectionCount': '{count} vybráno',
|
|
'places.deleteSelected': 'Smazat vybrané',
|
|
'places.kmlKmzImported': 'Importováno {count} míst z KMZ/KML',
|
|
'places.urlResolved': 'Místo importováno z URL',
|
|
'places.importList': 'Import seznamu',
|
|
'places.kmlKmzSummaryValues':
|
|
'Placemarks: {total} • Importováno: {created} • Přeskočeno: {skipped}',
|
|
'places.importGoogleList': 'Google Seznam',
|
|
'places.importNaverList': 'Naver Seznam',
|
|
'places.googleListHint':
|
|
'Vložte sdílený odkaz na seznam Google Maps pro import všech míst.',
|
|
'places.googleListImported': '{count} míst importováno ze seznamu "{list}"',
|
|
'places.googleListError': 'Import seznamu Google Maps se nezdařil',
|
|
'places.naverListHint':
|
|
'Vložte sdílený odkaz na seznam Naver Maps pro import všech míst.',
|
|
'places.naverListImported': '{count} míst importováno ze seznamu "{list}"',
|
|
'places.naverListError': 'Import seznamu Naver Maps se nezdařil',
|
|
'places.viewDetails': 'Zobrazit detaily',
|
|
'places.assignToDay': 'Přidat do kterého dne?',
|
|
'places.all': 'Vše',
|
|
'places.unplanned': 'Nezařazené',
|
|
'places.filterTracks': 'Trasy',
|
|
'places.search': 'Hledat místa...',
|
|
'places.allCategories': 'Všechny kategorie',
|
|
'places.categoriesSelected': 'kategorií',
|
|
'places.clearFilter': 'Vymazat filtr',
|
|
'places.count': '{count} míst',
|
|
'places.countSingular': '1 místo',
|
|
'places.allPlanned': 'Všechna místa jsou naplánována',
|
|
'places.noneFound': 'Žádná místa nebyla nalezena',
|
|
'places.editPlace': 'Upravit místo',
|
|
'places.formName': 'Název',
|
|
'places.formNamePlaceholder': 'např. Eiffelova věž',
|
|
'places.formDescription': 'Popis',
|
|
'places.formDescriptionPlaceholder': 'Krátký popis...',
|
|
'places.formAddress': 'Adresa',
|
|
'places.formAddressPlaceholder': 'Ulice, město, země',
|
|
'places.formLat': 'Zeměpisná šířka',
|
|
'places.formLng': 'Zeměpisná délka',
|
|
'places.formCategory': 'Kategorie',
|
|
'places.noCategory': 'Bez kategorie',
|
|
'places.categoryNamePlaceholder': 'Název kategorie',
|
|
'places.formTime': 'Čas',
|
|
'places.startTime': 'Od',
|
|
'places.endTime': 'Do',
|
|
'places.endTimeBeforeStart': 'Čas konce je před časem začátku',
|
|
'places.timeCollision': 'Časový překryv s:',
|
|
'places.formWebsite': 'Webové stránky',
|
|
'places.formNotes': 'Poznámky',
|
|
'places.formNotesPlaceholder': 'Osobní poznámky...',
|
|
'places.formReservation': 'Rezervace',
|
|
'places.reservationNotesPlaceholder':
|
|
'Poznámky k rezervaci, potvrzovací kód...',
|
|
'places.mapsSearchPlaceholder': 'Hledat místa...',
|
|
'places.mapsSearchError': 'Hledání místa se nezdařilo.',
|
|
'places.loadingDetails': 'Načítání podrobností místa…',
|
|
'places.osmHint':
|
|
'Používáte hledání přes OpenStreetMap (bez fotek a hodnocení). Pro plné detaily přidejte Google API klíč v nastavení.',
|
|
'places.osmActive': 'Hledání přes OpenStreetMap.',
|
|
'places.categoryCreateError': 'Nepodařilo se vytvořit kategorii',
|
|
'places.nameRequired': 'Prosím zadejte název',
|
|
'places.saveError': 'Uložení se nezdařilo',
|
|
'places.duplicateExists': "'{name}' už v tomto výletu existuje.",
|
|
'places.addAnyway': 'Přesto přidat',
|
|
'places.enrichOnImport': 'Obohatit místa přes Google',
|
|
'places.enrichOnImportHint':
|
|
'Vyhledá každé importované místo a doplní fotky, adresu a kontakty. Vyžaduje klíč Google Maps.',
|
|
};
|
|
export default places;
|