qwc2 2025.11.18 → 2025.11.26

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.
Files changed (94) hide show
  1. package/actions/windows.js +3 -1
  2. package/components/AppMenu.js +141 -204
  3. package/components/AttributeTableWidget.js +5 -1
  4. package/components/FeatureAttributesWindow.js +1 -2
  5. package/components/FullscreenSwitcher.js +3 -0
  6. package/components/Icon.js +6 -0
  7. package/components/ImportLayer.js +3 -9
  8. package/components/LayerInfoWindow.js +1 -2
  9. package/components/MapButton.js +2 -0
  10. package/components/NumericInputWindow.js +1 -2
  11. package/components/PickFeature.js +1 -1
  12. package/components/PluginsContainer.js +48 -6
  13. package/components/ResizeableWindow.js +18 -9
  14. package/components/SearchBox.js +117 -124
  15. package/components/ServiceInfoWindow.js +1 -2
  16. package/components/ThemeLayersListWindow.js +22 -11
  17. package/components/ThemeList.js +7 -2
  18. package/components/WindowManager.js +14 -2
  19. package/components/map/layers/VectorLayer.js +4 -2
  20. package/components/map3d/HeightProfile3D.js +0 -1
  21. package/components/map3d/Map3D.js +36 -35
  22. package/components/map3d/View3DSwitcher.js +2 -1
  23. package/components/map3d/drawtool/NumericInput3D.js +1 -2
  24. package/components/map3d/layers/GeoTIFFLayer3D.js +2 -1
  25. package/components/map3d/layers/VectorLayer3D.js +12 -2
  26. package/components/map3d/layers/WFSLayer3D.js +17 -1
  27. package/components/style/App.css +4 -0
  28. package/components/style/AppMenu.css +33 -48
  29. package/components/style/DefaultColorScheme.css +1 -0
  30. package/components/style/PickFeature.css +0 -6
  31. package/components/style/ResizeableWindow.css +0 -4
  32. package/components/style/SearchBox.css +0 -21
  33. package/components/style/WindowManager.css +6 -0
  34. package/components/widgets/ColorButton.js +7 -2
  35. package/components/widgets/ComboBox.js +18 -16
  36. package/components/widgets/EditableSelect.js +5 -10
  37. package/components/widgets/LayerCatalogWidget.js +66 -16
  38. package/components/widgets/MenuButton.js +16 -15
  39. package/components/widgets/PopupMenu.js +153 -13
  40. package/components/widgets/ToggleSwitch.js +5 -2
  41. package/components/widgets/style/ComboBox.css +7 -20
  42. package/components/widgets/style/EditableSelect.css +0 -2
  43. package/components/widgets/style/MenuButton.css +1 -17
  44. package/components/widgets/style/PopupMenu.css +20 -0
  45. package/package.json +2 -2
  46. package/plugins/AttributeTable.js +0 -1
  47. package/plugins/BackgroundSwitcher.js +104 -8
  48. package/plugins/Cyclomedia.js +1 -2
  49. package/plugins/FeatureForm.js +3 -6
  50. package/plugins/GeometryDigitizer.js +1 -2
  51. package/plugins/HeightProfile.js +2 -5
  52. package/plugins/Identify.js +2 -5
  53. package/plugins/LayerCatalog.js +2 -13
  54. package/plugins/LayerTree.js +22 -13
  55. package/plugins/MapLegend.js +1 -2
  56. package/plugins/ObjectList.js +0 -1
  57. package/plugins/Panoramax.js +1 -2
  58. package/plugins/Print.js +1 -2
  59. package/plugins/Routing.js +1 -2
  60. package/plugins/TimeManager.js +2 -5
  61. package/plugins/ValueTool.js +1 -2
  62. package/plugins/View3D.js +0 -1
  63. package/plugins/map/MeasurementSupport.js +2 -2
  64. package/plugins/map3d/Identify3D.js +1 -2
  65. package/plugins/map3d/Measure3D.js +21 -12
  66. package/plugins/style/BackgroundSwitcher.css +2 -1
  67. package/plugins/style/LayerTree.css +3 -18
  68. package/reducers/windows.js +2 -1
  69. package/static/translations/bg-BG.json +1 -0
  70. package/static/translations/ca-ES.json +29 -28
  71. package/static/translations/cs-CZ.json +1 -0
  72. package/static/translations/de-CH.json +1 -0
  73. package/static/translations/de-DE.json +1 -0
  74. package/static/translations/en-US.json +1 -0
  75. package/static/translations/es-ES.json +34 -33
  76. package/static/translations/fi-FI.json +1 -0
  77. package/static/translations/fr-FR.json +2 -1
  78. package/static/translations/hu-HU.json +1 -0
  79. package/static/translations/it-IT.json +1 -0
  80. package/static/translations/ja-JP.json +1 -0
  81. package/static/translations/nl-NL.json +1 -0
  82. package/static/translations/no-NO.json +1 -0
  83. package/static/translations/pl-PL.json +1 -0
  84. package/static/translations/pt-BR.json +1 -0
  85. package/static/translations/pt-PT.json +1 -0
  86. package/static/translations/ro-RO.json +1 -0
  87. package/static/translations/ru-RU.json +1 -0
  88. package/static/translations/sv-SE.json +1 -0
  89. package/static/translations/tr-TR.json +1 -0
  90. package/static/translations/tsconfig.json +1 -0
  91. package/static/translations/uk-UA.json +1 -0
  92. package/utils/MapUtils.js +6 -0
  93. package/utils/MiscUtils.js +12 -0
  94. package/utils/ThemeUtils.js +2 -1
