@panoramax/web-viewer 3.2.0 → 3.2.1-develop-d651cb00
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -1
- package/build/index.css +2 -2
- package/build/index.css.map +1 -1
- package/build/index.js +6 -6
- package/build/index.js.map +1 -1
- package/docs/02_Usage.md +220 -297
- package/package.json +1 -1
- package/src/Viewer.js +4 -0
- package/src/components/CoreView.js +1 -1
- package/src/translations/da.json +176 -0
- package/src/translations/de.json +1 -1
- package/src/translations/en.json +7 -7
- package/src/translations/eo.json +171 -1
- package/src/translations/es.json +1 -1
- package/src/translations/fr.json +3 -3
- package/src/translations/it.json +176 -0
- package/src/translations/pl.json +169 -0
- package/src/translations/zh_Hant.json +4 -4
- package/src/utils/API.js +2 -2
- package/src/utils/I18n.js +13 -4
- package/src/utils/Utils.js +3 -0
- package/src/utils/Widgets.js +2 -0
- package/src/viewer/Widgets.css +2 -0
- package/tests/utils/API.test.js +1 -1
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"gvs": {
|
|
3
|
+
"expand": "Espandi",
|
|
4
|
+
"zoomOut": "Rimpicciolisci",
|
|
5
|
+
"zoomIn": "Ingrandisci",
|
|
6
|
+
"zoom": "Zoom",
|
|
7
|
+
"moveUp": "Muovi in alto",
|
|
8
|
+
"moveDown": "Muovi in basso",
|
|
9
|
+
"moveLeft": "Muovi a sinistra",
|
|
10
|
+
"moveRight": "Muovi a destra",
|
|
11
|
+
"expand_info": "Fai apparire il widget a schermo pieno",
|
|
12
|
+
"options": "Opzioni",
|
|
13
|
+
"filters": "Filtri",
|
|
14
|
+
"layers": "Livelli",
|
|
15
|
+
"search": "Cerca",
|
|
16
|
+
"search_empty": "Nessun risultato trovato",
|
|
17
|
+
"search_address": "Cerca un indirizzo, città…",
|
|
18
|
+
"search_user": "Cerca un nome utente…",
|
|
19
|
+
"share": "Condividi",
|
|
20
|
+
"share_links": "Collegamenti",
|
|
21
|
+
"share_page": "Collegamento a questa pagina",
|
|
22
|
+
"share_image": "Immagine HD",
|
|
23
|
+
"share_embed": "Incorpora nel tuo sito web",
|
|
24
|
+
"share_embed_docs": "Scopri di più sulla configurazione della incorporazione",
|
|
25
|
+
"share_print": "Stampa",
|
|
26
|
+
"copy": "Copia",
|
|
27
|
+
"copied": "Copiato",
|
|
28
|
+
"error": "Abbiamo un problema…",
|
|
29
|
+
"error_click": "Clicca per continuare",
|
|
30
|
+
"error_retry": "Riprovare più tardi",
|
|
31
|
+
"sequence_play": "Riproduci questa sequenza",
|
|
32
|
+
"sequence_pause": "Pausa la sequenza",
|
|
33
|
+
"sequence_speed": "Velocità di riproduzione",
|
|
34
|
+
"legend_license": "Licenza: {l}",
|
|
35
|
+
"legend_title": "Mostra dettagli della foto",
|
|
36
|
+
"edit_osm": "Modifica OSM",
|
|
37
|
+
"loading_labels_serious": [
|
|
38
|
+
"🗺️ Caricamento dei dati della mappa",
|
|
39
|
+
"🖥️ Interrogazione delle API",
|
|
40
|
+
"🖼️ Caricamento delle miniature",
|
|
41
|
+
"🔍 Analisi dei metadata EXIF",
|
|
42
|
+
"🏘️ Creazione del rendering 3D",
|
|
43
|
+
"📷 Inizializzazione delle foto a 360°",
|
|
44
|
+
"🟠 Bilanciamento del colore",
|
|
45
|
+
"💯 Calcolo del punteggio della qualità ©"
|
|
46
|
+
],
|
|
47
|
+
"loading_labels_fun": [
|
|
48
|
+
"🦌 Rilevazione dei cartelli di attraversamento dei cervi",
|
|
49
|
+
"🚘 Ricerca dell’auto Panoramax ©",
|
|
50
|
+
"☕ Iniezione di caffeina",
|
|
51
|
+
"😀 Sorridete, siete stati mappati!",
|
|
52
|
+
"🐈 Condivisione delle foto di gatti",
|
|
53
|
+
"😴 Riduzione della procastinazione",
|
|
54
|
+
"🫖 Preparazione del tè",
|
|
55
|
+
"🐧 Apertura del codice sorgente",
|
|
56
|
+
"🚇 Indicizzazione delle stazioni della metro",
|
|
57
|
+
"🧹 Pulizia dei metadata",
|
|
58
|
+
"🚒 Invio delle foto delle stazioni dei pompieri",
|
|
59
|
+
"🚲 Aggiornamento delle strade verdi",
|
|
60
|
+
null,
|
|
61
|
+
"🛰️ Ricerca dei satelliti",
|
|
62
|
+
null,
|
|
63
|
+
"🐟 Ricerca dei negozi di patatine fritte",
|
|
64
|
+
"🧑💻 Debug dell’interfaccia",
|
|
65
|
+
"📈 Incremento delle statistiche"
|
|
66
|
+
],
|
|
67
|
+
"error_psv": "Il visualizzatore delle foto sferiche non si sta caricando correttamente",
|
|
68
|
+
"error_pic": "La foto richiesta non è stata trovata",
|
|
69
|
+
"error_nopic": "Nessuna foto disponibile alla posizione richiesta",
|
|
70
|
+
"error_api": "Il server delle foto non è disponibile",
|
|
71
|
+
"error_webgl": "Questo browser non supporta WebGL",
|
|
72
|
+
"error_josm": "JOSM non risponde, è in esecuzione con il controllo remoto abilitato?",
|
|
73
|
+
"error_api_compatibility": "Il server delle foto non è compatibile con questa versione del visualizzatore",
|
|
74
|
+
"filter_date": "Data",
|
|
75
|
+
"filter_date_1month": "1 mese",
|
|
76
|
+
"filter_date_1year": "1 anno",
|
|
77
|
+
"filter_user_mypics": "Le mie foto",
|
|
78
|
+
"filter_picture": "Tipo di foto",
|
|
79
|
+
"filter_zoom_in": "Ingrandisci per rendere visibili i filtri",
|
|
80
|
+
"picture_flat": "Classica",
|
|
81
|
+
"picture_360": "360°",
|
|
82
|
+
"filter_qualityscore_help": "Clicca per abilitare o disabilitare",
|
|
83
|
+
"map_background": "Sfondo della mappa",
|
|
84
|
+
"map_background_aerial": "Satellite",
|
|
85
|
+
"map_background_streets": "Strade",
|
|
86
|
+
"map_theme": "Tema della mappa",
|
|
87
|
+
"map_theme_default": "Classica",
|
|
88
|
+
"map_theme_age": "Data di acquisizione",
|
|
89
|
+
"map_theme_age_2": "< 2 anni",
|
|
90
|
+
"map_theme_age_3": "< 1 anno",
|
|
91
|
+
"map_theme_age_4": "< 1 mese",
|
|
92
|
+
"map_theme_score": "Punteggio della qualità",
|
|
93
|
+
"contrast": "Abilita un maggiore contrasto della foto",
|
|
94
|
+
"metadata": "Metadata della foto",
|
|
95
|
+
"metadata_general_picid": "Identificatore della foto",
|
|
96
|
+
"metadata_general_picid_link": "Vai alla descrizione JSON della foto",
|
|
97
|
+
"metadata_general_seqid_link": "Vai alla descrizione JSON della sequenza",
|
|
98
|
+
"metadata_general_author": "Autore",
|
|
99
|
+
"metadata_general_license": "Licenza",
|
|
100
|
+
"metadata_general_date": "Data di acquisizione",
|
|
101
|
+
"metadata_camera": "Fotocamera",
|
|
102
|
+
"metadata_camera_make": "Costruttore",
|
|
103
|
+
"metadata_camera_model": "Modello",
|
|
104
|
+
"metadata_camera_type": "Tipo",
|
|
105
|
+
"metadata_camera_resolution": "Risoluzione",
|
|
106
|
+
"metadata_location": "Posizione",
|
|
107
|
+
"metadata_location_longitude": "Longitudine",
|
|
108
|
+
"metadata_location_latitude": "Latitudine",
|
|
109
|
+
"metadata_location_precision": "Precisione della posizione",
|
|
110
|
+
"metadata_quality": "Punteggio della qualità",
|
|
111
|
+
"metadata_quality_score": "Punteggio globale",
|
|
112
|
+
"metadata_quality_gps_score": "Punteggio sulla posizione",
|
|
113
|
+
"metadata_quality_resolution_score": "Punteggio della risoluzione",
|
|
114
|
+
"metadata_exif": "EXIF / XMP",
|
|
115
|
+
"metadata_exif_name": "Attributo",
|
|
116
|
+
"report_auth": "Questa segnalazione verrà inviata usando la tua utenza “{a}”",
|
|
117
|
+
"report_nature_label": "Natura del problema",
|
|
118
|
+
"report_nature": {
|
|
119
|
+
"blur_excess": "Un oggetto che non ha bisogno di essere offuscato lo è",
|
|
120
|
+
"inappropriate": "La foto è inappropriata (non pertinente, nudo, …)",
|
|
121
|
+
"mislocated": "La foto non è ben posizionata sulla mappa",
|
|
122
|
+
"copyright": "La foto viola il diritto d’autore",
|
|
123
|
+
"other": "Qualsiasi altro tipo di problema",
|
|
124
|
+
"picture_low_quality": "La foto è di qualità scarsa",
|
|
125
|
+
"": "Selezione la natura del problema…",
|
|
126
|
+
"blur_missing": "Sono visibili la faccia di una persona o la targa di un’auto",
|
|
127
|
+
"privacy": "Sono visibili un sentiero o una proprietà privati"
|
|
128
|
+
},
|
|
129
|
+
"report_whole_sequence": "Riguarda l’intera sequenza",
|
|
130
|
+
"report_details": "Ulteriori dettagli",
|
|
131
|
+
"report_email": "La tua e-mail",
|
|
132
|
+
"report_email_placeholder": "Facoltativo",
|
|
133
|
+
"report_submit": "Invia",
|
|
134
|
+
"report_wait": "Invio della segnalazione…",
|
|
135
|
+
"report_failure": "È avvenuto un errore durante la creazione della segnalazione: {e}. Riprovare più tardi.",
|
|
136
|
+
"moveMiddle": "Centra la visuale",
|
|
137
|
+
"show_map": "Mostra la mappa",
|
|
138
|
+
"sequence_next": "Prossima foto nella sequenza",
|
|
139
|
+
"map_theme_age_1": "> 2 anni",
|
|
140
|
+
"map_theme_type": "Tipo di fotocamera",
|
|
141
|
+
"minimize": "Nascondi il widget, puoi mostrarlo di nuovo usando il pulsante nell’angolo in basso a sinistra",
|
|
142
|
+
"metadata_general_license_link": "Vai alla pagina della descrizione completa della licenza",
|
|
143
|
+
"share_rss": "Feed RSS",
|
|
144
|
+
"show_psv": "Mostra il visualizzatore delle foto",
|
|
145
|
+
"share_rss_title": "Feed RSS delle nuove sequenze nell’area visibile della mappa",
|
|
146
|
+
"sequence_prev": "Foto precedente della sequenza",
|
|
147
|
+
"sequence_more": "Altre opzioni di riproduzione",
|
|
148
|
+
"josm_live": "Abilita la sincronizzazione automatica di JOSM al caricamento delle foto",
|
|
149
|
+
"metadata_general_seqid": "Identificatore della sequenza",
|
|
150
|
+
"metadata_camera_focal_length": "Lunghezza focale",
|
|
151
|
+
"filter_user": "Utente",
|
|
152
|
+
"metadata_location_orientation": "Direzione dello scatto",
|
|
153
|
+
"filter_qualityscore": "Punteggio della qualità",
|
|
154
|
+
"metadata_quality_help": "Per saperne di più sul punteggio di qualità",
|
|
155
|
+
"metadata_quality_missing": "Nessun valore impostato nella foto",
|
|
156
|
+
"metadata_exif_value": "Valore",
|
|
157
|
+
"report": "Segnala foto",
|
|
158
|
+
"report_details_placeholder": "Facoltativo, puoi aggiungere dei dettagli sul problema e sul perché lo ritieni rilevante",
|
|
159
|
+
"report_success": "La segnalazione è stata inviata correttamente. Non appena possibile verrà esaminata."
|
|
160
|
+
},
|
|
161
|
+
"psv": {
|
|
162
|
+
"loadError": "Impossibile caricare l’immagine panoramica",
|
|
163
|
+
"ctrlZoom": "Utilizza Ctrl + rotellina del mouse per ingrandire l’immagine",
|
|
164
|
+
"twoFingers": "Usa due dita per spostarti"
|
|
165
|
+
},
|
|
166
|
+
"maplibre": {
|
|
167
|
+
"GeolocateControl.FindMyLocation": "Trova la mia posizione",
|
|
168
|
+
"GeolocateControl.LocationNotAvailable": "Posizione non disponibile"
|
|
169
|
+
},
|
|
170
|
+
"map": {
|
|
171
|
+
"loading": "Caricamento…",
|
|
172
|
+
"thumbnail": "Miniatura della foto passata con il mouse",
|
|
173
|
+
"not_public": "Non pubblicamente visibile",
|
|
174
|
+
"slow_loading": "La mappa impiega troppo tempo a caricarsi e potrebbe apparire a pezzi"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"gvs": {
|
|
3
|
+
"moveRight": "Przesuń w prawo",
|
|
4
|
+
"sequence_speed": "Prędkość odtwarzania",
|
|
5
|
+
"metadata_camera_model": "Model",
|
|
6
|
+
"search_address": "Szukaj adres, miasto…",
|
|
7
|
+
"zoom": "Przybliżenie",
|
|
8
|
+
"zoomIn": "Przybliż",
|
|
9
|
+
"moveUp": "Przesuń w górę",
|
|
10
|
+
"moveDown": "Przesuń w dół",
|
|
11
|
+
"moveLeft": "Przesuń w lewo",
|
|
12
|
+
"moveMiddle": "Wycentruj widok",
|
|
13
|
+
"expand": "Rozszerz",
|
|
14
|
+
"show_psv": "Pokaż przeglądarkę zdjęć",
|
|
15
|
+
"show_map": "Pokaż mapę",
|
|
16
|
+
"options": "Opcje",
|
|
17
|
+
"filters": "Filtry",
|
|
18
|
+
"layers": "Warstwy",
|
|
19
|
+
"search": "Szukaj",
|
|
20
|
+
"search_empty": "Brak wyników",
|
|
21
|
+
"search_user": "Szukaj nazwy użytkownika…",
|
|
22
|
+
"share": "Udostępnij",
|
|
23
|
+
"share_links": "Linki",
|
|
24
|
+
"share_page": "Link do tej strony",
|
|
25
|
+
"share_rss": "Kanał RSS",
|
|
26
|
+
"share_print": "Drukuj",
|
|
27
|
+
"copy": "Kopiuj",
|
|
28
|
+
"copied": "Skopiowano",
|
|
29
|
+
"error": "Mamy problem…",
|
|
30
|
+
"error_click": "Kliknij, aby kontynuować",
|
|
31
|
+
"error_retry": "Proszę spróbuj później",
|
|
32
|
+
"sequence_next": "Następne zdjęcie w sekwencji",
|
|
33
|
+
"sequence_pause": "Spauzuj sekwencję",
|
|
34
|
+
"sequence_prev": "Poprzednie zdjęcie w sekwencji",
|
|
35
|
+
"sequence_more": "Więcej opcji odtwarzania",
|
|
36
|
+
"legend_license": "Licencja: {l}",
|
|
37
|
+
"legend_title": "Pokaż szczegóły zdjęcia",
|
|
38
|
+
"edit_osm": "Edytuj OSM",
|
|
39
|
+
"loading_labels_serious": [
|
|
40
|
+
"🗺️ Wczytywanie danych mapy",
|
|
41
|
+
"🖥️ Odpytywanie API",
|
|
42
|
+
"🖼️ Wczytywanie miniaturek",
|
|
43
|
+
"🔍 Analizowanie metadanych EXIF",
|
|
44
|
+
"🏘️ Renderowanie 3D",
|
|
45
|
+
"📷 Inicjowanie zdjęć 360°",
|
|
46
|
+
"🟠 Balansowanie kolorów",
|
|
47
|
+
"💯 Obliczanie oceny jakości ©"
|
|
48
|
+
],
|
|
49
|
+
"map_theme_age_2": "< 2 lata",
|
|
50
|
+
"map_theme_age_1": "> 2 lata",
|
|
51
|
+
"map_theme_age": "Data zrobienia",
|
|
52
|
+
"filter_picture": "Typ zdjęcia",
|
|
53
|
+
"map_theme_age_3": "< rok",
|
|
54
|
+
"map_theme_age_4": "< miesiąc",
|
|
55
|
+
"map_theme_type": "Typ aparatu",
|
|
56
|
+
"metadata": "Metadane zdjęcia",
|
|
57
|
+
"metadata_general_picid": "Identyfikator zdjęcia",
|
|
58
|
+
"metadata_general_seqid": "Identyfikator sekwencji",
|
|
59
|
+
"metadata_general_license": "Licencja",
|
|
60
|
+
"metadata_general_author": "Autor",
|
|
61
|
+
"metadata_camera": "Aparat",
|
|
62
|
+
"metadata_camera_type": "Typ",
|
|
63
|
+
"metadata_camera_resolution": "Rozdzielczość",
|
|
64
|
+
"metadata_location": "Lokalizacja",
|
|
65
|
+
"metadata_exif": "EXIF / XMP",
|
|
66
|
+
"metadata_quality_missing": "Brak wartości ustawionej w zdjęciu",
|
|
67
|
+
"metadata_exif_name": "Tag",
|
|
68
|
+
"metadata_exif_value": "Wartość",
|
|
69
|
+
"report": "Zgłoś zdjęcie",
|
|
70
|
+
"report_nature": {
|
|
71
|
+
"privacy": "Prywatna droga lub własność widoczna",
|
|
72
|
+
"mislocated": "Zdjęcie jest w złym miejscu na mapie",
|
|
73
|
+
"copyright": "Zdjęcie narusza prawa autorskie",
|
|
74
|
+
"picture_low_quality": "Zdjęcie jest bardzo niskiej jakości",
|
|
75
|
+
"other": "Inny problem",
|
|
76
|
+
"": "Wybierz typ problemu…",
|
|
77
|
+
"blur_missing": "Twarz osoby lub rejestracja samochodu jest widoczna",
|
|
78
|
+
"blur_excess": "Obiekt, który nie wymaga zamazania jest zamazany",
|
|
79
|
+
"inappropriate": "Zdjęcie jest niestosowne (niezwiązane, nagość…)"
|
|
80
|
+
},
|
|
81
|
+
"zoomOut": "Oddal",
|
|
82
|
+
"report_whole_sequence": "Dotyczy całej sekwencji",
|
|
83
|
+
"report_details": "Dodatkowe szczegóły",
|
|
84
|
+
"report_email": "Twój adres email",
|
|
85
|
+
"report_email_placeholder": "Opcjonalne",
|
|
86
|
+
"report_submit": "Wyślij",
|
|
87
|
+
"report_wait": "Wysyłanie zgłoszenia…",
|
|
88
|
+
"report_success": "Zgłoszenie zostało wysłane. Zostanie przejrzane tak szybko jak to możliwe.",
|
|
89
|
+
"share_rss_title": "Kanał RSS nowych sekwencji na widocznym obszarze mapy",
|
|
90
|
+
"loading_labels_fun": [
|
|
91
|
+
"🦌 Wykrywanie znaków przechodzenia jeleni",
|
|
92
|
+
null,
|
|
93
|
+
"☕ Wstrzykiwanie kofeiny",
|
|
94
|
+
"😀 Uśmiechnij się, jesteś mapowany!",
|
|
95
|
+
"🐈 Udostępnianie zdjęć kotów",
|
|
96
|
+
"😴 Zmniejszania prokrastynacji",
|
|
97
|
+
"🫖 Parzenie herbaty",
|
|
98
|
+
"🐧 Otwieranie kodu źródłowego",
|
|
99
|
+
"🚇 Indeksowanie stacji metra",
|
|
100
|
+
"🧹 Czyszczenie metadanych",
|
|
101
|
+
"🚒 Przesyłanie zdjęć remiz",
|
|
102
|
+
null,
|
|
103
|
+
"🚉 Przechodzenie peronów stacji",
|
|
104
|
+
"🛰️ Wyszukiwanie satelit",
|
|
105
|
+
null,
|
|
106
|
+
"🐟 Szukanie sklepów z frytkami i rybą",
|
|
107
|
+
"🧑💻 Interfejs debugowania",
|
|
108
|
+
"📈 Zwiększanie statystyk"
|
|
109
|
+
],
|
|
110
|
+
"share_embed_docs": "Przeczytaj więcej o konfiguracji osadzenia",
|
|
111
|
+
"sequence_play": "Odtwórz tę sekwencję",
|
|
112
|
+
"josm_live": "Włącz automatyczną synchronizację JOSM przy ładowaniu zdjęć",
|
|
113
|
+
"error_api": "Serwer zdjęć nie jest dostępny",
|
|
114
|
+
"error_webgl": "WebGL nie jest obsługiwany przez tę przeglądarkę",
|
|
115
|
+
"error_api_compatibility": "Serwer zdjęć nie jest kompatybilny z tą wersją przeglądarki",
|
|
116
|
+
"filter_date": "Data",
|
|
117
|
+
"filter_date_1month": "1 miesiąc",
|
|
118
|
+
"filter_date_1year": "1 rok",
|
|
119
|
+
"filter_user": "Użytkownik",
|
|
120
|
+
"filter_user_mypics": "Moje zdjęcia",
|
|
121
|
+
"filter_zoom_in": "Przybliż, aby filtry były widoczne",
|
|
122
|
+
"picture_flat": "Klasyczne",
|
|
123
|
+
"picture_360": "360°",
|
|
124
|
+
"filter_qualityscore": "Ocena jakości",
|
|
125
|
+
"map_background": "Podkład mapowy",
|
|
126
|
+
"map_background_aerial": "Zdjęcia lotnicze",
|
|
127
|
+
"map_background_streets": "Ulice",
|
|
128
|
+
"map_theme": "Motyw mapy",
|
|
129
|
+
"map_theme_default": "Klasyczny",
|
|
130
|
+
"map_theme_score": "Ocena jakości",
|
|
131
|
+
"contrast": "Włącz wyższy kontrast zdjęcia",
|
|
132
|
+
"metadata_general_picid_link": "Idź do opisu zdjęcia w JSON",
|
|
133
|
+
"metadata_general_seqid_link": "Idź do opisu sekwencji w JSON",
|
|
134
|
+
"metadata_general_license_link": "Idź do strony z pelnym opisem licencji",
|
|
135
|
+
"metadata_general_date": "Data zrobienia",
|
|
136
|
+
"metadata_camera_make": "Marka",
|
|
137
|
+
"metadata_camera_focal_length": "Ogniskowa",
|
|
138
|
+
"metadata_location_longitude": "Długość geograficzna",
|
|
139
|
+
"metadata_location_latitude": "Szerokość geograficzna",
|
|
140
|
+
"metadata_location_orientation": "Kierunek robienia zdjęcia",
|
|
141
|
+
"metadata_location_precision": "Precyzja lokalizacji",
|
|
142
|
+
"metadata_quality": "Ocena jakości",
|
|
143
|
+
"metadata_quality_help": "Dowiedz się więcej o ocenie jakości",
|
|
144
|
+
"metadata_quality_score": "Ocena globalna",
|
|
145
|
+
"metadata_quality_gps_score": "Ocena pozycji",
|
|
146
|
+
"metadata_quality_resolution_score": "Ocena rozdzielczości",
|
|
147
|
+
"report_auth": "To zgłoszenie będzie wysłanie przy pomocy Twojego konta \"{a}\"",
|
|
148
|
+
"report_nature_label": "Typ problemu",
|
|
149
|
+
"report_details_placeholder": "Opcjonalnie, możesz dodać szczegóły o problemie",
|
|
150
|
+
"report_failure": "Błąd wystąpił podczas tworzenia zgłoszenia: {e}. Proszę spróbuj ponownie.",
|
|
151
|
+
"filter_qualityscore_help": "Kliknij, aby włączyć lub wyłączyć",
|
|
152
|
+
"error_josm": "JOSM nie odpowiada, czy jest uruchomiony i czy dostęp zdalny jest włączony?"
|
|
153
|
+
},
|
|
154
|
+
"psv": {
|
|
155
|
+
"twoFingers": "Użyj dwóch palców do nawigacji",
|
|
156
|
+
"ctrlZoom": "Użyj ctrl + rolka myszy, aby powiększyć zdjęcie",
|
|
157
|
+
"loadError": "Panorama nie może być załadowana"
|
|
158
|
+
},
|
|
159
|
+
"maplibre": {
|
|
160
|
+
"GeolocateControl.FindMyLocation": "Znajdź moją lokalizację",
|
|
161
|
+
"GeolocateControl.LocationNotAvailable": "Lokalizacja niedostępna"
|
|
162
|
+
},
|
|
163
|
+
"map": {
|
|
164
|
+
"thumbnail": "Miniaturki najechanego zdjęcia",
|
|
165
|
+
"not_public": "Niewidoczne publicznie",
|
|
166
|
+
"slow_loading": "Mapa ładuje się wolno i może się wydawaj popsuta",
|
|
167
|
+
"loading": "Ładowanie…"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"error_pic": "找不到指定的相片",
|
|
13
13
|
"error_psv": "無法正確載入 Photo Sphere Viewer",
|
|
14
14
|
"error_subtitle": "請稍後重試或檢查瀏覽器的主控台以了解詳情。",
|
|
15
|
-
"error_webgl": "
|
|
15
|
+
"error_webgl": "您的瀏覽器不支援 WebGL",
|
|
16
16
|
"expand": "展開",
|
|
17
17
|
"expand_info": "在整個畫面顯示此小工具",
|
|
18
18
|
"filter_camera_model": "按相機型號",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"metadata_general_author": "作者",
|
|
80
80
|
"metadata_general_date": "拍攝時間",
|
|
81
81
|
"metadata_general_license": "授權",
|
|
82
|
-
"metadata_general_license_link": "
|
|
82
|
+
"metadata_general_license_link": "查看完整授權條款",
|
|
83
83
|
"metadata_general_picid": "相片識別碼",
|
|
84
84
|
"metadata_general_picid_link": "前往本相片的 JSON 說明",
|
|
85
85
|
"metadata_general_seqid": "序列識別碼",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"share_page": "本頁的超連結",
|
|
116
116
|
"share_print": "列印",
|
|
117
117
|
"share_rss": "RSS 摘要",
|
|
118
|
-
"share_rss_title": "
|
|
118
|
+
"share_rss_title": "目前地圖可見區域中新相片序列的 RSS 摘要",
|
|
119
119
|
"show_map": "顯示地圖",
|
|
120
120
|
"show_psv": "顯示相片檢視器",
|
|
121
121
|
"zoom": "縮放",
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"report_whole_sequence": "這個問題影響整個序列",
|
|
144
144
|
"report_details": "更多資訊",
|
|
145
145
|
"report_details_placeholder": "選填,您可以詳述此問題和它造成的影響",
|
|
146
|
-
"report_wait": "
|
|
146
|
+
"report_wait": "正在傳送報告…",
|
|
147
147
|
"report_success": "已成功發送報告,我們將儘快對它進行審核。",
|
|
148
148
|
"report_failure": "建立報告時發送錯誤: {e},請稍後再試。",
|
|
149
149
|
"report_auth": "此報告將使用您的帳戶「{a}」發送",
|
package/src/utils/API.js
CHANGED
|
@@ -116,8 +116,8 @@ export default class API {
|
|
|
116
116
|
throw new Error("API Landing page doesn't contain 'links' list");
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
if(!landing.stac_version.startsWith("1.
|
|
120
|
-
throw new Error(`API is not in a supported STAC version (Panoramax viewer supports only 1.
|
|
119
|
+
if(!landing.stac_version.startsWith("1.")) {
|
|
120
|
+
throw new Error(`API is not in a supported STAC version (Panoramax viewer supports only 1.x, API is ${landing.stac_version})`);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
// Read metadata
|
package/src/utils/I18n.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import T_da from "../translations/da.json";
|
|
1
2
|
import T_de from "../translations/de.json";
|
|
2
3
|
import T_en from "../translations/en.json";
|
|
4
|
+
import T_eo from "../translations/eo.json";
|
|
3
5
|
import T_es from "../translations/es.json";
|
|
4
6
|
import T_fr from "../translations/fr.json";
|
|
5
7
|
import T_hu from "../translations/hu.json";
|
|
8
|
+
import T_it from "../translations/it.json";
|
|
9
|
+
import T_pl from "../translations/pl.json";
|
|
6
10
|
import T_zh_Hant from "../translations/zh_Hant.json";
|
|
7
11
|
|
|
8
12
|
const FALLBACK_LOCALE = "en";
|
|
9
13
|
const TRANSLATIONS = {
|
|
10
|
-
"
|
|
14
|
+
"da": T_da, "de": T_de, "eo": T_eo, "en": T_en, "es": T_es, "fr": T_fr,
|
|
15
|
+
"hu": T_hu, "it": T_it, "pl": T_pl, "zh_Hant": T_zh_Hant,
|
|
11
16
|
};
|
|
12
17
|
|
|
13
18
|
/**
|
|
@@ -15,6 +20,7 @@ const TRANSLATIONS = {
|
|
|
15
20
|
* @param {str[]} supportedTranslations List of supported languages
|
|
16
21
|
* @param {str} fallback The fallback language
|
|
17
22
|
* @returns The best matching language
|
|
23
|
+
* @private
|
|
18
24
|
*/
|
|
19
25
|
export function autoDetectLocale(supportedTranslations, fallback) { // eslint-ignore import/no-unused-modules
|
|
20
26
|
for (const navigatorLang of window.navigator.languages) {
|
|
@@ -73,10 +79,13 @@ export function getTranslations(lang = "") {
|
|
|
73
79
|
|
|
74
80
|
// Merge labels to avoid missing ones
|
|
75
81
|
if(preferedTr) {
|
|
76
|
-
Object.entries(preferedTr).forEach(([k1,
|
|
77
|
-
Object.
|
|
82
|
+
Object.entries(preferedTr).forEach(([k1, k2]) => {
|
|
83
|
+
Object.entries(k2).forEach(([k2, k3]) => {
|
|
84
|
+
if(Array.isArray(k3)) { k3 = k3.filter(v => v != null); }
|
|
85
|
+
myTr[k1][k2] = k3;
|
|
86
|
+
});
|
|
78
87
|
});
|
|
79
88
|
}
|
|
80
89
|
|
|
81
90
|
return myTr;
|
|
82
|
-
}
|
|
91
|
+
}
|
package/src/utils/Utils.js
CHANGED
|
@@ -46,6 +46,7 @@ const ArrowTurn = svgToPSVLink(ArrowTurnSVG, COLORS.NEXT);
|
|
|
46
46
|
* @param {number[]} ranges The QUALITYSCORE_*_VALUES definition
|
|
47
47
|
* @param {number} value The picture value
|
|
48
48
|
* @return {number} The corresponding grade (1 to 5, or null if missing)
|
|
49
|
+
* @private
|
|
49
50
|
*/
|
|
50
51
|
export function getGrade(ranges, value) {
|
|
51
52
|
if(value === null || value === undefined || value === "") { return null; }
|
|
@@ -588,6 +589,7 @@ export function isInternetFast() {
|
|
|
588
589
|
* Get a cookie value
|
|
589
590
|
* @param {str} name The cookie name
|
|
590
591
|
* @returns {str} The cookie value, or null if not found
|
|
592
|
+
* @private
|
|
591
593
|
*/
|
|
592
594
|
export function getCookie(name) {
|
|
593
595
|
const parts = document.cookie
|
|
@@ -602,6 +604,7 @@ export function getCookie(name) {
|
|
|
602
604
|
/**
|
|
603
605
|
* Checks if an user account exists
|
|
604
606
|
* @returns {object} Object like {"id", "name"} or null if no authenticated account
|
|
607
|
+
* @private
|
|
605
608
|
*/
|
|
606
609
|
export function getUserAccount() {
|
|
607
610
|
const session = getCookie("session");
|
package/src/utils/Widgets.js
CHANGED
|
@@ -502,6 +502,7 @@ export function createLabel(forAttr, text, faIcon = null) {
|
|
|
502
502
|
* Show a grade in a nice, user-friendly way
|
|
503
503
|
* @param {number} grade The obtained grade
|
|
504
504
|
* @returns {string} Nice to display grade display
|
|
505
|
+
* @private
|
|
505
506
|
*/
|
|
506
507
|
export function showGrade(grade, t) {
|
|
507
508
|
let label = "<span class=\"gvs-grade\">";
|
|
@@ -523,6 +524,7 @@ export function showGrade(grade, t) {
|
|
|
523
524
|
* Displays a nice QualityScore
|
|
524
525
|
* @param {number} grade The 1 to 5 grade
|
|
525
526
|
* @returns {Element} The HTML code for showing the grade
|
|
527
|
+
* @private
|
|
526
528
|
*/
|
|
527
529
|
export function showQualityScore(grade) {
|
|
528
530
|
const span = document.createElement("span");
|
package/src/viewer/Widgets.css
CHANGED
|
@@ -120,6 +120,7 @@
|
|
|
120
120
|
justify-content: space-between;
|
|
121
121
|
align-items: center;
|
|
122
122
|
flex-wrap: wrap;
|
|
123
|
+
white-space: nowrap;
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
span.gvs-input-btn {
|
|
@@ -317,6 +318,7 @@ span.gvs-input-btn {
|
|
|
317
318
|
display: flex;
|
|
318
319
|
justify-content: center;
|
|
319
320
|
align-items: center;
|
|
321
|
+
white-space: nowrap;
|
|
320
322
|
}
|
|
321
323
|
|
|
322
324
|
a.gvs-btn { text-decoration: none; }
|
package/tests/utils/API.test.js
CHANGED
|
@@ -180,7 +180,7 @@ describe("_parseLanding", () => {
|
|
|
180
180
|
it("fails if API version is not supported", () => {
|
|
181
181
|
const api = new API (ENDPOINT, { skipReadLanding: true });
|
|
182
182
|
const landing = { stac_version: "0.1", links: [] };
|
|
183
|
-
expect(() => api._parseLanding(landing)).toThrow("API is not in a supported STAC version (Panoramax viewer supports only 1.
|
|
183
|
+
expect(() => api._parseLanding(landing)).toThrow("API is not in a supported STAC version (Panoramax viewer supports only 1.x, API is 0.1)");
|
|
184
184
|
});
|
|
185
185
|
|
|
186
186
|
it("fails if mandatory links are not set", () => {
|