fix(tours): keep the waypoints of a GPX/KML file that also holds a track

With the Tours addon on, a file picked or dropped on the places column goes
into the Tours import as soon as it holds one line, and that import reads
lines only. A Sygic or Trip-o-matic export (a route plus its stops) came in
as one tour and every place was dropped without a word.

The preview now counts a GPX file's waypoints as it already counted a KML
file's pins, and the dialog offers to add those points as places of the
trip, on by default. Confirming runs the Tours import for the lines and the
places import (points only) for the same files. A file whose tracks the
trip already holds can still bring its points.

Closes #2969
This commit is contained in:
Maurice
2026-11-03 20:19:43 +01:00
parent f8e51cb83d
commit 2e683f8609
36 changed files with 374 additions and 42 deletions
+5
View File
@@ -967,6 +967,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther.two': 'عنصران آخران',
'tours.import.leftOutOther.few': '{count} عناصر أخرى',
'tours.import.leftOutOther.many': '{count} عنصرًا آخر',
'tours.import.pointsAsPlaces': 'أضف النقاط كأماكن',
'tours.import.pointsAsPlacesHint': 'النقاط المفردة ليست جزءًا من الجولة، بل تُضاف إلى أماكن الرحلة.',
'tours.import.pointsConfirm': 'أضف الأماكن',
'tours.import.pointsFailedIn': 'تعذّرت إضافة النقاط في {name} كأماكن.',
'tours.import.pointsImported': 'الأماكن المضافة: {count}',
'tours.import.unreadableIn': 'تعذّرت قراءة {name}: الملف تالف أو ليس GPX أو KML أو KMZ',
'tours.import.archiveNoKmlIn': 'لم يُعثر على ملف KML في {name}',
'tours.import.archiveTooLargeIn': '{name} كبير جدًا بعد فك الضغط',
+5
View File
@@ -956,6 +956,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} sahə',
'tours.import.leftOutOther': '{count} digər element',
'tours.import.leftOutOther.one': '{count} digər element',
'tours.import.pointsAsPlaces': 'Nöqtələri məkan kimi əlavə et',
'tours.import.pointsAsPlacesHint': 'Tək nöqtələr turun bir hissəsi deyil. Onlar əvəzinə səyahətin məkanlarına əlavə olunur.',
'tours.import.pointsConfirm': 'Məkanları əlavə et',
'tours.import.pointsFailedIn': '{name} faylındakı nöqtələr məkan kimi əlavə edilə bilmədi.',
'tours.import.pointsImported': 'Əlavə edilən məkanlar: {count}',
'tours.import.unreadableIn': '{name} oxunmadı: fayl zədələnib və ya GPX, KML, KMZ deyil',
'tours.import.archiveNoKmlIn': '{name} içində KML faylı tapılmadı',
'tours.import.archiveTooLargeIn': '{name} açıldıqdan sonra çox böyükdür',
+5
View File
@@ -962,6 +962,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} área',
'tours.import.leftOutOther': '{count} outros itens',
'tours.import.leftOutOther.one': '{count} outro item',
'tours.import.pointsAsPlaces': 'Adicionar os pontos como lugares',
'tours.import.pointsAsPlacesHint': 'Pontos avulsos não fazem parte de um passeio. Eles entram nos lugares da viagem.',
'tours.import.pointsConfirm': 'Adicionar lugares',
'tours.import.pointsFailedIn': 'Não foi possível adicionar os pontos de {name} como lugares.',
'tours.import.pointsImported': 'Lugares adicionados: {count}',
'tours.import.unreadableIn': 'Não foi possível ler {name}: o arquivo está danificado ou não é GPX, KML nem KMZ',
'tours.import.archiveNoKmlIn': 'Nenhum arquivo KML encontrado em {name}',
'tours.import.archiveTooLargeIn': '{name} é grande demais depois de descompactado',
+5
View File
@@ -964,6 +964,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} àrea',
'tours.import.leftOutOther': '{count} elements més',
'tours.import.leftOutOther.one': '{count} element més',
'tours.import.pointsAsPlaces': 'Afegeix els punts com a llocs',
'tours.import.pointsAsPlacesHint': 'Els punts solts no formen part de cap ruta. S’afegeixen als llocs del viatge.',
'tours.import.pointsConfirm': 'Afegeix llocs',
'tours.import.pointsFailedIn': 'No s’han pogut afegir els punts de {name} com a llocs.',
'tours.import.pointsImported': 'Llocs afegits: {count}',
'tours.import.unreadableIn': "No s'ha pogut llegir {name}: el fitxer està malmès o no és GPX, KML ni KMZ",
'tours.import.archiveNoKmlIn': "No s'ha trobat cap fitxer KML a {name}",
'tours.import.archiveTooLargeIn': '{name} és massa gran un cop descomprimit',
+5
View File
@@ -950,6 +950,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther': '{count} dalších položek',
'tours.import.leftOutOther.one': '{count} další položka',
'tours.import.leftOutOther.few': '{count} další položky',
'tours.import.pointsAsPlaces': 'Přidat body jako místa',
'tours.import.pointsAsPlacesHint': 'Samostatné body nejsou součástí trasy. Přidají se místo toho k místům cesty.',
'tours.import.pointsConfirm': 'Přidat místa',
'tours.import.pointsFailedIn': 'Body ze souboru {name} se nepodařilo přidat jako místa.',
'tours.import.pointsImported': 'Přidaná místa: {count}',
'tours.import.unreadableIn': 'Soubor {name} nelze přečíst: je poškozený nebo to není GPX, KML ani KMZ',
'tours.import.archiveNoKmlIn': 'V souboru {name} není žádný soubor KML',
'tours.import.archiveTooLargeIn': 'Soubor {name} je po rozbalení příliš velký',
+5
View File
@@ -972,6 +972,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} Fläche',
'tours.import.leftOutOther': '{count} weitere Elemente',
'tours.import.leftOutOther.one': '{count} weiteres Element',
'tours.import.pointsAsPlaces': 'Punkte als Orte hinzufügen',
'tours.import.pointsAsPlacesHint': 'Einzelne Punkte gehören zu keiner Tour. Sie kommen stattdessen zu den Orten der Reise.',
'tours.import.pointsConfirm': 'Orte hinzufügen',
'tours.import.pointsFailedIn': 'Die Punkte aus {name} konnten nicht als Orte hinzugefügt werden.',
'tours.import.pointsImported': 'Orte hinzugefügt: {count}',
'tours.import.unreadableIn':
'{name} konnte nicht gelesen werden: Die Datei ist beschädigt oder kein GPX, KML oder KMZ',
'tours.import.archiveNoKmlIn': 'Keine KML-Datei in {name} gefunden',
+5
View File
@@ -944,6 +944,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} area',
'tours.import.leftOutOther': '{count} other items',
'tours.import.leftOutOther.one': '{count} other item',
'tours.import.pointsAsPlaces': 'Add the points as places',
'tours.import.pointsAsPlacesHint': 'Single points are not part of a tour. They join the places of the trip instead.',
'tours.import.pointsConfirm': 'Add places',
'tours.import.pointsFailedIn': 'The points in {name} could not be added as places.',
'tours.import.pointsImported': 'Places added: {count}',
'tours.import.unreadableIn': 'Could not read {name}: the file is damaged or not GPX, KML or KMZ',
'tours.import.archiveNoKmlIn': 'No KML file found in {name}',
'tours.import.archiveTooLargeIn': '{name} is too large once unpacked',
+5
View File
@@ -961,6 +961,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} área',
'tours.import.leftOutOther': '{count} elementos más',
'tours.import.leftOutOther.one': '{count} elemento más',
'tours.import.pointsAsPlaces': 'Añadir los puntos como lugares',
'tours.import.pointsAsPlacesHint': 'Los puntos sueltos no forman parte de una ruta. Se añaden a los lugares del viaje.',
'tours.import.pointsConfirm': 'Añadir lugares',
'tours.import.pointsFailedIn': 'No se pudieron añadir los puntos de {name} como lugares.',
'tours.import.pointsImported': 'Lugares añadidos: {count}',
'tours.import.unreadableIn': 'No se ha podido leer {name}: el archivo está dañado o no es GPX, KML ni KMZ',
'tours.import.archiveNoKmlIn': 'No hay ningún archivo KML en {name}',
'tours.import.archiveTooLargeIn': '{name} es demasiado grande una vez descomprimido',
+5
View File
@@ -946,6 +946,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} ala',
'tours.import.leftOutOther': '{count} muud elementi',
'tours.import.leftOutOther.one': '{count} muu element',
'tours.import.pointsAsPlaces': 'Lisa punktid kohtadena',
'tours.import.pointsAsPlacesHint': 'Üksikud punktid ei kuulu matka juurde. Need lisatakse hoopis reisi kohtade hulka.',
'tours.import.pointsConfirm': 'Lisa kohad',
'tours.import.pointsFailedIn': 'Faili {name} punkte ei õnnestunud kohtadena lisada.',
'tours.import.pointsImported': 'Lisatud kohti: {count}',
'tours.import.unreadableIn': 'Faili {name} ei saanud lugeda: see on vigane või pole GPX, KML ega KMZ',
'tours.import.archiveNoKmlIn': 'Failis {name} pole KML-faili',
'tours.import.archiveTooLargeIn': 'Fail {name} on lahtipakituna liiga suur',
+5
View File
@@ -979,6 +979,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} zone',
'tours.import.leftOutOther': '{count} autres éléments',
'tours.import.leftOutOther.one': '{count} autre élément',
'tours.import.pointsAsPlaces': 'Ajouter les points comme lieux',
'tours.import.pointsAsPlacesHint': 'Les points isolés ne font pas partie d’un parcours. Ils rejoignent les lieux du voyage.',
'tours.import.pointsConfirm': 'Ajouter les lieux',
'tours.import.pointsFailedIn': 'Les points de {name} n’ont pas pu être ajoutés comme lieux.',
'tours.import.pointsImported': 'Lieux ajoutés : {count}',
'tours.import.unreadableIn': 'Impossible de lire {name} : le fichier est endommagé ou n’est pas un GPX, KML ou KMZ',
'tours.import.archiveNoKmlIn': 'Aucun fichier KML trouvé dans {name}',
'tours.import.archiveTooLargeIn': '{name} est trop volumineux une fois décompressé',
+5
View File
@@ -983,6 +983,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} περιοχή',
'tours.import.leftOutOther': '{count} άλλα στοιχεία',
'tours.import.leftOutOther.one': '{count} άλλο στοιχείο',
'tours.import.pointsAsPlaces': 'Προσθήκη των σημείων ως τοποθεσίες',
'tours.import.pointsAsPlacesHint': 'Τα μεμονωμένα σημεία δεν ανήκουν σε διαδρομή. Προστίθενται στις τοποθεσίες του ταξιδιού.',
'tours.import.pointsConfirm': 'Προσθήκη τοποθεσιών',
'tours.import.pointsFailedIn': 'Δεν ήταν δυνατή η προσθήκη των σημείων του {name} ως τοποθεσίες.',
'tours.import.pointsImported': 'Τοποθεσίες που προστέθηκαν: {count}',
'tours.import.unreadableIn':
'Δεν ήταν δυνατή η ανάγνωση του {name}: το αρχείο είναι κατεστραμμένο ή δεν είναι GPX, KML ή KMZ',
'tours.import.archiveNoKmlIn': 'Δεν βρέθηκε αρχείο KML στο {name}',
+5
View File
@@ -943,6 +943,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther': '{count} פריטים אחרים',
'tours.import.leftOutOther.one': 'פריט אחר אחד',
'tours.import.leftOutOther.two': '{count} פריטים אחרים',
'tours.import.pointsAsPlaces': 'הוספת הנקודות כמקומות',
'tours.import.pointsAsPlacesHint': 'נקודות בודדות אינן חלק ממסלול. הן מתווספות למקומות של הטיול.',
'tours.import.pointsConfirm': 'הוספת מקומות',
'tours.import.pointsFailedIn': 'לא ניתן היה להוסיף את הנקודות מ-{name} כמקומות.',
'tours.import.pointsImported': 'מקומות שנוספו: {count}',
'tours.import.unreadableIn': 'לא ניתן לקרוא את {name}: הקובץ פגום או שאינו בפורמט GPX, KML או KMZ',
'tours.import.archiveNoKmlIn': 'לא נמצא קובץ KML בתוך {name}',
'tours.import.archiveTooLargeIn': '{name} גדול מדי לאחר חילוץ',
+5
View File
@@ -961,6 +961,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} terület',
'tours.import.leftOutOther': '{count} egyéb elem',
'tours.import.leftOutOther.one': '{count} egyéb elem',
'tours.import.pointsAsPlaces': 'Pontok hozzáadása helyekként',
'tours.import.pointsAsPlacesHint': 'Az önálló pontok nem részei egy túrának. Helyettük az utazás helyei közé kerülnek.',
'tours.import.pointsConfirm': 'Helyek hozzáadása',
'tours.import.pointsFailedIn': 'A(z) {name} pontjait nem sikerült helyekként hozzáadni.',
'tours.import.pointsImported': 'Hozzáadott helyek: {count}',
'tours.import.unreadableIn': 'A(z) {name} nem olvasható: a fájl sérült, vagy nem GPX, KML vagy KMZ',
'tours.import.archiveNoKmlIn': 'A(z) {name} nem tartalmaz KML-fájlt',
'tours.import.archiveTooLargeIn': 'A(z) {name} kicsomagolva túl nagy',
+5
View File
@@ -952,6 +952,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': '{count} penanda',
'tours.import.leftOutAreas': '{count} wilayah',
'tours.import.leftOutOther': '{count} item lain',
'tours.import.pointsAsPlaces': 'Tambahkan titik sebagai tempat',
'tours.import.pointsAsPlacesHint': 'Titik tunggal bukan bagian dari tur. Titik itu masuk ke tempat-tempat perjalanan.',
'tours.import.pointsConfirm': 'Tambahkan tempat',
'tours.import.pointsFailedIn': 'Titik di {name} tidak dapat ditambahkan sebagai tempat.',
'tours.import.pointsImported': 'Tempat ditambahkan: {count}',
'tours.import.unreadableIn': '{name} tidak dapat dibaca: berkas rusak atau bukan GPX, KML, atau KMZ',
'tours.import.archiveNoKmlIn': 'Tidak ada berkas KML di {name}',
'tours.import.archiveTooLargeIn': '{name} terlalu besar setelah diekstrak',
+5
View File
@@ -968,6 +968,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} superficie',
'tours.import.leftOutOther': '{count} altri elementi',
'tours.import.leftOutOther.one': '{count} altro elemento',
'tours.import.pointsAsPlaces': 'Aggiungi i punti come luoghi',
'tours.import.pointsAsPlacesHint': 'I punti singoli non fanno parte di un percorso. Vengono aggiunti ai luoghi del viaggio.',
'tours.import.pointsConfirm': 'Aggiungi luoghi',
'tours.import.pointsFailedIn': 'Non è stato possibile aggiungere i punti di {name} come luoghi.',
'tours.import.pointsImported': 'Luoghi aggiunti: {count}',
'tours.import.unreadableIn': 'Impossibile leggere {name}: il file è danneggiato o non è GPX, KML o KMZ',
'tours.import.archiveNoKmlIn': 'Nessun file KML trovato in {name}',
'tours.import.archiveTooLargeIn': '{name} è troppo grande una volta decompresso',
+5
View File
@@ -928,6 +928,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': 'ピン {count} 個',
'tours.import.leftOutAreas': 'エリア {count} 件',
'tours.import.leftOutOther': 'その他 {count} 件',
'tours.import.pointsAsPlaces': 'ポイントを場所として追加',
'tours.import.pointsAsPlacesHint': '単独のポイントはツアーに含まれません。代わりに旅行の場所に追加されます。',
'tours.import.pointsConfirm': '場所を追加',
'tours.import.pointsFailedIn': '{name} のポイントを場所として追加できませんでした。',
'tours.import.pointsImported': '追加した場所: {count}',
'tours.import.unreadableIn': '{name}を読み込めませんでした:ファイルが破損しているか、GPX、KML、KMZではありません',
'tours.import.archiveNoKmlIn': '{name}にKMLファイルが見つかりません',
'tours.import.archiveTooLargeIn': '{name}は展開すると大きすぎます',
+5
View File
@@ -920,6 +920,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': '핀 {count}개',
'tours.import.leftOutAreas': '영역 {count}개',
'tours.import.leftOutOther': '기타 항목 {count}개',
'tours.import.pointsAsPlaces': '포인트를 장소로 추가',
'tours.import.pointsAsPlacesHint': '단일 포인트는 투어에 포함되지 않습니다. 대신 여행의 장소에 추가됩니다.',
'tours.import.pointsConfirm': '장소 추가',
'tours.import.pointsFailedIn': '{name}의 포인트를 장소로 추가하지 못했습니다.',
'tours.import.pointsImported': '추가된 장소: {count}',
'tours.import.unreadableIn': '{name}을(를) 읽을 수 없습니다: 파일이 손상되었거나 GPX, KML, KMZ가 아닙니다',
'tours.import.archiveNoKmlIn': '{name}에 KML 파일이 없습니다',
'tours.import.archiveTooLargeIn': '{name}은(는) 압축을 풀면 너무 큽니다',
+5
View File
@@ -965,6 +965,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} gebied',
'tours.import.leftOutOther': '{count} andere items',
'tours.import.leftOutOther.one': '{count} ander item',
'tours.import.pointsAsPlaces': 'Punten als plekken toevoegen',
'tours.import.pointsAsPlacesHint': 'Losse punten horen niet bij een tocht. Ze komen bij de plekken van de reis.',
'tours.import.pointsConfirm': 'Plekken toevoegen',
'tours.import.pointsFailedIn': 'De punten uit {name} konden niet als plekken worden toegevoegd.',
'tours.import.pointsImported': 'Plekken toegevoegd: {count}',
'tours.import.unreadableIn': '{name} kon niet worden gelezen: het bestand is beschadigd of geen GPX, KML of KMZ',
'tours.import.archiveNoKmlIn': 'Geen KML-bestand gevonden in {name}',
'tours.import.archiveTooLargeIn': '{name} is uitgepakt te groot',
+5
View File
@@ -983,6 +983,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther.one': '{count} inny element',
'tours.import.leftOutOther.few': '{count} inne elementy',
'tours.import.leftOutOther.many': '{count} innych elementów',
'tours.import.pointsAsPlaces': 'Dodaj punkty jako miejsca',
'tours.import.pointsAsPlacesHint': 'Pojedyncze punkty nie należą do trasy. Trafiają do miejsc podróży.',
'tours.import.pointsConfirm': 'Dodaj miejsca',
'tours.import.pointsFailedIn': 'Nie udało się dodać punktów z {name} jako miejsc.',
'tours.import.pointsImported': 'Dodane miejsca: {count}',
'tours.import.unreadableIn':
'Nie można odczytać pliku {name}: jest uszkodzony albo nie jest plikiem GPX, KML ani KMZ',
'tours.import.archiveNoKmlIn': 'W pliku {name} nie ma pliku KML',
+5
View File
@@ -987,6 +987,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther.one': '{count} другой элемент',
'tours.import.leftOutOther.few': '{count} других элемента',
'tours.import.leftOutOther.many': '{count} других элементов',
'tours.import.pointsAsPlaces': 'Добавить точки как места',
'tours.import.pointsAsPlacesHint': 'Отдельные точки не входят в маршрут. Они добавляются к местам поездки.',
'tours.import.pointsConfirm': 'Добавить места',
'tours.import.pointsFailedIn': 'Не удалось добавить точки из {name} как места.',
'tours.import.pointsImported': 'Добавлено мест: {count}',
'tours.import.unreadableIn': 'Не удалось прочитать {name}: файл повреждён или это не GPX, KML или KMZ',
'tours.import.archiveNoKmlIn': 'В {name} не найден файл KML',
'tours.import.archiveTooLargeIn': '{name} слишком велик после распаковки',
+5
View File
@@ -952,6 +952,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther': '{count} ďalších položiek',
'tours.import.leftOutOther.one': '{count} ďalšia položka',
'tours.import.leftOutOther.few': '{count} ďalšie položky',
'tours.import.pointsAsPlaces': 'Pridať body ako miesta',
'tours.import.pointsAsPlacesHint': 'Samostatné body nie sú súčasťou trasy. Pridajú sa namiesto toho k miestam cesty.',
'tours.import.pointsConfirm': 'Pridať miesta',
'tours.import.pointsFailedIn': 'Body zo súboru {name} sa nepodarilo pridať ako miesta.',
'tours.import.pointsImported': 'Pridané miesta: {count}',
'tours.import.unreadableIn': 'Súbor {name} sa nedá prečítať: je poškodený alebo nie je GPX, KML ani KMZ',
'tours.import.archiveNoKmlIn': 'V súbore {name} nie je žiadny súbor KML',
'tours.import.archiveTooLargeIn': 'Súbor {name} je po rozbalení príliš veľký',
+5
View File
@@ -943,6 +943,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} område',
'tours.import.leftOutOther': '{count} andra objekt',
'tours.import.leftOutOther.one': '{count} annat objekt',
'tours.import.pointsAsPlaces': 'Lägg till punkterna som platser',
'tours.import.pointsAsPlacesHint': 'Enskilda punkter ingår inte i en tur. De läggs till bland resans platser i stället.',
'tours.import.pointsConfirm': 'Lägg till platser',
'tours.import.pointsFailedIn': 'Punkterna i {name} kunde inte läggas till som platser.',
'tours.import.pointsImported': 'Tillagda platser: {count}',
'tours.import.unreadableIn': 'Det gick inte att läsa {name}: filen är skadad eller inte GPX, KML eller KMZ',
'tours.import.archiveNoKmlIn': 'Ingen KML-fil hittades i {name}',
'tours.import.archiveTooLargeIn': '{name} är för stor när den packats upp',
+5
View File
@@ -905,6 +905,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': 'หมุด {count} รายการ',
'tours.import.leftOutAreas': 'พื้นที่ {count} รายการ',
'tours.import.leftOutOther': 'รายการอื่น {count} รายการ',
'tours.import.pointsAsPlaces': 'เพิ่มจุดเป็นสถานที่',
'tours.import.pointsAsPlacesHint': 'จุดเดี่ยวไม่ได้เป็นส่วนหนึ่งของทัวร์ แต่จะถูกเพิ่มเข้าไปในสถานที่ของทริปแทน',
'tours.import.pointsConfirm': 'เพิ่มสถานที่',
'tours.import.pointsFailedIn': 'ไม่สามารถเพิ่มจุดใน {name} เป็นสถานที่ได้',
'tours.import.pointsImported': 'เพิ่มสถานที่แล้ว: {count}',
'tours.import.unreadableIn': 'ไม่สามารถอ่าน {name} ได้: ไฟล์เสียหายหรือไม่ใช่ GPX, KML หรือ KMZ',
'tours.import.archiveNoKmlIn': 'ไม่พบไฟล์ KML ใน {name}',
'tours.import.archiveTooLargeIn': '{name} ใหญ่เกินไปเมื่อแตกไฟล์',
+5
View File
@@ -954,6 +954,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutAreas.one': '{count} alan',
'tours.import.leftOutOther': '{count} diğer öğe',
'tours.import.leftOutOther.one': '{count} diğer öğe',
'tours.import.pointsAsPlaces': 'Noktaları yer olarak ekle',
'tours.import.pointsAsPlacesHint': 'Tekil noktalar bir turun parçası değildir. Bunun yerine seyahatin yerlerine eklenir.',
'tours.import.pointsConfirm': 'Yerleri ekle',
'tours.import.pointsFailedIn': '{name} içindeki noktalar yer olarak eklenemedi.',
'tours.import.pointsImported': 'Eklenen yerler: {count}',
'tours.import.unreadableIn': '{name} okunamadı: dosya bozuk ya da GPX, KML veya KMZ değil',
'tours.import.archiveNoKmlIn': '{name} içinde KML dosyası bulunamadı',
'tours.import.archiveTooLargeIn': '{name} açıldığında çok büyük',
+5
View File
@@ -978,6 +978,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutOther.one': '{count} інший елемент',
'tours.import.leftOutOther.few': '{count} інші елементи',
'tours.import.leftOutOther.many': '{count} інших елементів',
'tours.import.pointsAsPlaces': 'Додати точки як місця',
'tours.import.pointsAsPlacesHint': 'Окремі точки не входять до маршруту. Вони додаються до місць подорожі.',
'tours.import.pointsConfirm': 'Додати місця',
'tours.import.pointsFailedIn': 'Не вдалося додати точки з {name} як місця.',
'tours.import.pointsImported': 'Додано місць: {count}',
'tours.import.unreadableIn': 'Не вдалося прочитати {name}: файл пошкоджено або це не GPX, KML чи KMZ',
'tours.import.archiveNoKmlIn': 'У {name} не знайдено файлу KML',
'tours.import.archiveTooLargeIn': '{name} завеликий після розпакування',
+5
View File
@@ -939,6 +939,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': '{count} ghim',
'tours.import.leftOutAreas': '{count} vùng',
'tours.import.leftOutOther': '{count} mục khác',
'tours.import.pointsAsPlaces': 'Thêm các điểm làm địa điểm',
'tours.import.pointsAsPlacesHint': 'Các điểm đơn lẻ không thuộc về chuyến đi bộ. Chúng được thêm vào các địa điểm của chuyến đi.',
'tours.import.pointsConfirm': 'Thêm địa điểm',
'tours.import.pointsFailedIn': 'Không thể thêm các điểm trong {name} làm địa điểm.',
'tours.import.pointsImported': 'Đã thêm địa điểm: {count}',
'tours.import.unreadableIn': 'Không thể đọc {name}: tệp bị hỏng hoặc không phải GPX, KML hay KMZ',
'tours.import.archiveNoKmlIn': 'Không tìm thấy tệp KML trong {name}',
'tours.import.archiveTooLargeIn': '{name} quá lớn sau khi giải nén',
+5
View File
@@ -873,6 +873,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': '{count} 個圖釘',
'tours.import.leftOutAreas': '{count} 個區域',
'tours.import.leftOutOther': '其他 {count} 項',
'tours.import.pointsAsPlaces': '將點新增為地點',
'tours.import.pointsAsPlacesHint': '單一點不屬於路線,而是新增到行程的地點中。',
'tours.import.pointsConfirm': '新增地點',
'tours.import.pointsFailedIn': '無法將 {name} 中的點新增為地點。',
'tours.import.pointsImported': '已新增地點:{count}',
'tours.import.unreadableIn': '無法讀取 {name}:檔案已損毀,或不是 GPX、KML 或 KMZ',
'tours.import.archiveNoKmlIn': '{name} 中沒有 KML 檔案',
'tours.import.archiveTooLargeIn': '{name} 解壓縮後過大',
+5
View File
@@ -874,6 +874,11 @@ const tours: TranslationStrings = {
'tours.import.leftOutPoints': '{count} 个图钉',
'tours.import.leftOutAreas': '{count} 个区域',
'tours.import.leftOutOther': '其他 {count} 项',
'tours.import.pointsAsPlaces': '将点添加为地点',
'tours.import.pointsAsPlacesHint': '单个点不属于路线,而是添加到行程的地点中。',
'tours.import.pointsConfirm': '添加地点',
'tours.import.pointsFailedIn': '无法将 {name} 中的点添加为地点。',
'tours.import.pointsImported': '已添加地点:{count}',
'tours.import.unreadableIn': '无法读取 {name}:文件已损坏,或不是 GPX、KML 或 KMZ',
'tours.import.archiveNoKmlIn': '{name} 中没有 KML 文件',
'tours.import.archiveTooLargeIn': '{name} 解压后过大',
+3 -3
View File
@@ -51,9 +51,9 @@ export type TourGpxPreviewTrack = z.infer<typeof tourGpxPreviewTrackSchema>;
const leftOutCount = z.number().int().nonnegative();
/** What a KML or KMZ file held besides its lines, counted by kind; none of it is imported. */
/** What a file held besides its lines, counted by kind; none of it becomes a tour. */
export const tourFileLeftOutSchema = z.object({
/** Single points (pins). */
/** Single points: a KML file's pins, a GPX file's waypoints. The client can add them as places. */
points: leftOutCount,
/** Polygons. */
areas: leftOutCount,
@@ -64,7 +64,7 @@ export type TourFileLeftOut = z.infer<typeof tourFileLeftOutSchema>;
export const tourGpxPreviewResponseSchema = z.object({
tracks: z.array(tourGpxPreviewTrackSchema),
/** Only a KML or KMZ preview counts what it leaves out; a GPX preview never counted its loose waypoints. */
/** Absent when the file held nothing besides its lines. A GPX file only ever has points here. */
left_out: tourFileLeftOutSchema.optional(),
});
export type TourGpxPreviewResponse = z.infer<typeof tourGpxPreviewResponseSchema>;