@@ -1172,8 +1172,7 @@ var Routing = /*#__PURE__*/function (_React$Component) {
1172
1172
  },
1173
1173
  title: LocaleUtils.tr("routing.windowtitle")
1174
1174
  }, /*#__PURE__*/React.createElement("div", {
1175
- className: "routing-body",
1176
- role: "body"
1175
+ className: "routing-body"
1177
1176
  }, /*#__PURE__*/React.createElement(ButtonBar, {
1178
1177
  active: this.state.currentTab,
1179
1178
  buttons: tabButtons,
@@ -240,8 +240,7 @@ var TimeManager = /*#__PURE__*/function (_React$Component) {
240
240
  enddate = dayjs(_this.props.filter.timeRange.tend);
241
241
  }
242
242
  return /*#__PURE__*/React.createElement("div", {
243
- className: "time-manager-body",
244
- role: "body"
243
+ className: "time-manager-body"
245
244
  }, /*#__PURE__*/React.createElement("div", {
246
245
  className: "time-manager-toolbar"
247
246
  }, /*#__PURE__*/React.createElement("div", {
@@ -821,9 +820,7 @@ var TimeManager = /*#__PURE__*/function (_React$Component) {
821
820
  var timeValues = this.state.timeData.values;
822
821
  var body = null;
823
822
  if (timeValues.length < 2) {
824
- body = /*#__PURE__*/React.createElement("div", {
825
- role: "body"
826
- }, /*#__PURE__*/React.createElement("div", {
823
+ body = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
827
824
  className: "time-manager-notemporaldata"
828
825
  }, LocaleUtils.tr("timemanager.notemporaldata")));
829
826
  } else {
@@ -363,8 +363,7 @@ var ValueTool = /*#__PURE__*/function (_React$Component) {
363
363
  onClose: this.onWindowClose,
364
364
  title: LocaleUtils.tr("valuetool.title")
365
365
  }, /*#__PURE__*/React.createElement("div", {
366
- className: "valuetool-body",
367
- role: "body"
366
+ className: "valuetool-body"
368
367
  }, /*#__PURE__*/React.createElement(ButtonBar, {
369
368
  active: this.state.activeTab,
370
369
  buttons: buttons,
package/plugins/View3D.js CHANGED
@@ -108,7 +108,6 @@ var View3D = /*#__PURE__*/function (_React$Component) {
108
108
  splitTopAndBottomBar: true,
109
109
  title: LocaleUtils.tr("map3d.title")
110
110
  }, _this.state.componentLoaded ? /*#__PURE__*/React.createElement(Provider, {
111
- role: "body",
112
111
  store: _this.store
113
112
  }, /*#__PURE__*/React.createElement(PluginsContainer, {
114
113
  pluginsConfig: pluginsConfig
@@ -174,10 +174,10 @@ var MeasurementSupport = /*#__PURE__*/function (_React$Component) {
174
174
  var opts = {};
175
175
  if (_this.props.measurement.geomType === 'LineString') {
176
176
  opts.headmarker = _this.props.measurement.lineHeadMarker;
177
- opts.tailmarker = _this.props.measurement.lineHeadMarker;
177
+ opts.tailmarker = _this.props.measurement.lineTailMarker;
178
178
  } else if (_this.props.measurement.geomType === 'Bearing') {
179
179
  opts.headmarker = _this.props.measurement.bearingHeadMarker;
180
- opts.tailmarker = _this.props.measurement.bearingHeadMarker;
180
+ opts.tailmarker = _this.props.measurement.bearingTailMarker;
181
181
  }
182
182
  return [].concat(_toConsumableArray(FeatureStyles.measureInteraction(feature, opts)), [FeatureStyles.measureInteractionVertex({
183
183
  geometryFunction: geometryFunction
@@ -234,8 +234,7 @@ var Identify3D = /*#__PURE__*/function (_React$Component) {
234
234
  onClose: this.clear,
235
235
  title: LocaleUtils.tr("identify.title")
236
236
  }, /*#__PURE__*/React.createElement("div", {
237
- className: "identify-body",
238
- role: "body"
237
+ className: "identify-body"
239
238
  }, isEmpty(this.state.pickAttrs) ? /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("i", null, LocaleUtils.tr("identify.noattributes"))) : /*#__PURE__*/React.createElement("div", {
240
239
  className: "identify-result-box"
241
240
  }, /*#__PURE__*/React.createElement("table", {
@@ -256,14 +256,17 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
256
256
  });
257
257
  });
258
258
  _defineProperty(_this, "clearResult", function () {
259
- _this.drawLayer.source.clear();
260
- _this.measurementObjects.forEach(function (object) {
261
- _this.props.sceneContext.scene.remove(object);
262
- });
263
- _this.measurementObjects = [];
264
- _this.setState({
265
- result: null
266
- });
259
+ if (_this.state.haveResult) {
260
+ _this.drawLayer.source.clear();
261
+ _this.measurementObjects.forEach(function (object) {
262
+ _this.props.sceneContext.scene.remove(object);
263
+ });
264
+ _this.measurementObjects = [];
265
+ _this.setState({
266
+ result: null,
267
+ haveResult: false
268
+ });
269
+ }
267
270
  });
268
271
  _defineProperty(_this, "restart", function () {
269
272
  if (_this.abortController) {
@@ -340,7 +343,8 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
340
343
  _this.setState({
341
344
  result: {
342
345
  pos: [pos.x, pos.y, pos.z],
343
- ground: ground
346
+ ground: ground,
347
+ haveResult: true
344
348
  }
345
349
  });
346
350
 
@@ -357,6 +361,7 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
357
361
  _this.clearResult();
358
362
  }
359
363
  var pos = point.points[0];
364
+ var haveResult = false;
360
365
  if ((_this.state.result || []).length === 1) {
361
366
  // Add line if two points drawn
362
367
  var points = [_this.state.result[0], pos];
@@ -373,6 +378,7 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
373
378
  line.setPoints([new Vector3(points[0].x, points[0].y, points[0].z), new Vector3(points[1].x, points[1].y, points[0].z), new Vector3(points[1].x, points[1].y, points[1].z)]);
374
379
  _this.props.sceneContext.scene.add(line);
375
380
  _this.measurementObjects.push(line);
381
+ haveResult = true;
376
382
  } else {
377
383
  // Add first drawn point
378
384
  var shape = new Shape({
@@ -389,7 +395,8 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
389
395
  x: pos.x,
390
396
  y: pos.y,
391
397
  z: pos.z
392
- }])
398
+ }]),
399
+ haveResult: haveResult
393
400
  };
394
401
  });
395
402
  _this.restart();
@@ -434,7 +441,8 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
434
441
  result: {
435
442
  length: len3d,
436
443
  profile: line3d
437
- }
444
+ },
445
+ haveResult: true
438
446
  });
439
447
  _this.restart();
440
448
  });
@@ -497,7 +505,8 @@ var Measure3D = /*#__PURE__*/function (_React$Component) {
497
505
  }
498
506
  }
499
507
  _this.setState({
500
- result: area
508
+ result: area,
509
+ haveResult: true
501
510
  });
502
511
 
503
512
  // Setup for next measurement
@@ -32,7 +32,8 @@ div.background-switcher-item:hover {
32
32
  border: 1px solid var(--color-active);
33
33
  }
34
34
 
35
- div.background-switcher-item:hover div.background-switcher-group {
35
+ div.background-switcher-item:hover div.background-switcher-group,
36
+ div.background-switcher-item:focus-within div.background-switcher-group {
36
37
  display: block;
37
38
  }
38
39
 
@@ -20,33 +20,18 @@
20
20
  font-size: 80%;
21
21
  }
22
22
 
23
- #LayerTree div.layertree-visibility-menu {
24
- z-index: 1;
25
- position: absolute;
26
- top: 100%;
27
- border: 1px solid var(--border-color);
28
- background-color: var(--list-bg-color);
29
- color: var(--text-color);
30
- cursor: default;
31
- }
32
-
33
- #LayerTree div.layertree-visibility-menu > div {
23
+ div.layertree-visibility-menu > div {
34
24
  white-space: nowrap;
35
25
  padding: 0.25em 1em 0.25em 0.5em;
36
26
  display: flex;
37
27
  align-items: start;
38
28
  }
39
29
 
40
- #LayerTree div.layertree-visibility-menu > div:hover {
41
- background-color: var(--list-item-bg-color-hover);
42
- color: var(--list-item-text-color-hover);
43
- }
44
-
45
- #LayerTree div.layertree-visibility-menu > div > span.icon {
30
+ div.layertree-visibility-menu > div > span.icon {
46
31
  margin-right: 0.5em;
47
32
  }
48
33
 
49
- #LayerTree div.layertree-visibility-menu-sep:not(:first-child) {
34
+ div.layertree-visibility-menu-sep:not(:first-child) {
50
35
  border-top: 1px solid var(--border-color);
51
36
  }
52
37
 
@@ -108,7 +108,8 @@ export default function windows() {
108
108
  type: 'notification',
109
109
  text: action.text,
110
110
  notificationType: action.notificationType,
111
- sticky: action.sticky
111
+ sticky: action.sticky,
112
+ actions: action.actions
112
113
  }))
113
114
  });
114
115
  }
@@ -650,6 +650,7 @@
650
650
  "vertex": "Прилепване към върховете"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Добавяне на слой",
654
655
  "addlayerstotheme": "Добавяне на слоеве към текущата карта",
655
656
  "addselectedlayers": "Добавяне на избран(и) слой(и)",
@@ -3,7 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "No s'ha pogut trobar el fons \"{0}\", es mostra el fons per defecte.",
6
- "missingdefaulttheme": "",
6
+ "missingdefaulttheme": "No s'ha pogut carregar el tema per defecte.",
7
7
  "missinglayers": "No s'han pogut trobar les següents capes: {0}.",
8
8
  "missingpermalink": "L'enllaç permanent o marcador especificat no és vàlid o ha caducat.",
9
9
  "missingprojection": "No s'ha pogut carregar el tema \"{0}\": la projecció {1} no està definida.",
@@ -24,11 +24,11 @@
24
24
  "MapExport3D": "Exportar mapa",
25
25
  "MapFilter": "Filtre de mapa",
26
26
  "MapLight3D": "Llum i ombres",
27
- "ObjectList": "",
27
+ "ObjectList": "Llistat d'objectes",
28
28
  "Print": "Imprimir",
29
29
  "Reports": "Informes",
30
30
  "Settings": "Opcions",
31
- "Settings3D": "",
31
+ "Settings3D": "Opcions 3D",
32
32
  "Share": "Compartir link",
33
33
  "ThemeSwitcher": "Tema",
34
34
  "AttributeTable": "Taula d'atributs",
@@ -112,8 +112,8 @@
112
112
  "compare3d": {
113
113
  "clipplane": "Pla de retall",
114
114
  "compare_objects": "Comparar objectes",
115
- "info_message": "",
116
- "modify": "",
115
+ "info_message": "Comparació d'objectes activa",
116
+ "modify": "Modificar",
117
117
  "toggleall": "Alternar tot"
118
118
  },
119
119
  "cookiepopup": {
@@ -161,22 +161,22 @@
161
161
  "wedge": "Cunya"
162
162
  },
163
163
  "editdataset3d": {
164
- "moveobj": "",
165
- "zoomto": ""
164
+ "moveobj": "Moure objecte a la vista",
165
+ "zoomto": "Fer zoom a l'objecte"
166
166
  },
167
167
  "editing": {
168
168
  "add": "Afegir",
169
169
  "attrtable": "Taula",
170
170
  "canceldelete": "No esborrar",
171
171
  "clearpicture": "Netejar imatge",
172
- "clone_all": "",
173
- "clone_copy": "",
174
- "clone_defaulted": "",
175
- "clone_dontcopy": "",
176
- "clone_hidden": "",
177
- "clone_none": "",
178
- "clone_select_attrs": "",
179
- "clone_visible": "",
172
+ "clone_all": "Tots",
173
+ "clone_copy": "Copiar seleccionats",
174
+ "clone_defaulted": "(valor per defecte)",
175
+ "clone_dontcopy": "No copiar",
176
+ "clone_hidden": "(amagat)",
177
+ "clone_none": "Cap",
178
+ "clone_select_attrs": "Seleccionar atributs a copiar:",
179
+ "clone_visible": "Visibles sense valor per defecte",
180
180
  "commit": "Confirmar",
181
181
  "commitfailed": "Ha fallat el commit",
182
182
  "contraintviolation": "Violació de restricció",
@@ -197,15 +197,15 @@
197
197
  "reallydelete": "Esborrar",
198
198
  "relationcommitfailed": "Ha fallat el commit",
199
199
  "select": "Seleccionar",
200
- "selectlayer": "",
200
+ "selectlayer": "Escollir capa...",
201
201
  "takepicture": "Escull imatge",
202
202
  "unsavedchanged": "Hi ha canvis sense guardar. Vols sortir de la pàgina sense guardar?"
203
203
  },
204
204
  "featureattributes": {
205
- "name": "",
206
- "nofeatureormultiple": "",
207
- "value": "",
208
- "windowtitle": ""
205
+ "name": "Nom",
206
+ "nofeatureormultiple": "Sense element actiu o múltiples elements actius",
207
+ "value": "Valor ",
208
+ "windowtitle": "Atributs de l'element"
209
209
  },
210
210
  "featureform": {
211
211
  "feature": "Element",
@@ -239,7 +239,7 @@
239
239
  },
240
240
  "heightprofile": {
241
241
  "asl": "a.s.l.",
242
- "dhmdefaultname": "",
242
+ "dhmdefaultname": "Conjunt de dades",
243
243
  "distance": "Distància",
244
244
  "drawnodes": "Dibuixar nodes",
245
245
  "error": "No s'ha pogut calcular el perfil d'alçada",
@@ -259,8 +259,8 @@
259
259
  "identify": {
260
260
  "aggregatedreport": "Informe agregat",
261
261
  "clipboard": "Copiar al porta-retalls",
262
- "compare": "",
263
- "comparing": "",
262
+ "compare": "Comparar amb els objectes seleccionats",
263
+ "comparing": "Comparant {0} elements",
264
264
  "download": "Descarregar",
265
265
  "export": "Exportar",
266
266
  "featureReport": "Informe d'element",
@@ -271,7 +271,7 @@
271
271
  "noresults": "Sense informació disponible sobre el punt seleccionat",
272
272
  "querying": "Consultant...",
273
273
  "reportfail": "No s'ha pogut generar l'informe",
274
- "results": "",
274
+ "results": "Resultats",
275
275
  "selectreport": "Seleccionar informe...",
276
276
  "title": "Informació del element"
277
277
  },
@@ -297,7 +297,7 @@
297
297
  "shpreprojectionerror": "La geometria del Shapefile no s'ha pogut reproyectar i pot estar desplaçada.",
298
298
  "supportedformats": "Formats suportats: KML, GeoJSON, GeoPDF, SHP (en zip)",
299
299
  "unknownproj": "El GeoPDF seleccionat utilitza una projecció desconeguda: {0}.",
300
- "unsupportedfile": "",
300
+ "unsupportedfile": "El format de fitxer seleccionat no és suportat",
301
301
  "url": "URL",
302
302
  "urlplaceholder": "Adreça URL o WMS, WMTS, WFS..."
303
303
  },
@@ -362,8 +362,8 @@
362
362
  }
363
363
  },
