geonetwork-ui 2.7.0-dev.21bdf506c → 2.7.0-dev.228db3e1a
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/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +8 -4
- package/esm2022/libs/api/repository/src/index.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +20 -6
- package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +79 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -2
- package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
- package/esm2022/libs/util/shared/src/index.mjs +2 -2
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -2
- package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
- package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
- package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
- package/esm2022/translations/de.json +59 -20
- package/esm2022/translations/en.json +60 -21
- package/esm2022/translations/es.json +46 -7
- package/esm2022/translations/fr.json +65 -26
- package/esm2022/translations/it.json +59 -20
- package/esm2022/translations/nl.json +46 -7
- package/esm2022/translations/pt.json +46 -7
- package/esm2022/translations/sk.json +50 -11
- package/fesm2022/geonetwork-ui.mjs +3216 -2921
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/index.d.ts +1 -1
- package/libs/api/repository/src/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
- package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +28 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +1 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -1
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record/index.d.ts +3 -0
- package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
- package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
- package/package.json +11 -10
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +7 -3
- package/src/libs/api/repository/src/index.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +21 -8
- package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +20 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +85 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +3 -1
- package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
- package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
- package/src/libs/util/shared/src/index.ts +1 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +2 -1
- package/src/libs/util/shared/src/lib/record/index.ts +2 -0
- package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
- package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
- package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- package/translations/de.json +59 -20
- package/translations/en.json +60 -21
- package/translations/es.json +46 -7
- package/translations/fr.json +65 -26
- package/translations/it.json +59 -20
- package/translations/nl.json +46 -7
- package/translations/pt.json +46 -7
- package/translations/sk.json +50 -11
- package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
- package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
- package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
- package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
- package/libs/util/app-config/src/lib/constants.d.ts +0 -2
- package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
- package/libs/util/shared/src/lib/record.util.d.ts +0 -3
- package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
- package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
<div
|
|
2
2
|
class="flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300"
|
|
3
|
+
*ngIf="
|
|
4
|
+
(isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1
|
|
5
|
+
"
|
|
3
6
|
>
|
|
4
7
|
<div
|
|
5
8
|
class="relative shrink-0"
|
|
@@ -17,7 +20,10 @@
|
|
|
17
20
|
name="iconoirSearch"
|
|
18
21
|
></ng-icon>
|
|
19
22
|
</div>
|
|
20
|
-
<div
|
|
23
|
+
<div
|
|
24
|
+
*ngIf="(isMobile$ | async) === false"
|
|
25
|
+
class="text-sm px-1 ml-auto inline"
|
|
26
|
+
>
|
|
21
27
|
<ng-container *ngIf="featureCatalog?.featureTypes?.length > 1">
|
|
22
28
|
<span
|
|
23
29
|
class="text-sm font-medium text-gray-900"
|
package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { DatasetFeatureCatalog } from '../../../../../../libs/common/domain/src/
|
|
|
6
6
|
import { FormsModule } from '@angular/forms'
|
|
7
7
|
import { of } from 'rxjs'
|
|
8
8
|
import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators'
|
|
9
|
-
import { createFuzzyFilter } from '../../../../../../libs/util/shared/src'
|
|
9
|
+
import { createFuzzyFilter, getIsMobile } from '../../../../../../libs/util/shared/src'
|
|
10
10
|
import { iconoirSearch } from '@ng-icons/iconoir'
|
|
11
11
|
|
|
12
12
|
@Component({
|
|
@@ -39,6 +39,8 @@ export class SearchFeatureCatalogComponent {
|
|
|
39
39
|
return this._featureCatalog
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
isMobile$ = getIsMobile()
|
|
43
|
+
|
|
42
44
|
@Output() filteredFeatureCatalogChange =
|
|
43
45
|
new EventEmitter<DatasetFeatureCatalog>()
|
|
44
46
|
filteredFeatureCatalog: DatasetFeatureCatalog
|
|
@@ -231,6 +231,7 @@ export function loadAppConfig() {
|
|
|
231
231
|
'filter_geometry_url',
|
|
232
232
|
'search_preset',
|
|
233
233
|
'advanced_filters',
|
|
234
|
+
'limit',
|
|
234
235
|
],
|
|
235
236
|
warnings,
|
|
236
237
|
errors
|
|
@@ -257,6 +258,7 @@ export function loadAppConfig() {
|
|
|
257
258
|
filters: param.filters,
|
|
258
259
|
})),
|
|
259
260
|
ADVANCED_FILTERS: parsedSearchSection.advanced_filters,
|
|
261
|
+
LIMIT: parsedSearchSection.limit,
|
|
260
262
|
} as SearchConfig)
|
|
261
263
|
|
|
262
264
|
const parsedMetadataQualitySection = parseConfigSection(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toLang2 } from '../../../../../libs/util/i18n/src'
|
|
2
2
|
|
|
3
3
|
const flatten = (
|
|
4
4
|
base: string,
|
|
@@ -129,13 +129,10 @@ export function checkMetadataLanguage(
|
|
|
129
129
|
parsedConfigSection: any,
|
|
130
130
|
outWarnings: string[]
|
|
131
131
|
) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
parsedConfigSection.metadata_language.toLowerCase()
|
|
135
|
-
) === -1
|
|
136
|
-
) {
|
|
132
|
+
const lang2 = toLang2(parsedConfigSection.metadata_language.toLowerCase())
|
|
133
|
+
if (lang2?.length !== 2) {
|
|
137
134
|
outWarnings.push(
|
|
138
|
-
`In the [global] section: metadata_language = "${parsedConfigSection.metadata_language}" is not
|
|
135
|
+
`In the [global] section: metadata_language = "${parsedConfigSection.metadata_language}" is not a recognized ISO 639 language code`
|
|
139
136
|
)
|
|
140
137
|
}
|
|
141
138
|
return parsedConfigSection
|
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Taken from https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
|
|
5
|
+
* Note: some languages have multiple 3-char codes, like 'fre' and 'fra'; in that case, the one to be used
|
|
6
|
+
* in priority is the one defined last
|
|
7
|
+
*/
|
|
3
8
|
const LANG_3_TO_2_MAPPER = {
|
|
4
9
|
eng: 'en',
|
|
10
|
+
nld: 'nl', // duplicate for "dut"
|
|
5
11
|
dut: 'nl',
|
|
12
|
+
fra: 'fr', // duplicate for "fre"
|
|
6
13
|
fre: 'fr',
|
|
14
|
+
deu: 'de', // duplicate for "ger"
|
|
7
15
|
ger: 'de',
|
|
8
16
|
kor: 'ko',
|
|
9
17
|
spa: 'es',
|
|
18
|
+
ces: 'cs', // duplicate for "cze"
|
|
10
19
|
cze: 'cs',
|
|
11
20
|
cat: 'ca',
|
|
12
21
|
fin: 'fi',
|
|
22
|
+
isl: 'is', // duplicate for "ice"
|
|
13
23
|
ice: 'is',
|
|
14
24
|
ita: 'it',
|
|
15
25
|
por: 'pt',
|
|
16
26
|
rus: 'ru',
|
|
27
|
+
zho: 'zh', // duplicate for "chi"
|
|
17
28
|
chi: 'zh',
|
|
29
|
+
slk: 'sk', // duplicate for "slo"
|
|
18
30
|
slo: 'sk',
|
|
19
31
|
roh: 'rm',
|
|
20
32
|
ara: 'ar',
|
|
@@ -25,10 +37,12 @@ const LANG_3_TO_2_MAPPER = {
|
|
|
25
37
|
tur: 'tr',
|
|
26
38
|
arm: 'hy',
|
|
27
39
|
aze: 'az',
|
|
40
|
+
kat: 'ka', // duplicate for "geo"
|
|
28
41
|
geo: 'ka',
|
|
29
42
|
ukr: 'uk',
|
|
43
|
+
cym: 'cy', // duplicate for "wel"
|
|
30
44
|
wel: 'cy',
|
|
31
|
-
}
|
|
45
|
+
} as const
|
|
32
46
|
|
|
33
47
|
export const LANGUAGE_NAMES = {
|
|
34
48
|
en: 'English',
|
|
@@ -58,26 +72,63 @@ export const LANGUAGE_NAMES = {
|
|
|
58
72
|
ka: 'ქართული',
|
|
59
73
|
uk: 'українська',
|
|
60
74
|
wel: 'Cymraeg',
|
|
61
|
-
}
|
|
75
|
+
} as const
|
|
76
|
+
|
|
77
|
+
export type LanguageCode3 = keyof typeof LANG_3_TO_2_MAPPER
|
|
78
|
+
export type LanguageCode2 = (typeof LANG_3_TO_2_MAPPER)[LanguageCode3]
|
|
62
79
|
|
|
63
80
|
export const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce(
|
|
64
81
|
(mapperObject, langEntry) => {
|
|
65
82
|
return { ...mapperObject, [langEntry[1]]: langEntry[0] }
|
|
66
83
|
},
|
|
67
84
|
{}
|
|
68
|
-
)
|
|
85
|
+
) as Record<LanguageCode2, LanguageCode3>
|
|
69
86
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
87
|
+
/**
|
|
88
|
+
* This can be:
|
|
89
|
+
* - an ISO 639-2 language code in 3 characters (e.g. 'eng', 'fre', 'ger')
|
|
90
|
+
* - an ISO 639-1 language code in 2 characters (e.g. 'en', 'fr', 'de')
|
|
91
|
+
* - a 2-character language code with locale (e.g. 'fr_FR', 'fr_CA')
|
|
92
|
+
*/
|
|
93
|
+
export type LanguageCodeLike = LanguageCode2 | LanguageCode3 | string
|
|
73
94
|
|
|
74
|
-
|
|
75
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Converts a language code in any format to the ISO 639-2 format (3 characters)
|
|
97
|
+
* Returns the given string if the corresponding language code could not be recognized
|
|
98
|
+
*/
|
|
99
|
+
export function toLang3(lang: LanguageCodeLike): LanguageCode3 | string {
|
|
100
|
+
if (!lang) {
|
|
101
|
+
// also handle falsy values just in case
|
|
102
|
+
return lang
|
|
103
|
+
}
|
|
104
|
+
if (lang.length === 3) {
|
|
105
|
+
return LANG_2_TO_3_MAPPER[LANG_3_TO_2_MAPPER[lang.toLowerCase()]] ?? lang
|
|
106
|
+
}
|
|
107
|
+
const lang2 = lang.toLowerCase().substring(0, 2)
|
|
108
|
+
return LANG_2_TO_3_MAPPER[lang2] ?? lang
|
|
76
109
|
}
|
|
77
110
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Converts a language code in any format to the ISO 639-1 format (2 characters)
|
|
113
|
+
* Returns the given string if the corresponding language code could not be recognized
|
|
114
|
+
*/
|
|
115
|
+
export function toLang2(lang: LanguageCodeLike): LanguageCode2 | string {
|
|
116
|
+
if (!lang) {
|
|
117
|
+
// also handle falsy values just in case
|
|
118
|
+
return lang
|
|
119
|
+
}
|
|
120
|
+
if (lang.length === 3) {
|
|
121
|
+
return LANG_3_TO_2_MAPPER[lang.toLowerCase()] ?? lang
|
|
122
|
+
}
|
|
123
|
+
const lang2 = lang.toLowerCase().substring(0, 2)
|
|
124
|
+
if (lang2 in LANG_2_TO_3_MAPPER) {
|
|
125
|
+
return lang2
|
|
126
|
+
}
|
|
127
|
+
if (lang.match(/[a-z]{2}_[A-Z]{2}/)) {
|
|
128
|
+
// remove locale code even if the language code is not known
|
|
129
|
+
return lang2
|
|
130
|
+
}
|
|
131
|
+
return lang
|
|
81
132
|
}
|
|
82
133
|
|
|
83
134
|
marker('language.en')
|
|
@@ -23,8 +23,8 @@ export const FORMATS = {
|
|
|
23
23
|
excel: {
|
|
24
24
|
extensions: [
|
|
25
25
|
'excel',
|
|
26
|
-
'xls',
|
|
27
26
|
'xlsx',
|
|
27
|
+
'xls',
|
|
28
28
|
'ms-excel',
|
|
29
29
|
'openxmlformats-officedocument',
|
|
30
30
|
],
|
|
@@ -190,6 +190,7 @@ export function isFormatInQueryParam(
|
|
|
190
190
|
alias: string
|
|
191
191
|
): boolean {
|
|
192
192
|
const queryParams = link.url.searchParams
|
|
193
|
+
if (!queryParams) return false
|
|
193
194
|
for (const [key, value] of queryParams.entries()) {
|
|
194
195
|
if (key === 'format' || key === 'f') {
|
|
195
196
|
return value === alias
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CatalogRecord,
|
|
3
|
+
RecordKind,
|
|
4
|
+
} from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
5
|
+
|
|
6
|
+
type TValidatorMapper = {
|
|
7
|
+
[key: string]: (metadata: Partial<CatalogRecord>) => boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ValidatorMapper: TValidatorMapper = {
|
|
11
|
+
title: (record) => !!record?.title,
|
|
12
|
+
abstract: (record) => !!record?.abstract,
|
|
13
|
+
keywords: (record) => (record?.keywords?.length ?? 0) > 0,
|
|
14
|
+
legalConstraints: (record) =>
|
|
15
|
+
!!(
|
|
16
|
+
record?.legalConstraints?.length &&
|
|
17
|
+
record.legalConstraints.some((c) => c?.text?.trim().length > 0)
|
|
18
|
+
),
|
|
19
|
+
contacts: (record) =>
|
|
20
|
+
!!record?.contacts?.[0]?.email &&
|
|
21
|
+
record.contacts[0].email !== 'missing@missing.com',
|
|
22
|
+
updateFrequency: (record) =>
|
|
23
|
+
!!record?.updateFrequency && record.updateFrequency !== 'unknown',
|
|
24
|
+
topics: (record) => (record?.topics?.length ?? 0) > 0,
|
|
25
|
+
organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
|
|
26
|
+
source: (record) => !!record?.extras?.sourcesIdentifiers,
|
|
27
|
+
} as const
|
|
28
|
+
|
|
29
|
+
export type ValidatorMapperKeys = keyof typeof ValidatorMapper & string
|
|
30
|
+
|
|
31
|
+
export function getAllKeysValidator() {
|
|
32
|
+
return Object.keys(ValidatorMapper)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function getMappersFromKind(kind: RecordKind) {
|
|
36
|
+
let kindKeys = <ValidatorMapperKeys[]>[]
|
|
37
|
+
const commonsKeys = <ValidatorMapperKeys[]>[
|
|
38
|
+
'title',
|
|
39
|
+
'abstract',
|
|
40
|
+
'keywords',
|
|
41
|
+
'legalConstraints',
|
|
42
|
+
'contacts',
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
switch (kind) {
|
|
46
|
+
case 'reuse':
|
|
47
|
+
kindKeys = ['topics', 'organisation', 'source']
|
|
48
|
+
break
|
|
49
|
+
case 'service':
|
|
50
|
+
kindKeys = []
|
|
51
|
+
break
|
|
52
|
+
case 'dataset':
|
|
53
|
+
default:
|
|
54
|
+
kindKeys = ['updateFrequency', 'topics', 'organisation']
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return [...commonsKeys, ...kindKeys]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function getQualityValidators(
|
|
61
|
+
record: Partial<CatalogRecord>,
|
|
62
|
+
propsToValidate: ValidatorMapperKeys[]
|
|
63
|
+
) {
|
|
64
|
+
const filteredProps = propsToValidate.filter((prop) =>
|
|
65
|
+
getMappersFromKind(record.kind).includes(prop)
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
return filteredProps.map((name) => ({
|
|
69
|
+
name,
|
|
70
|
+
validator: () => ValidatorMapper[name](record),
|
|
71
|
+
}))
|
|
72
|
+
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { Feature, FeatureCollection, Geometry } from 'geojson'
|
|
1
|
+
import type { Feature, FeatureCollection, Geometry, Position } from 'geojson'
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @returns The geometry if available, otherwise null.
|
|
5
|
+
*/
|
|
3
6
|
export function getGeometryFromGeoJSON(
|
|
4
7
|
data: FeatureCollection | Feature | Geometry
|
|
5
|
-
): Geometry {
|
|
8
|
+
): Geometry | null {
|
|
6
9
|
if (data.type === 'FeatureCollection') {
|
|
7
10
|
return data?.features?.[0]?.geometry || null
|
|
8
11
|
}
|
|
@@ -24,3 +27,70 @@ export function getGeometryFromGeoJSON(
|
|
|
24
27
|
}
|
|
25
28
|
return null
|
|
26
29
|
}
|
|
30
|
+
|
|
31
|
+
// FIXME: this type should be more generic across the project
|
|
32
|
+
export type BoundingBox = [number, number, number, number]
|
|
33
|
+
|
|
34
|
+
export function getGeometryBoundingBox(geometry: Geometry): BoundingBox {
|
|
35
|
+
// use the bounding box if specified in the GeoJSON object
|
|
36
|
+
if (geometry.bbox) {
|
|
37
|
+
return geometry.bbox.length > 4
|
|
38
|
+
? [geometry.bbox[0], geometry.bbox[1], geometry.bbox[3], geometry.bbox[4]]
|
|
39
|
+
: (geometry.bbox as BoundingBox)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const coordinatesReducer = (prev: BoundingBox, coords: Position) =>
|
|
43
|
+
[
|
|
44
|
+
Math.min(prev[0], coords[0]),
|
|
45
|
+
Math.min(prev[1], coords[1]),
|
|
46
|
+
Math.max(prev[2], coords[0]),
|
|
47
|
+
Math.max(prev[3], coords[1]),
|
|
48
|
+
] as BoundingBox
|
|
49
|
+
const coordinatesArrayReducer = (
|
|
50
|
+
prev: BoundingBox,
|
|
51
|
+
coordsArray: Position[]
|
|
52
|
+
) => {
|
|
53
|
+
const bbox = coordsArray.reduce(coordinatesReducer, emptyExtent)
|
|
54
|
+
return [
|
|
55
|
+
Math.min(prev[0], bbox[0]),
|
|
56
|
+
Math.min(prev[1], bbox[1]),
|
|
57
|
+
Math.max(prev[2], bbox[2]),
|
|
58
|
+
Math.max(prev[3], bbox[3]),
|
|
59
|
+
] as BoundingBox
|
|
60
|
+
}
|
|
61
|
+
const emptyExtent = [Infinity, Infinity, -Infinity, -Infinity] as BoundingBox
|
|
62
|
+
|
|
63
|
+
switch (geometry.type) {
|
|
64
|
+
case 'MultiPolygon':
|
|
65
|
+
return geometry.coordinates.reduce((prev, polygonCoords) => {
|
|
66
|
+
const bbox = polygonCoords.reduce(coordinatesArrayReducer, emptyExtent)
|
|
67
|
+
return [
|
|
68
|
+
Math.min(prev[0], bbox[0]),
|
|
69
|
+
Math.min(prev[1], bbox[1]),
|
|
70
|
+
Math.max(prev[2], bbox[2]),
|
|
71
|
+
Math.max(prev[3], bbox[3]),
|
|
72
|
+
] as BoundingBox
|
|
73
|
+
}, emptyExtent)
|
|
74
|
+
case 'GeometryCollection':
|
|
75
|
+
return geometry.geometries.reduce((prev, geom) => {
|
|
76
|
+
const bbox = getGeometryBoundingBox(geom)
|
|
77
|
+
return [
|
|
78
|
+
Math.min(prev[0], bbox[0]),
|
|
79
|
+
Math.min(prev[1], bbox[1]),
|
|
80
|
+
Math.max(prev[2], bbox[2]),
|
|
81
|
+
Math.max(prev[3], bbox[3]),
|
|
82
|
+
] as BoundingBox
|
|
83
|
+
}, emptyExtent)
|
|
84
|
+
case 'Polygon':
|
|
85
|
+
case 'MultiLineString':
|
|
86
|
+
return geometry.coordinates.reduce(coordinatesArrayReducer, emptyExtent)
|
|
87
|
+
case 'LineString':
|
|
88
|
+
case 'MultiPoint':
|
|
89
|
+
return geometry.coordinates.reduce<BoundingBox>(
|
|
90
|
+
coordinatesReducer,
|
|
91
|
+
emptyExtent
|
|
92
|
+
)
|
|
93
|
+
case 'Point':
|
|
94
|
+
return coordinatesReducer(emptyExtent, geometry.coordinates)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { fromEvent, startWith, map, shareReplay } from 'rxjs'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This returns true when the screen size is under 768px, which is the mobile threshold.
|
|
5
|
+
*/
|
|
6
|
+
const MOBILE_MAX_WIDTH = 768
|
|
7
|
+
|
|
8
|
+
export function getIsMobile() {
|
|
9
|
+
return fromEvent(window, 'resize').pipe(
|
|
10
|
+
startWith(window.innerWidth),
|
|
11
|
+
map(() => window.innerWidth < MOBILE_MAX_WIDTH),
|
|
12
|
+
shareReplay({ bufferSize: 1, refCount: true })
|
|
13
|
+
)
|
|
14
|
+
}
|
package/translations/de.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"Add Layer As": "",
|
|
4
4
|
"Enter to search": "",
|
|
5
5
|
"button.login": "",
|
|
6
|
-
"catalog.figures.datasets": "{count, plural, =0{
|
|
6
|
+
"catalog.figures.datasets": "{count, plural, =0{Ressource} one{Ressource} other{Ressourcen}}",
|
|
7
7
|
"catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
|
|
8
8
|
"chart.aggregation.average": "Durchschnitt",
|
|
9
9
|
"chart.aggregation.count": "Anzahl",
|
|
@@ -86,7 +86,9 @@
|
|
|
86
86
|
"domain.record.status.completed": "Abgeschlossen",
|
|
87
87
|
"domain.record.status.deprecated": "Veraltet",
|
|
88
88
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
89
|
+
"domain.record.status.planned": "",
|
|
89
90
|
"domain.record.status.removed": "Entfernt",
|
|
91
|
+
"domain.record.status.required": "",
|
|
90
92
|
"domain.record.status.under_development": "In Erstellung",
|
|
91
93
|
"domain.record.updateFrequency.annually": "Daten werden jedes Jahr aktualisiert",
|
|
92
94
|
"domain.record.updateFrequency.asNeeded": "Daten werden nach Bedarf aktualisiert",
|
|
@@ -142,6 +144,7 @@
|
|
|
142
144
|
"editor.record.form.draft.updateAlert": "",
|
|
143
145
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
144
146
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
147
|
+
"editor.record.form.field.contacts": "Ansprechpartner - Email",
|
|
145
148
|
"editor.record.form.field.contacts.noContact": "",
|
|
146
149
|
"editor.record.form.field.contacts.placeholder": "",
|
|
147
150
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -166,6 +169,7 @@
|
|
|
166
169
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
167
170
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
168
171
|
"editor.record.form.field.onlineResources": "",
|
|
172
|
+
"editor.record.form.field.organisation": "Ansprechpartner - Organisation",
|
|
169
173
|
"editor.record.form.field.otherConstraints": "Allgemeine Einschränkung",
|
|
170
174
|
"editor.record.form.field.overviews": "",
|
|
171
175
|
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
@@ -177,8 +181,29 @@
|
|
|
177
181
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
178
182
|
"editor.record.form.field.title": "Metadaten-Titel",
|
|
179
183
|
"editor.record.form.field.title.placeholder": "Geben Sie einen Titel ein",
|
|
184
|
+
"editor.record.form.field.topics": "Kategorien",
|
|
180
185
|
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
181
186
|
"editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
|
|
187
|
+
"editor.record.form.inspire.biota": "",
|
|
188
|
+
"editor.record.form.inspire.boundaries": "",
|
|
189
|
+
"editor.record.form.inspire.climatology": "",
|
|
190
|
+
"editor.record.form.inspire.economy": "",
|
|
191
|
+
"editor.record.form.inspire.elevation": "",
|
|
192
|
+
"editor.record.form.inspire.environnement": "",
|
|
193
|
+
"editor.record.form.inspire.farming": "",
|
|
194
|
+
"editor.record.form.inspire.geoscientific": "",
|
|
195
|
+
"editor.record.form.inspire.health": "",
|
|
196
|
+
"editor.record.form.inspire.imagery": "",
|
|
197
|
+
"editor.record.form.inspire.intelligence": "",
|
|
198
|
+
"editor.record.form.inspire.location": "",
|
|
199
|
+
"editor.record.form.inspire.oceans": "",
|
|
200
|
+
"editor.record.form.inspire.placeholder": "",
|
|
201
|
+
"editor.record.form.inspire.planning": "",
|
|
202
|
+
"editor.record.form.inspire.society": "",
|
|
203
|
+
"editor.record.form.inspire.structure": "",
|
|
204
|
+
"editor.record.form.inspire.transportation": "",
|
|
205
|
+
"editor.record.form.inspire.utilities": "",
|
|
206
|
+
"editor.record.form.inspire.waters": "",
|
|
182
207
|
"editor.record.form.keywords.place.placeholder": "",
|
|
183
208
|
"editor.record.form.keywords.place.withoutExtent": "",
|
|
184
209
|
"editor.record.form.keywords.placeholder": "",
|
|
@@ -191,6 +216,8 @@
|
|
|
191
216
|
"editor.record.form.license.odc-by": "",
|
|
192
217
|
"editor.record.form.license.pddl": "",
|
|
193
218
|
"editor.record.form.license.unknown": "",
|
|
219
|
+
"editor.record.form.metadataQuality.open": "Öffnen Sie das Panel zur Metadatenqualität",
|
|
220
|
+
"editor.record.form.metadataQuality.title": "Vollständigkeit",
|
|
194
221
|
"editor.record.form.multilingual.activate": "",
|
|
195
222
|
"editor.record.form.multilingual.default": "",
|
|
196
223
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -212,6 +239,8 @@
|
|
|
212
239
|
"editor.record.form.section.dataManagers.description": "",
|
|
213
240
|
"editor.record.form.section.dataManagers.label": "",
|
|
214
241
|
"editor.record.form.section.geographicalCoverage.label": "",
|
|
242
|
+
"editor.record.form.section.inspire.description": "",
|
|
243
|
+
"editor.record.form.section.inspire.label": "",
|
|
215
244
|
"editor.record.form.section.metadataPointOfContact.description": "",
|
|
216
245
|
"editor.record.form.section.metadataPointOfContact.label": "",
|
|
217
246
|
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
@@ -360,10 +389,10 @@
|
|
|
360
389
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
361
390
|
"organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
|
|
362
391
|
"organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
|
|
363
|
-
"organization.details.lastPublishedDatasets": "",
|
|
392
|
+
"organization.details.lastPublishedDatasets": "Zuletzt veröffentlichte Ressourcen",
|
|
364
393
|
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
365
394
|
"organization.details.mailContact": "",
|
|
366
|
-
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
395
|
+
"organization.header.recordCount": "{count, plural, =0{Veröffentlichung} one{Veröffentlichung} other{Veröffentlichungen}}",
|
|
367
396
|
"pagination.nextPage": "Nächste Seite",
|
|
368
397
|
"pagination.page": "Seite",
|
|
369
398
|
"pagination.pageOf": "von",
|
|
@@ -383,6 +412,16 @@
|
|
|
383
412
|
"record.kind.service": "",
|
|
384
413
|
"record.metadata.about": "Beschreibung",
|
|
385
414
|
"record.metadata.api": "API",
|
|
415
|
+
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
416
|
+
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
417
|
+
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
418
|
+
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
419
|
+
"record.metadata.api.accessServiceProtocol.other": "",
|
|
420
|
+
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
421
|
+
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
422
|
+
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
423
|
+
"record.metadata.api.accessServiceProtocol.wmts": "",
|
|
424
|
+
"record.metadata.api.accessServiceProtocol.wps": "",
|
|
386
425
|
"record.metadata.api.form.closeButton": "Schließen",
|
|
387
426
|
"record.metadata.api.form.closeForm": "Formular schließen",
|
|
388
427
|
"record.metadata.api.form.create": "Ihre Anfrage erstellen",
|
|
@@ -444,12 +483,12 @@
|
|
|
444
483
|
"record.metadata.publication": "Veröffentlichungsdatum",
|
|
445
484
|
"record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
|
|
446
485
|
"record.metadata.quality": "Metadatenqualität",
|
|
486
|
+
"record.metadata.quality.abstract.failed": "Beschreibung nicht angegeben",
|
|
487
|
+
"record.metadata.quality.abstract.success": "Beschreibung angegeben",
|
|
447
488
|
"record.metadata.quality.capabilities.failed": "",
|
|
448
|
-
"record.metadata.quality.capabilities.success": "",
|
|
449
|
-
"record.metadata.quality.
|
|
450
|
-
"record.metadata.quality.
|
|
451
|
-
"record.metadata.quality.description.failed": "Beschreibung nicht angegeben",
|
|
452
|
-
"record.metadata.quality.description.success": "Beschreibung angegeben",
|
|
489
|
+
"record.metadata.quality.capabilities.success": "Kontakt angegeben",
|
|
490
|
+
"record.metadata.quality.contacts.failed": "Kontakt nicht angegeben",
|
|
491
|
+
"record.metadata.quality.contacts.success": "",
|
|
453
492
|
"record.metadata.quality.details": "Details",
|
|
454
493
|
"record.metadata.quality.keywords.failed": "Schlagwörter nicht angegeben",
|
|
455
494
|
"record.metadata.quality.keywords.success": "Schlagwörter angegeben",
|
|
@@ -461,8 +500,8 @@
|
|
|
461
500
|
"record.metadata.quality.source.success": "",
|
|
462
501
|
"record.metadata.quality.title.failed": "Titel nicht angegeben",
|
|
463
502
|
"record.metadata.quality.title.success": "Titel angegeben",
|
|
464
|
-
"record.metadata.quality.
|
|
465
|
-
"record.metadata.quality.
|
|
503
|
+
"record.metadata.quality.topics.failed": "Thema nicht angegeben",
|
|
504
|
+
"record.metadata.quality.topics.success": "Thema angegeben",
|
|
466
505
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
467
506
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
468
507
|
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
@@ -493,18 +532,18 @@
|
|
|
493
532
|
"record.tab.chart": "Diagramm",
|
|
494
533
|
"record.tab.data": "Tabelle",
|
|
495
534
|
"record.tab.map": "Karte",
|
|
496
|
-
"record.was.created.time": "erstellte diesen
|
|
535
|
+
"record.was.created.time": "erstellte diesen Ressource {time}",
|
|
497
536
|
"records": "Datensätze",
|
|
498
537
|
"results.layout.selectOne": "Layout auswählen",
|
|
499
|
-
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein
|
|
538
|
+
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein Ressource.} one{1 } other{{displayed} }} {hits, plural, other{von insgesamt {hits} angezeigt.}}",
|
|
500
539
|
"results.records.hits.empty.help.html": "Vorschläge: <ul class='list-disc list-inside'><li>Versuchen Sie es mit anderen Worten</li><li>Beschränken Sie die Suchwörter</li></ul>",
|
|
501
|
-
"results.records.hits.found": "{hits, plural, =0{Keine
|
|
540
|
+
"results.records.hits.found": "{hits, plural, =0{Keine Ressource entsprechen der angegebenen Suche.} one{1 Ressource gefunden.} other{{hits} Ressourcen gefunden.}}",
|
|
502
541
|
"results.records.hits.selected": "{ amount } ausgewählt",
|
|
503
542
|
"results.showMore": "Mehr Ergebnisse anzeigen...",
|
|
504
543
|
"results.sortBy.changeDate": "",
|
|
505
544
|
"results.sortBy.dateStamp": "Neueste",
|
|
506
545
|
"results.sortBy.popularity": "Beliebtheit",
|
|
507
|
-
"results.sortBy.qualityScore": "
|
|
546
|
+
"results.sortBy.qualityScore": "Fertigstellungsanzeige",
|
|
508
547
|
"results.sortBy.relevancy": "Relevanz",
|
|
509
548
|
"reuse.metadata.access": "",
|
|
510
549
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
@@ -513,7 +552,7 @@
|
|
|
513
552
|
"search.error.organizationNotFound": "",
|
|
514
553
|
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
515
554
|
"search.error.recordHasnolink": "",
|
|
516
|
-
"search.error.recordNotFound": "
|
|
555
|
+
"search.error.recordNotFound": "Die Ressource mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
517
556
|
"search.field.any.placeholder": "Suche im katalog ...",
|
|
518
557
|
"search.field.sortBy": "Sortieren nach:",
|
|
519
558
|
"search.filter.into.feature.catalog": "",
|
|
@@ -540,10 +579,10 @@
|
|
|
540
579
|
"search.filters.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
541
580
|
"search.filters.maximize": "Erweitern",
|
|
542
581
|
"search.filters.minimize": "Minimieren",
|
|
543
|
-
"search.filters.myRecords": "Nur meine
|
|
544
|
-
"search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte
|
|
582
|
+
"search.filters.myRecords": "Nur meine Ressourcen anzeigen",
|
|
583
|
+
"search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Ressourcen angezeigt; Ressourcen, die von anderen erstellt wurden, werden nicht angezeigt.",
|
|
545
584
|
"search.filters.organization": "",
|
|
546
|
-
"search.filters.otherRecords": "
|
|
585
|
+
"search.filters.otherRecords": "Ressourcen von einer anderen Person anzeigen",
|
|
547
586
|
"search.filters.producerOrg": "",
|
|
548
587
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
549
588
|
"search.filters.publisherOrg": "",
|
|
@@ -558,8 +597,8 @@
|
|
|
558
597
|
"search.filters.summaryLabel.user": "Geändert von: ",
|
|
559
598
|
"search.filters.title": "Ergebnisse filtern",
|
|
560
599
|
"search.filters.topic": "Themen",
|
|
561
|
-
"search.filters.useSpatialFilter": "Zuerst
|
|
562
|
-
"search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden
|
|
600
|
+
"search.filters.useSpatialFilter": "Zuerst Ressourcen im Interessenbereich anzeigen",
|
|
601
|
+
"search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Ressourcen im Bereich des Katalogs zuerst angezeigt. Ressourcen außerhalb dieses Bereichs werden nicht angezeigt.",
|
|
563
602
|
"search.filters.user": "Editor",
|
|
564
603
|
"service.metadata.capabilities": "",
|
|
565
604
|
"service.metadata.capabilities.abstract": "",
|