364
364
  "locationrecorder": {
365
- "record": "",
366
- "stop": ""
365
+ "record": "Registrar",
366
+ "stop": "Parar"
367
367
  },
368
368
  "map": {
369
369
  "loading": "Carregant...",
@@ -542,7 +542,7 @@
542
542
  },
543
543
  "routing": {
544
544
  "add": "Afegir punt",
545
- "addlayer": "",
545
+ "addlayer": "Afegir capa",
546
546
  "addviapoint": "Passar per aquí",
547
547
  "arriveat": "Arribar a",
548
548
  "clear": "Netejar",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Ajustar als vèrtexs"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Afegir de totes maneres",
653
654
  "addlayer": "Afegir capa",
654
655
  "addlayerstotheme": "Afegir capa al mapa actual",
655
656
  "addselectedlayers": "Afegir capa(s) seleccionada(s)",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Přidat vrstvu",
654
655
  "addlayerstotheme": "Přidat vrstvy do aktuálního tématu",
655
656
  "addselectedlayers": "Přidat vybrané vrstvy",
@@ -650,6 +650,7 @@
650
650
  "vertex": "An Ecken einrasten"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Trotzdem hinzufügen",
653
654
  "addlayer": "Layer hinzufügen",
654
655
  "addlayerstotheme": "Ebenen der Karte hinzufügen",
655
656
  "addselectedlayers": "Selektierte Ebenen hinzufügen",
@@ -650,6 +650,7 @@
650
650
  "vertex": "An Ecken einrasten"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Trotzdem hinzufügen",
653
654
  "addlayer": "Layer hinzufügen",
654
655
  "addlayerstotheme": "Ebenen der Karte hinzufügen",
655
656
  "addselectedlayers": "Selektierte Ebenen hinzufügen",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Snap to vertices"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Add anyway",
653
654
  "addlayer": "Add layer",
654
655
  "addlayerstotheme": "Add layers to current map",
655
656
  "addselectedlayers": "Add selected layer(s)",
@@ -3,7 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "No se pudo encontrar el fondo \"{0}\", mostrando el fondo predeterminado.",
6
- "missingdefaulttheme": "",
6
+ "missingdefaulttheme": "No se pudo cargar el tema predeterminado.",
7
7
  "missinglayers": "No se pudieron encontrar las siguientes capas: {0}.",
8
8
  "missingpermalink": "El enlace permanente o marcador especificado es inválido o ha expirado.",
9
9
  "missingprojection": "No se pudo cargar el tema \"{0}\": la proyección {1} no está definida.",
@@ -24,11 +24,11 @@
24
24
  "MapExport3D": "Exportar mapa",
25
25
  "MapFilter": "Filtro de mapa",
26
26
  "MapLight3D": "Luz y sombras",
27
- "ObjectList": "",
27
+ "ObjectList": "Lista de objetos",
28
28
  "Print": "Imprimir",
29
29
  "Reports": "Informes",
30
30
  "Settings": "Opciones",
31
- "Settings3D": "",
31
+ "Settings3D": "Configuración 3D",
32
32
  "Share": "Compartir enlace",
33
33
  "ThemeSwitcher": "Tema",
34
34
  "AttributeTable": "Tabla de Atributos",
@@ -112,8 +112,8 @@
112
112
  "compare3d": {
113
113
  "clipplane": "Plano de recorte",
114
114
  "compare_objects": "Comparar objetos",
115
- "info_message": "",
116
- "modify": "",
115
+ "info_message": "Comparación de objetos activa",
116
+ "modify": "Modificar",
117
117
  "toggleall": "Alternar todo"
118
118
  },
119
119
  "cookiepopup": {
@@ -161,22 +161,22 @@
161
161
  "wedge": "Cuña"
162
162
  },
163
163
  "editdataset3d": {
164
- "moveobj": "",
165
- "zoomto": ""
164
+ "moveobj": "Mover objeto a la vista",
165
+ "zoomto": "Zoom al objeto"
166
166
  },
167
167
  "editing": {
168
168
  "add": "Añadir",
169
169
  "attrtable": "Tabla",
170
170
  "canceldelete": "No borrar",
171
171
  "clearpicture": "Limpiar",
172
- "clone_all": "",
173
- "clone_copy": "",
174
- "clone_defaulted": "",
175
- "clone_dontcopy": "",
176
- "clone_hidden": "",
177
- "clone_none": "",
178
- "clone_select_attrs": "",
179
- "clone_visible": "",
172
+ "clone_all": "Todos",
173
+ "clone_copy": "Copiar seleccionados",
174
+ "clone_defaulted": "(valor por defecto)",
175
+ "clone_dontcopy": "No copiar",
176
+ "clone_hidden": "(oculto)",
177
+ "clone_none": "Ninguno",
178
+ "clone_select_attrs": "Seleccionar atributos a copiar:",
179
+ "clone_visible": "Visibles sin valor por defecto",
180
180
  "commit": "Confirmar",
181
181
  "commitfailed": "Fallo al guardar cambios",
182
182
  "contraintviolation": "Violación de restricción",
@@ -197,15 +197,15 @@
197
197
  "reallydelete": "Borrar",
198
198
  "relationcommitfailed": "Algunos valores de las relaciones no han podido guardarse, verifique los tooltips de los iconos para más detalles",
199
199
  "select": "Seleccionar",
200
- "selectlayer": "",
200
+ "selectlayer": "Seleccionar capa...",
201
201
  "takepicture": "Tomar fotografía",
202
202
  "unsavedchanged": "Hay cambios sin guardar. Quieres salir de la página sin guardar?"
203
203
  },
204
204
  "featureattributes": {
205
- "name": "",
206
- "nofeatureormultiple": "",
207
- "value": "",
208
- "windowtitle": ""
205
+ "name": "Nombre",
206
+ "nofeatureormultiple": "Sin elemento activo o múltiples elementos activos",
207
+ "value": "Valor ",
208
+ "windowtitle": "Atributos del elemento"
209
209
  },
210
210
  "featureform": {
211
211
  "feature": "Elemento",
@@ -239,7 +239,7 @@
239
239
  },
240
240
  "heightprofile": {
241
241
  "asl": "a.s.l.",
242
- "dhmdefaultname": "",
242
+ "dhmdefaultname": "Conjunto de datos",
243
243
  "distance": "Distancia",
244
244
  "drawnodes": "Dibujar nodos",
245
245
  "error": "No se pudo calcular el perfil de altura",
@@ -259,8 +259,8 @@
259
259
  "identify": {
260
260
  "aggregatedreport": "Informe agregado",
261
261
  "clipboard": "Copiar al portapapeles",
262
- "compare": "",
263
- "comparing": "",
262
+ "compare": "Comparar con los objetos seleccionados",
263
+ "comparing": "Comparando {0} elementos",
264
264
  "download": "Descargar",
265
265
  "export": "Exportar",
266
266
  "featureReport": "Informe del elemento",
@@ -271,7 +271,7 @@
271
271
  "noresults": "Sin información disponible sobre el punto seleccionado",
272
272
  "querying": "Consultando...",
273
273
  "reportfail": "No se pudo generar el informe",
274
- "results": "",
274
+ "results": "Resultados",
275
275
  "selectreport": "Seleccionar informe...",
276
276
  "title": "Información del elemento"
277
277
  },
@@ -297,7 +297,7 @@
297
297
  "shpreprojectionerror": "La geometría del Shapefile no se pudo reproyectar y puede estar desplazada.",
298
298
  "supportedformats": "Formatos soportados: KML, GeoJSON, GeoPDF, SHP (en zip)",
299
299
  "unknownproj": "El GeoPDF seleccionado utiliza una proyección desconocida: {0}.",
300
- "unsupportedfile": "",
300
+ "unsupportedfile": "El formato de archivo seleccionado no es compatible",
301
301
  "url": "URL",
302
302
  "urlplaceholder": "Ingrese dirección URL o WMS, WMTS, WFS..."
303
303
  },
@@ -362,8 +362,8 @@
362
362
  }
363
363
  },
364
364
  "locationrecorder": {
365
- "record": "",
366
- "stop": ""
365
+ "record": "Registrar",
366
+ "stop": "Parar"
367
367
  },
368
368
  "map": {
369
369
  "loading": "Cargando...",
@@ -456,7 +456,7 @@
456
456
  "angle": "Ángulo",
457
457
  "featureunsupported": "Entrada numérica no disponible para esta geometría",
458
458
  "height": "Altura",
459
- "nofeatureormultiple": "",
459
+ "nofeatureormultiple": "Sin elemento activo o múltiples elementos activos",
460
460
  "side": "Lado",
461
461
  "width": "Ancho",
462
462
  "windowtitle": "Entrada numérica"
@@ -501,7 +501,7 @@
501
501
  "loading": "Cargando formulario..."
502
502
  },
503
503
  "redlining": {
504
- "attributes": "",
504
+ "attributes": "Atributos",
505
505
  "buffer": "Bufer",
506
506
  "buffercompute": "Computar",
507
507
  "bufferdistance": "Distancia",
@@ -510,7 +510,7 @@
510
510
  "bufferselectfeature": "Seleccione un elemento para almacenar en bufer",
511
511
  "circle": "Círculo",
512
512
  "clone": "Clonar",
513
- "ctrlhint": "",
513
+ "ctrlhint": "Abrir con Ctrl+Click",
514
514
  "delete": "Eliminar",
515
515
  "draw": "Dibujar",
516
516
  "edit": "Editar",
@@ -542,7 +542,7 @@
542
542
  },
543
543
  "routing": {
544
544
  "add": "Añadir punto",
545
- "addlayer": "",
545
+ "addlayer": "Agregar capa",
546
546
  "addviapoint": "Pasar por aquí",
547
547
  "arriveat": "Llegar a",
548
548
  "clear": "Limpiar",
@@ -602,7 +602,7 @@
602
602
  "providerselection": "Proveedores de búsqueda",
603
603
  "recent": "Búsquedas recientes",
604
604
  "search": "Buscar",
605
- "tasks": "",
605
+ "tasks": "Tareas",
606
606
  "themelayers": "Capas del tema",
607
607
  "themes": "Temas",
608
608
  "unknownmore": "Más resultados"
@@ -630,7 +630,7 @@
630
630
  "themes": "Temas"
631
631
  },
632
632
  "settings3d": {
633
- "quality": ""
633
+ "quality": "Calidad"
634
634
  },
635
635
  "share": {
636
636
  "QRCodeLinkTitle": "Código QR",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Ajustar a los vértices"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Agregar de todas formas",
653
654
  "addlayer": "Agregar capa",
654
655
  "addlayerstotheme": "Agregar capas al mapa actual",
655
656
  "addselectedlayers": "Agregar capa(s) seleccionada(s)",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Lisää taso",
654
655
  "addlayerstotheme": "Lisää tasoja nykyiseen karttaan",
655
656
  "addselectedlayers": "Lisää valitut tasot",
@@ -456,7 +456,7 @@
456
456
  "angle": "Angle",
457
457
  "featureunsupported": "Entrée numérique non disponible pour cette géométrie",
458
458
  "height": "Hauteur",
459
- "nofeatureormultiple": "",
459
+ "nofeatureormultiple": "Aucun ou plusieurs objets actifs",
460
460
  "side": "Côté",
461
461
  "width": "Largeur",
462
462
  "windowtitle": "Entrée numérique"
@@ -650,6 +650,7 @@
650
650
  "vertex": "Snapping aux sommets"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Ajouter quand même",
653
654
  "addlayer": "Ajouter la couche",
654
655
  "addlayerstotheme": "Ajouter des couches à la carte",
655
656
  "addselectedlayers": "Ajouter les couches sélectionnées",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Snap ai vertici"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "Aggiungi comunque",
653
654
  "addlayer": "Aggiungi layer",
654
655
  "addlayerstotheme": "Aggiungi layer alla mappa corrente",
655
656
  "addselectedlayers": "Aggiungi i layer selezionati",