geonetwork-ui 2.10.0-dev.fc6515c0b → 2.11.0-dev.2478042b2
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/fesm2022/geonetwork-ui.mjs +2326 -6755
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +309 -219
- package/index.d.ts.map +1 -1
- package/package.json +32 -42
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +20 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +4 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +23 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +8 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +4 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +23 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +4 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +9 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +48 -7
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.converter.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +49 -18
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.ts +13 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +11 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +21 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +52 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +24 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +77 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/association-type.mapper.ts +12 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +79 -0
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +8 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +25 -5
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +106 -56
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +37 -2
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +61 -5
- package/src/libs/common/domain/src/lib/model/search/sort-by.model.ts +1 -5
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +2 -1
- package/src/libs/common/domain/src/lib/model/user/group.model.ts +8 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -3
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +62 -0
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +5 -2
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -2
- package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +2 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -22
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +4 -1
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +26 -19
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +5 -1
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +0 -2
- package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.html +68 -0
- package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.ts +41 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +5 -14
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +3 -28
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +5 -5
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/field-focus.directive.ts +4 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.html +33 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.ts +94 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +7 -7
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +9 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +12 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +12 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +4 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +7 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +16 -12
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +6 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +3 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.css +0 -34
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +34 -16
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +17 -0
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +35 -0
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +18 -5
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +76 -19
- package/src/libs/feature/editor/src/lib/expressions.ts +380 -8
- package/src/libs/feature/editor/src/lib/fields.config.ts +359 -337
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +10 -3
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +9 -13
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +33 -0
- package/src/libs/feature/notify-reuse/src/index.ts +1 -0
- package/src/libs/feature/notify-reuse/src/lib/edit-delete-reuse-buttons/edit-delete-reuse-buttons.component.css +0 -0
- package/src/libs/feature/notify-reuse/src/lib/edit-delete-reuse-buttons/edit-delete-reuse-buttons.component.html +23 -0
- package/src/libs/feature/notify-reuse/src/lib/edit-delete-reuse-buttons/edit-delete-reuse-buttons.component.ts +114 -0
- package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.html +111 -1
- package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.ts +219 -8
- package/src/libs/feature/notify-reuse/src/lib/utils/url.ts +16 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +9 -1
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +4 -8
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +7 -16
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +1 -3
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +4 -9
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +2 -7
- package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +10 -5
- package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +1 -1
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +2 -2
- package/src/libs/ui/dataviz/src/index.ts +0 -1
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -7
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +31 -19
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +2 -2
- package/src/libs/ui/elements/src/index.ts +1 -0
- package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.html +48 -56
- package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.html +7 -3
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.html +2 -1
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +13 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +13 -3
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +43 -6
- package/src/libs/ui/elements/src/lib/keyword-badge/keyword-badge.component.html +14 -0
- package/src/libs/ui/elements/src/lib/keyword-badge/keyword-badge.component.ts +85 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +5 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +5 -8
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +4 -5
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +4 -0
- package/src/libs/ui/inputs/src/lib/badge/badge.component.html +33 -26
- package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +9 -0
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +4 -0
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +3 -3
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.css +0 -3
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +11 -7
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +56 -30
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +5 -5
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +9 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +3 -8
- package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +7 -7
- package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.ts +14 -1
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts +4 -54
- package/src/libs/ui/map/src/lib/map-utils.ts +48 -0
- package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +1 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +12 -8
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +3 -1
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +7 -1
- package/src/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.html +1 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +35 -10
- package/src/libs/util/app-config/src/lib/model.ts +3 -0
- package/src/libs/util/app-config/src/lib/parse-utils.ts +27 -0
- package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +19 -22
- package/src/libs/util/data-fetcher/src/lib/engine/duckdb.ts +185 -0
- package/src/libs/util/data-fetcher/src/lib/engine/results.ts +63 -0
- package/src/libs/util/data-fetcher/src/lib/{sql-utils.ts → engine/sql-utils.ts} +28 -13
- package/src/libs/util/data-fetcher/src/lib/model.ts +2 -1
- package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +53 -39
- package/src/libs/util/data-fetcher/src/lib/readers/base.ts +11 -0
- package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +9 -47
- package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +27 -27
- package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +5 -24
- package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +5 -49
- package/src/libs/util/data-fetcher/src/lib/readers/json.ts +5 -23
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +183 -124
- package/src/libs/util/data-fetcher/src/lib/utils.ts +0 -143
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +17 -11
- package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +2 -2
- package/src/libs/util/i18n/src/lib/i18n.providers.ts +14 -17
- package/src/libs/util/i18n/src/lib/test.translate.loader.ts +48 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +23 -1
- package/src/libs/util/shared/src/lib/services/date.service.ts +3 -3
- package/src/libs/util/shared/src/lib/utils/geojson.ts +58 -1
- package/style.css +0 -1
- package/tailwind.base.css +15 -0
- package/translations/de.json +124 -51
- package/translations/en.json +129 -56
- package/translations/es.json +97 -24
- package/translations/fr.json +126 -53
- package/translations/it.json +125 -52
- package/translations/nl.json +96 -23
- package/translations/pt.json +97 -24
- package/translations/sk.json +98 -25
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -3
- package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +0 -14
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
APP_INITIALIZER,
|
|
3
2
|
EnvironmentProviders,
|
|
3
|
+
inject,
|
|
4
4
|
makeEnvironmentProviders,
|
|
5
|
+
provideAppInitializer,
|
|
5
6
|
Provider,
|
|
6
7
|
} from '@angular/core'
|
|
7
8
|
import {
|
|
@@ -22,17 +23,16 @@ import {
|
|
|
22
23
|
} from '@angular/common/http'
|
|
23
24
|
import { I18nInterceptor } from './i18n.interceptor'
|
|
24
25
|
|
|
25
|
-
function i18nInitializerFromLocalStorageFactory(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
translate.use(storageLang || translate.getBrowserLang() || DEFAULT_LANG)
|
|
26
|
+
function i18nInitializerFromLocalStorageFactory() {
|
|
27
|
+
const translate = inject(TranslateService)
|
|
28
|
+
translate.setFallbackLang(DEFAULT_LANG)
|
|
29
|
+
let storageLang = null
|
|
30
|
+
try {
|
|
31
|
+
storageLang = localStorage.getItem(LANGUAGE_STORAGE_KEY)
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.warn(error)
|
|
35
34
|
}
|
|
35
|
+
translate.use(storageLang || translate.getBrowserLang() || DEFAULT_LANG)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export function provideI18n(
|
|
@@ -56,12 +56,9 @@ export function provideI18n(
|
|
|
56
56
|
provideTranslateService(usedConfig),
|
|
57
57
|
]
|
|
58
58
|
if (useLocalStorage) {
|
|
59
|
-
providers.push(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
deps: [TranslateService],
|
|
63
|
-
multi: true,
|
|
64
|
-
})
|
|
59
|
+
providers.push(
|
|
60
|
+
provideAppInitializer(i18nInitializerFromLocalStorageFactory)
|
|
61
|
+
)
|
|
65
62
|
}
|
|
66
63
|
|
|
67
64
|
return makeEnvironmentProviders(providers)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { inject, Injectable, InjectionToken } from '@angular/core'
|
|
2
|
+
import {
|
|
3
|
+
provideTranslateService,
|
|
4
|
+
TranslateCompiler,
|
|
5
|
+
TranslateLoader,
|
|
6
|
+
TranslationObject,
|
|
7
|
+
} from '@ngx-translate/core'
|
|
8
|
+
import { Observable, of } from 'rxjs'
|
|
9
|
+
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* This translate loader is used for testing purposes, it allows to provide translations directly in the test file without having to create JSON files
|
|
13
|
+
* Taken from https://github.com/mwootendev/ngx-translate-plugins/issues/87
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const TestTranslations = new InjectionToken<Record<string, TranslationObject>>(
|
|
17
|
+
'test-translations'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@Injectable()
|
|
21
|
+
class TestTranslateLoader implements TranslateLoader {
|
|
22
|
+
translations = inject(TestTranslations)
|
|
23
|
+
getTranslation(lang: string): Observable<TranslationObject> {
|
|
24
|
+
return of(this.translations[lang] as TranslationObject)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function provideTranslateTestingService(
|
|
29
|
+
translations: Record<string, TranslationObject>
|
|
30
|
+
) {
|
|
31
|
+
return provideTranslateService({
|
|
32
|
+
loader: [
|
|
33
|
+
{
|
|
34
|
+
provide: TestTranslations,
|
|
35
|
+
useValue: translations,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
provide: TranslateLoader,
|
|
39
|
+
useClass: TestTranslateLoader,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
fallbackLang: 'en',
|
|
43
|
+
compiler: {
|
|
44
|
+
provide: TranslateCompiler,
|
|
45
|
+
useClass: TranslateMessageFormatCompiler,
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
}
|
|
@@ -171,6 +171,28 @@ export const FORMATS = {
|
|
|
171
171
|
},
|
|
172
172
|
} as const
|
|
173
173
|
|
|
174
|
+
marker('downloads.format.csv')
|
|
175
|
+
marker('downloads.format.excel')
|
|
176
|
+
marker('downloads.format.geojson')
|
|
177
|
+
marker('downloads.format.json')
|
|
178
|
+
marker('downloads.format.shp')
|
|
179
|
+
marker('downloads.format.gml')
|
|
180
|
+
marker('downloads.format.kml')
|
|
181
|
+
marker('downloads.format.gpkg')
|
|
182
|
+
marker('downloads.format.zip')
|
|
183
|
+
marker('downloads.format.pdf')
|
|
184
|
+
marker('downloads.format.jpg')
|
|
185
|
+
marker('downloads.format.png')
|
|
186
|
+
marker('downloads.format.tiff')
|
|
187
|
+
marker('downloads.format.svg')
|
|
188
|
+
marker('downloads.format.dxf')
|
|
189
|
+
marker('downloads.format.html')
|
|
190
|
+
marker('downloads.format.xml')
|
|
191
|
+
marker('downloads.format.fgb')
|
|
192
|
+
marker('downloads.format.jsonfg')
|
|
193
|
+
marker('downloads.format.webp')
|
|
194
|
+
marker('downloads.format.postgis')
|
|
195
|
+
|
|
174
196
|
export type FileFormat = keyof typeof FORMATS
|
|
175
197
|
|
|
176
198
|
export function getFormatPriority(linkFormat: FileFormat): number {
|
|
@@ -266,7 +288,7 @@ export function checkFileFormat(
|
|
|
266
288
|
new RegExp(`[./]${format}`, 'i').test(link.name.toLowerCase())) ||
|
|
267
289
|
('url' in link &&
|
|
268
290
|
new RegExp(`[./]${format}`, 'i').test(link.url.toString())) ||
|
|
269
|
-
('name' in link &&
|
|
291
|
+
('name' in link && new RegExp(`\\b${format}\\b`, 'i').test(link.name))
|
|
270
292
|
)
|
|
271
293
|
}
|
|
272
294
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { inject, Injectable } from '@angular/core'
|
|
2
2
|
import { TranslateService } from '@ngx-translate/core'
|
|
3
3
|
import { type Locale } from 'date-fns/locale'
|
|
4
4
|
import { formatDistance } from 'date-fns/formatDistance'
|
|
@@ -30,13 +30,13 @@ export class DateService {
|
|
|
30
30
|
locale: string
|
|
31
31
|
dateObj: Date
|
|
32
32
|
} {
|
|
33
|
-
const locale = this.translateService.
|
|
33
|
+
const locale = this.translateService.getCurrentLang() || DEFAULT_LANGUAGE
|
|
34
34
|
const dateObj = this.getDateObject(date)
|
|
35
35
|
return { locale, dateObj }
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
private async getDateLocale(): Promise<Locale> {
|
|
39
|
-
const lang = this.translateService.
|
|
39
|
+
const lang = this.translateService.getCurrentLang() || DEFAULT_LANGUAGE
|
|
40
40
|
const locales = await this.dateLocales
|
|
41
41
|
return locales[lang]
|
|
42
42
|
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
Feature,
|
|
3
|
+
FeatureCollection,
|
|
4
|
+
Geometry,
|
|
5
|
+
Polygon,
|
|
6
|
+
Position,
|
|
7
|
+
} from 'geojson'
|
|
8
|
+
import type { DatasetSpatialExtent } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
2
9
|
|
|
3
10
|
/**
|
|
4
11
|
* @returns The geometry if available, otherwise null.
|
|
@@ -94,3 +101,53 @@ export function getGeometryBoundingBox(geometry: Geometry): BoundingBox {
|
|
|
94
101
|
return coordinatesReducer(emptyExtent, geometry.coordinates)
|
|
95
102
|
}
|
|
96
103
|
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Builds the closed GeoJSON Polygon matching the given bounding box.
|
|
107
|
+
*/
|
|
108
|
+
export function bboxToPolygon(bbox: BoundingBox): Polygon {
|
|
109
|
+
const [minX, minY, maxX, maxY] = bbox
|
|
110
|
+
return {
|
|
111
|
+
type: 'Polygon',
|
|
112
|
+
coordinates: [
|
|
113
|
+
[
|
|
114
|
+
[minX, minY],
|
|
115
|
+
[minX, maxY],
|
|
116
|
+
[maxX, maxY],
|
|
117
|
+
[maxX, minY],
|
|
118
|
+
[minX, minY],
|
|
119
|
+
],
|
|
120
|
+
],
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Returns the geometry carried by a spatial extent, falling back to the polygon
|
|
126
|
+
* derived from its bounding box. Returns null when the extent has neither.
|
|
127
|
+
*/
|
|
128
|
+
export function spatialExtentToGeometry(
|
|
129
|
+
extent: DatasetSpatialExtent
|
|
130
|
+
): Geometry | null {
|
|
131
|
+
if (extent.geometry) return extent.geometry
|
|
132
|
+
if (extent.bbox) return bboxToPolygon(extent.bbox)
|
|
133
|
+
return null
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Converts a list of dataset spatial extents into a GeoJSON FeatureCollection,
|
|
138
|
+
* e.g. to be used as the data source of a map layer.
|
|
139
|
+
*/
|
|
140
|
+
export function spatialExtentsToFeatureCollection(
|
|
141
|
+
extents: DatasetSpatialExtent[]
|
|
142
|
+
): FeatureCollection {
|
|
143
|
+
return {
|
|
144
|
+
type: 'FeatureCollection',
|
|
145
|
+
features: extents.reduce<Feature[]>((features, extent) => {
|
|
146
|
+
const geometry = spatialExtentToGeometry(extent)
|
|
147
|
+
if (geometry) {
|
|
148
|
+
features.push({ type: 'Feature', properties: {}, geometry })
|
|
149
|
+
}
|
|
150
|
+
return features
|
|
151
|
+
}, []),
|
|
152
|
+
}
|
|
153
|
+
}
|
package/style.css
CHANGED
package/tailwind.base.css
CHANGED
|
@@ -119,6 +119,12 @@
|
|
|
119
119
|
border-gray-100 focus:ring-4 focus:ring-gray-50;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
.gn-ui-btn-gray-light {
|
|
123
|
+
@apply gn-ui-btn text-black
|
|
124
|
+
bg-gray-50 hover:bg-gray-100 focus:bg-gray-100 active:bg-gray-200
|
|
125
|
+
border-gray-50 focus:ring-4 focus:ring-gray-100;
|
|
126
|
+
}
|
|
127
|
+
|
|
122
128
|
.gn-ui-btn-black {
|
|
123
129
|
@apply gn-ui-btn text-white
|
|
124
130
|
bg-black hover:bg-gray-950 focus:bg-gray-950 active:bg-gray-900
|
|
@@ -178,9 +184,18 @@
|
|
|
178
184
|
--text-color: var(--gn-ui-badge-text-color, var(--color-gray-50));
|
|
179
185
|
--background-color: var(--gn-ui-badge-background-color, black);
|
|
180
186
|
--opacity: var(--gn-ui-badge-opacity, 0.7);
|
|
187
|
+
text-transform: inherit;
|
|
181
188
|
@apply opacity-[--opacity] p-[--padding] rounded-[--rounded]
|
|
182
189
|
font-[--font-weight] text-[length:--text-size] text-[color:--text-color] bg-[color:--background-color] flex justify-center items-center content-center;
|
|
183
190
|
}
|
|
191
|
+
.gn-ui-badge-clickable {
|
|
192
|
+
@apply gn-ui-badge hover:bg-primary focus:bg-primary active:bg-primary-darker
|
|
193
|
+
hover:text-white active:text-white focus:text-white
|
|
194
|
+
transition-all duration-100
|
|
195
|
+
outline-none
|
|
196
|
+
relative
|
|
197
|
+
focus:z-10 active:z-10 hover:z-10;
|
|
198
|
+
}
|
|
184
199
|
/* makes sure icons will not make the badges grow vertically; also make size proportional */
|
|
185
200
|
.gn-ui-badge ng-icon {
|
|
186
201
|
margin-top: -0.325em;
|
package/translations/de.json
CHANGED
|
@@ -89,6 +89,19 @@
|
|
|
89
89
|
"domain.contact.role.stakeholder": "Beteiligter",
|
|
90
90
|
"domain.contact.role.unspecified": "Nicht angegeben",
|
|
91
91
|
"domain.contact.role.user": "Benutzer",
|
|
92
|
+
"domain.record.associationType.collectiveTitle": "",
|
|
93
|
+
"domain.record.associationType.crossReference": "",
|
|
94
|
+
"domain.record.associationType.dependency": "",
|
|
95
|
+
"domain.record.associationType.isComposedOf": "",
|
|
96
|
+
"domain.record.associationType.largerWorkCitation": "",
|
|
97
|
+
"domain.record.associationType.partOfSeamlessDatabase": "",
|
|
98
|
+
"domain.record.associationType.revisionOf": "",
|
|
99
|
+
"domain.record.associationType.series": "",
|
|
100
|
+
"domain.record.associationType.stereoMate": "",
|
|
101
|
+
"domain.record.keywordType.other": "Stichworte",
|
|
102
|
+
"domain.record.keywordType.place": "Ort",
|
|
103
|
+
"domain.record.keywordType.temporal": "Zeitlich",
|
|
104
|
+
"domain.record.keywordType.theme": "Thema",
|
|
92
105
|
"domain.record.status.completed": "Abgeschlossen",
|
|
93
106
|
"domain.record.status.deprecated": "Veraltet",
|
|
94
107
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
@@ -115,18 +128,39 @@
|
|
|
115
128
|
"domain.record.updateFrequency.week": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Woche",
|
|
116
129
|
"domain.record.updateFrequency.weekly": "Daten werden wöchentlich aktualisiert",
|
|
117
130
|
"domain.record.updateFrequency.year": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Jahr",
|
|
131
|
+
"downloads.format.csv": "",
|
|
132
|
+
"downloads.format.dxf": "",
|
|
133
|
+
"downloads.format.excel": "",
|
|
134
|
+
"downloads.format.fgb": "",
|
|
135
|
+
"downloads.format.geojson": "",
|
|
136
|
+
"downloads.format.gml": "",
|
|
137
|
+
"downloads.format.gpkg": "",
|
|
138
|
+
"downloads.format.html": "",
|
|
139
|
+
"downloads.format.jpg": "",
|
|
140
|
+
"downloads.format.json": "",
|
|
141
|
+
"downloads.format.jsonfg": "",
|
|
142
|
+
"downloads.format.kml": "",
|
|
143
|
+
"downloads.format.pdf": "",
|
|
144
|
+
"downloads.format.png": "",
|
|
145
|
+
"downloads.format.postgis": "",
|
|
146
|
+
"downloads.format.shp": "",
|
|
147
|
+
"downloads.format.svg": "",
|
|
148
|
+
"downloads.format.tiff": "",
|
|
118
149
|
"downloads.format.unknown": "unbekannt",
|
|
150
|
+
"downloads.format.webp": "",
|
|
151
|
+
"downloads.format.xml": "",
|
|
152
|
+
"downloads.format.zip": "",
|
|
119
153
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
120
154
|
"dropFile": "Datei ablegen",
|
|
121
|
-
"editor.new.record.title": "Mein Datensatz",
|
|
155
|
+
"editor.new.record.title": "Mein {recordKind, select, dataset{Datensatz} service{Dienst} reuse{Wiederverwendung} other{Datensatz}}",
|
|
122
156
|
"editor.record.delete.confirmation.cancelText": "Stornieren",
|
|
123
157
|
"editor.record.delete.confirmation.confirmText": "Löschen",
|
|
124
|
-
"editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
|
|
125
|
-
"editor.record.delete.confirmation.title": "Datensatz löschen",
|
|
126
|
-
"editor.record.deleteError.body": "Der Datensatz konnte nicht gelöscht werden:",
|
|
158
|
+
"editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie {recordKind, select, dataset{diesen Datensatz} service{diesen Dienst} reuse{diese Wiederverwendung} other{diesen Datensatz}} löschen möchten?",
|
|
159
|
+
"editor.record.delete.confirmation.title": "{recordKind, select, dataset{Datensatz} service{Dienst} reuse{Wiederverwendung} other{Datensatz}} löschen?",
|
|
160
|
+
"editor.record.deleteError.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} konnte nicht gelöscht werden:",
|
|
127
161
|
"editor.record.deleteError.closeMessage": "Verstanden",
|
|
128
|
-
"editor.record.deleteError.title": "Fehler beim Löschen des Datensatzes",
|
|
129
|
-
"editor.record.deleteSuccess.body": "Der Datensatz wurde erfolgreich gelöscht.",
|
|
162
|
+
"editor.record.deleteError.title": "Fehler beim Löschen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
163
|
+
"editor.record.deleteSuccess.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} wurde erfolgreich gelöscht.",
|
|
130
164
|
"editor.record.deleteSuccess.title": "Erfolgreich gelöscht",
|
|
131
165
|
"editor.record.error.back": "Zurück zum Katalog",
|
|
132
166
|
"editor.record.error.explanation": "Möglicherweise haben Sie keinen Zugriff auf diese Datei,<br>oder dieser Link ist ungültig.",
|
|
@@ -147,9 +181,17 @@
|
|
|
147
181
|
"editor.record.form.constraint.not.known": "Die Bedingungen sind unbekannt.",
|
|
148
182
|
"editor.record.form.constraint.otherConstraints": "Sonstige Einschränkungen",
|
|
149
183
|
"editor.record.form.constraint.securityConstraints": "Sicherheitsauflagen",
|
|
150
|
-
"editor.record.form.draft.updateAlert": "Seit der Erstellung dieses Entwurfs wurde dieser Datensatz am { date } von { user } geändert. Durch das Veröffentlichen Ihrer Version können dessen Änderungen gelöscht werden. Um dies zu vermeiden, können Sie Ihre Änderungen rückgängig machen oder Ihre Version in voller Kenntnis der Sachlage veröffentlichen.",
|
|
184
|
+
"editor.record.form.draft.updateAlert": "Seit der Erstellung dieses Entwurfs wurde {recordKind, select, dataset{dieser Datensatz} service{dieser Dienst} reuse{diese Wiederverwendung} other{dieser Datensatz}} am { date } von { user } geändert. Durch das Veröffentlichen Ihrer Version können dessen Änderungen gelöscht werden. Um dies zu vermeiden, können Sie Ihre Änderungen rückgängig machen oder Ihre Version in voller Kenntnis der Sachlage veröffentlichen.",
|
|
151
185
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
152
186
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
187
|
+
"editor.record.form.field.contactDetails.email": "",
|
|
188
|
+
"editor.record.form.field.contactDetails.email.placeholder": "",
|
|
189
|
+
"editor.record.form.field.contactDetails.firstName": "",
|
|
190
|
+
"editor.record.form.field.contactDetails.firstName.placeholder": "",
|
|
191
|
+
"editor.record.form.field.contactDetails.lastName": "",
|
|
192
|
+
"editor.record.form.field.contactDetails.lastName.placeholder": "",
|
|
193
|
+
"editor.record.form.field.contactDetails.organization": "",
|
|
194
|
+
"editor.record.form.field.contactDetails.organization.placeholder": "",
|
|
153
195
|
"editor.record.form.field.contacts": "Ansprechpartner - Email",
|
|
154
196
|
"editor.record.form.field.contacts.noContact": "Bitte geben Sie mindestens einen Ansprechpartner an.",
|
|
155
197
|
"editor.record.form.field.contacts.placeholder": "Kontakt auswählen",
|
|
@@ -179,10 +221,14 @@
|
|
|
179
221
|
"editor.record.form.field.organisation": "Ansprechpartner - Organisation",
|
|
180
222
|
"editor.record.form.field.otherConstraints": "Allgemeine Einschränkung",
|
|
181
223
|
"editor.record.form.field.overviews": "Übersicht",
|
|
224
|
+
"editor.record.form.field.parentIdentifier": "",
|
|
225
|
+
"editor.record.form.field.parentLink": "",
|
|
226
|
+
"editor.record.form.field.parentType": "",
|
|
182
227
|
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
183
228
|
"editor.record.form.field.resourceCreated": "Erstellungsdatum",
|
|
184
229
|
"editor.record.form.field.resourceIdentifier": "Kennung",
|
|
185
230
|
"editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
231
|
+
"editor.record.form.field.reuseUrl": "URL der Nachnutzung",
|
|
186
232
|
"editor.record.form.field.securityConstraints": "Sicherheitseinschränkung",
|
|
187
233
|
"editor.record.form.field.spatialExtents": "Raumausdehnung",
|
|
188
234
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
@@ -213,59 +259,65 @@
|
|
|
213
259
|
"editor.record.form.multilingual.title": "Übersetzungen",
|
|
214
260
|
"editor.record.form.multilingual.validate": "Bestätigen",
|
|
215
261
|
"editor.record.form.page.accessAndContact": "Informationen zur Nutzung",
|
|
216
|
-
"editor.record.form.page.description": "Beschreibung des Datensatzes",
|
|
262
|
+
"editor.record.form.page.description": "Beschreibung {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
217
263
|
"editor.record.form.page.resources": "Ressourcen",
|
|
218
|
-
"editor.record.form.section.about.description": "Diese Informationen beziehen sich auf den Datensatz.",
|
|
219
|
-
"editor.record.form.section.about.label": "Über den Datensatz",
|
|
220
|
-
"editor.record.form.section.annexes.description": "Anhänge sind optionale Ressourcen. Sie sind dem Datensatz beigefügt und helfen, die Daten besser zu verstehen (Anleitung usw.).",
|
|
264
|
+
"editor.record.form.section.about.description": "Diese Informationen beziehen sich auf {recordKind, select, dataset{den Datensatz} service{den Dienst} reuse{die Wiederverwendung} other{den Datensatz}}.",
|
|
265
|
+
"editor.record.form.section.about.label": "Über {recordKind, select, dataset{den Datensatz} service{den Dienst} reuse{die Wiederverwendung} other{den Datensatz}}",
|
|
266
|
+
"editor.record.form.section.annexes.description": "Anhänge sind optionale Ressourcen. Sie sind {recordKind, select, dataset{dem Datensatz} service{dem Dienst} reuse{der Wiederverwendung} other{dem Datensatz}} beigefügt und helfen, die Daten besser zu verstehen (Anleitung usw.).",
|
|
221
267
|
"editor.record.form.section.annexes.label": "Anhänge",
|
|
222
268
|
"editor.record.form.section.associatedResources.description": "Angeben, wo sich die Ressource befindet.",
|
|
223
269
|
"editor.record.form.section.associatedResources.label": "Verwandte Ressourcen",
|
|
224
|
-
"editor.record.form.section.classification.description": "Geeignete Stichwörter helfen beim Auffinden des Datensatzes.",
|
|
270
|
+
"editor.record.form.section.classification.description": "Geeignete Stichwörter helfen beim Auffinden {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}.",
|
|
225
271
|
"editor.record.form.section.classification.label": "Stichwörter",
|
|
226
272
|
"editor.record.form.section.dataManagers.description": "Diese Information betrifft die Daten.",
|
|
227
273
|
"editor.record.form.section.dataManagers.label": "Verantwortliche für die Daten",
|
|
228
274
|
"editor.record.form.section.geographicalCoverage.label": "Geografische Ausdehnung",
|
|
275
|
+
"editor.record.form.section.lightPointOfContact.label": "Kontaktstelle",
|
|
229
276
|
"editor.record.form.section.metadataPointOfContact.description": "Diese Information betrifft die Metadaten.",
|
|
230
277
|
"editor.record.form.section.metadataPointOfContact.label": "Kontaktstelle für Metadaten",
|
|
231
|
-
"editor.record.form.section.topics.description": "Themen erleichtern die Zusammenfassung von Datensätzen.",
|
|
278
|
+
"editor.record.form.section.topics.description": "Themen erleichtern die Zusammenfassung von {recordKind, select, dataset{Datensätzen} service{Diensten} reuse{Wiederverwendungen} other{Datensätzen}}.",
|
|
232
279
|
"editor.record.form.section.topics.label": "Themen",
|
|
233
280
|
"editor.record.form.section.useAndAccessConditions.label": "Zugangs- und Nutzungsbedingungen",
|
|
234
281
|
"editor.record.form.temporalExtents.addDate": "Zeitpunkt",
|
|
235
282
|
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
236
283
|
"editor.record.form.temporalExtents.date": "Datum",
|
|
237
284
|
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
238
|
-
"editor.record.form.topics.
|
|
239
|
-
"editor.record.form.topics.
|
|
240
|
-
"editor.record.form.topics.
|
|
241
|
-
"editor.record.form.topics.
|
|
242
|
-
"editor.record.form.topics.
|
|
243
|
-
"editor.record.form.topics.
|
|
244
|
-
"editor.record.form.topics.
|
|
245
|
-
"editor.record.form.topics.
|
|
246
|
-
"editor.record.form.topics.
|
|
247
|
-
"editor.record.form.topics.
|
|
248
|
-
"editor.record.form.topics.
|
|
249
|
-
"editor.record.form.topics.
|
|
250
|
-
"editor.record.form.topics.
|
|
251
|
-
"editor.record.form.topics.
|
|
252
|
-
"editor.record.form.topics.
|
|
253
|
-
"editor.record.form.topics.
|
|
254
|
-
"editor.record.form.topics.
|
|
255
|
-
"editor.record.form.topics.
|
|
256
|
-
"editor.record.form.topics.
|
|
285
|
+
"editor.record.form.topics.iso.biota": "Biologie",
|
|
286
|
+
"editor.record.form.topics.iso.boundaries": "Grenzen",
|
|
287
|
+
"editor.record.form.topics.iso.climatologyMeteorologyAtmosphere": "Klimatologie/Meteorologie/Atmosphäre",
|
|
288
|
+
"editor.record.form.topics.iso.economy": "Wirtschaft",
|
|
289
|
+
"editor.record.form.topics.iso.elevation": "Höhenangaben",
|
|
290
|
+
"editor.record.form.topics.iso.environment": "Umwelt",
|
|
291
|
+
"editor.record.form.topics.iso.farming": "Landwirtschaft",
|
|
292
|
+
"editor.record.form.topics.iso.geoscientificInformation": "Geowissenschaften",
|
|
293
|
+
"editor.record.form.topics.iso.health": "Gesundheitswesen",
|
|
294
|
+
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "Bilddaten/Basiskarten/Landbedeckung",
|
|
295
|
+
"editor.record.form.topics.iso.inlandWaters": "Binnengewässer",
|
|
296
|
+
"editor.record.form.topics.iso.intelligenceMilitary": "Aufklärung/Militär",
|
|
297
|
+
"editor.record.form.topics.iso.location": "Ortsangaben",
|
|
298
|
+
"editor.record.form.topics.iso.oceans": "Meere",
|
|
299
|
+
"editor.record.form.topics.iso.planningCadastre": "Planungsunterlagen/Kataster",
|
|
300
|
+
"editor.record.form.topics.iso.society": "Gesellschaft",
|
|
301
|
+
"editor.record.form.topics.iso.structure": "Bauwerke",
|
|
302
|
+
"editor.record.form.topics.iso.transportation": "Verkehrswesen",
|
|
303
|
+
"editor.record.form.topics.iso.utilitiesCommunication": "Ver- und Entsorgung/Nachrichtenwesen",
|
|
257
304
|
"editor.record.form.topics.placeholder": "Ein oder mehrere Themen auswählen",
|
|
258
|
-
"editor.record.form.updateFrequency.planned": "
|
|
305
|
+
"editor.record.form.updateFrequency.planned": "{recordKind, select, dataset{Dieser Datensatz} service{Dieser Dienst} reuse{Diese Wiederverwendung} other{Dieser Datensatz}} wird regelmäßig aktualisiert.",
|
|
259
306
|
"editor.record.importFromExternalFile.failure.body": "Beim Importieren des Datensatzes ist ein Fehler aufgetreten:",
|
|
260
307
|
"editor.record.importFromExternalFile.failure.title": "Fehler",
|
|
261
308
|
"editor.record.importFromExternalFile.success.body": "Der Import des Datensatzes wurde erfolgreich durchgeführt.",
|
|
262
309
|
"editor.record.importFromExternalFile.success.title": "Erfolgreicher Import",
|
|
310
|
+
"editor.record.light.leave": "Zurück zur Wiederverwendung",
|
|
311
|
+
"editor.record.light.save": "Nachnutzung speichern",
|
|
312
|
+
"editor.record.light.saveError.body": "Die Nachnutzung konnte nicht gespeichert werden:",
|
|
313
|
+
"editor.record.light.saveError.title": "Speichern fehlgeschlagen",
|
|
314
|
+
"editor.record.light.saveSuccess.body": "Die Nachnutzung wurde erfolgreich gespeichert.",
|
|
315
|
+
"editor.record.light.saveSuccess.title": "Nachnutzung gespeichert",
|
|
263
316
|
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
264
317
|
"editor.record.loadError.closeMessage": "Verstanden",
|
|
265
318
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
266
|
-
"editor.record.lock.harvested": "Die gesammelten Datensätze sind nicht bearbeitbar.",
|
|
319
|
+
"editor.record.lock.harvested": "Die gesammelten {recordKind, select, dataset{Datensätze} service{Dienste} reuse{Wiederverwendungen} other{Datensätze}} sind nicht bearbeitbar.",
|
|
267
320
|
"editor.record.lock.owner": "Sie sind kein Herausgeber einer der zugelassenen Gruppen.",
|
|
268
|
-
"editor.record.lock.resourceType": "Datenblätter, die nicht vom Typ „Datensatz“ sind, können nicht bearbeitet werden.",
|
|
269
321
|
"editor.record.multilingual.confirmation.cancelText": "Die Sprache(n) beibehalten",
|
|
270
322
|
"editor.record.multilingual.confirmation.confirmText": "Sprache(n) löschen",
|
|
271
323
|
"editor.record.multilingual.confirmation.message": "Sie werden eine oder mehrere Sprachen löschen, wodurch alle damit verbundenen Übersetzungen gelöscht werden. Möchten Sie fortfahren?",
|
|
@@ -275,31 +327,31 @@
|
|
|
275
327
|
"editor.record.onlineResourceError.closeMessage": "Verstanden",
|
|
276
328
|
"editor.record.onlineResourceError.title": "Fehler beim Hinzufügen einer Ressource",
|
|
277
329
|
"editor.record.placeKeywordWithoutLabel": "Standort ohne Namen",
|
|
278
|
-
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
330
|
+
"editor.record.publish": "{recordKind, select, dataset{Diesen Datensatz} service{Diesen Dienst} reuse{Diese Wiederverwendung} other{Diesen Datensatz}} veröffentlichen",
|
|
279
331
|
"editor.record.publish.confirmation.cancelText": "Abbrechen",
|
|
280
332
|
"editor.record.publish.confirmation.confirmText": "Veröffentlichen",
|
|
281
|
-
"editor.record.publish.confirmation.message": "Seit der Erstellung Ihres Entwurfs wurde dieser Datensatz am { date } von { user } geändert. Durch das Veröffentlichen Ihrer Version könnten dessen Änderungen gelöscht werden. Möchten Sie fortfahren?",
|
|
282
|
-
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
333
|
+
"editor.record.publish.confirmation.message": "Seit der Erstellung Ihres Entwurfs wurde {recordKind, select, dataset{dieser Datensatz} service{dieser Dienst} reuse{diese Wiederverwendung} other{dieser Datensatz}} am { date } von { user } geändert. Durch das Veröffentlichen Ihrer Version könnten dessen Änderungen gelöscht werden. Möchten Sie fortfahren?",
|
|
334
|
+
"editor.record.publishError.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} konnte nicht veröffentlicht werden:",
|
|
283
335
|
"editor.record.publishError.closeMessage": "Verstanden",
|
|
284
|
-
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
285
|
-
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
336
|
+
"editor.record.publishError.title": "Fehler beim Veröffentlichen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
337
|
+
"editor.record.publishSuccess.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} wurde erfolgreich veröffentlicht!",
|
|
286
338
|
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
287
|
-
"editor.record.publishVersionError.body": "Der Datensatz kann nicht veröffentlicht werden, da eine inkompatible Version von GeoNetwork erkannt wurde. Bitte wenden Sie sich an einen Administrator der Plattform, um das Problem zu beheben
|
|
339
|
+
"editor.record.publishVersionError.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} kann nicht veröffentlicht werden, da eine inkompatible Version von GeoNetwork erkannt wurde. Bitte wenden Sie sich an einen Administrator der Plattform, um das Problem zu beheben.\nAktuelle Version: {currentVersion}\nMindestkompatible Version: 4.2.5",
|
|
288
340
|
"editor.record.publishVersionError.closeMessage": "Verstanden",
|
|
289
341
|
"editor.record.publishVersionError.title": "Ein kritischer Fehler ist aufgetreten",
|
|
290
|
-
"editor.record.resourceError.body": "Bei der Verwaltung der Anhänge ist ein Fehler aufgetreten:",
|
|
342
|
+
"editor.record.resourceError.body": "Bei der Verwaltung der Anhänge {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}} ist ein Fehler aufgetreten:",
|
|
291
343
|
"editor.record.resourceError.closeMessage": "Verstanden",
|
|
292
|
-
"editor.record.resourceError.title": "Fehler bei den Anhängen",
|
|
344
|
+
"editor.record.resourceError.title": "Fehler bei den Anhängen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
293
345
|
"editor.record.saveStatus.draftWithChangesPending": "Gespeichert - nicht publizierte Unterschiede",
|
|
294
346
|
"editor.record.saveStatus.recordNotPublished": "Gespeichert – nicht veröffentlicht",
|
|
295
347
|
"editor.record.saveStatus.recordUpToDate": "Gespeichert - auf dem neuesten Stand",
|
|
296
348
|
"editor.record.undo.confirmation.cancelText": "Änderungen speichern",
|
|
297
349
|
"editor.record.undo.confirmation.confirmText": "Änderungen zurücknehmen",
|
|
298
|
-
"editor.record.undo.confirmation.message": "Möchten Sie die Änderungen an diesem Datensatz wirklich rückgängig machen?",
|
|
350
|
+
"editor.record.undo.confirmation.message": "Möchten Sie die Änderungen an {recordKind, select, dataset{diesem Datensatz} service{diesem Dienst} reuse{dieser Wiederverwendung} other{diesem Datensatz}} wirklich rückgängig machen?",
|
|
299
351
|
"editor.record.undo.confirmation.title": "Änderungen rückgängig machen?",
|
|
300
|
-
"editor.record.undo.tooltip.disabled": "Es gibt keine laufenden Änderungen an diesem Datensatz.",
|
|
301
|
-
"editor.record.undo.tooltip.enabled": "Bitte klicken auf diese Schaltfläche, um die Änderungen an diesem Datensatz zu verwerfen.",
|
|
302
|
-
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
352
|
+
"editor.record.undo.tooltip.disabled": "Es gibt keine laufenden Änderungen an {recordKind, select, dataset{diesem Datensatz} service{diesem Dienst} reuse{dieser Wiederverwendung} other{diesem Datensatz}}.",
|
|
353
|
+
"editor.record.undo.tooltip.enabled": "Bitte klicken auf diese Schaltfläche, um die Änderungen an {recordKind, select, dataset{diesem Datensatz} service{diesem Dienst} reuse{dieser Wiederverwendung} other{diesem Datensatz}} zu verwerfen.",
|
|
354
|
+
"editor.record.upToDate": "{recordKind, select, dataset{Dieser Datensatz} service{Dieser Dienst} reuse{Diese Wiederverwendung} other{Dieser Datensatz}} ist auf dem neuesten Stand",
|
|
303
355
|
"editor.sidebar.logout": "Abmelden",
|
|
304
356
|
"editor.sidebar.menu.editor": "Herausgeber",
|
|
305
357
|
"editor.temporary.disabled": "Noch nicht implementiert",
|
|
@@ -390,6 +442,21 @@
|
|
|
390
442
|
"multiselect.filter.placeholder": "Suche",
|
|
391
443
|
"nav.back": "Zurück",
|
|
392
444
|
"navbar.mobile.menuTitle": "Schnellzugriff",
|
|
445
|
+
"notify.reuse.form.error.body": "",
|
|
446
|
+
"notify.reuse.form.error.title": "",
|
|
447
|
+
"notify.reuse.form.field.email": "E-Mail",
|
|
448
|
+
"notify.reuse.form.field.email.placeholder": "Kontakt-E-Mail-Adresse",
|
|
449
|
+
"notify.reuse.form.field.title": "Titel",
|
|
450
|
+
"notify.reuse.form.field.title.placeholder": "Titel der Wiederverwendung",
|
|
451
|
+
"notify.reuse.form.field.url": "URL der Wiederverwendung",
|
|
452
|
+
"notify.reuse.form.field.url.placeholder": "https://www.beispiel",
|
|
453
|
+
"notify.reuse.form.required.hint": "* : Pflichtfelder für die Erstellung einer Wiederverwendung",
|
|
454
|
+
"notify.reuse.form.submit": "Wiederverwendung melden",
|
|
455
|
+
"notify.reuse.form.title": "Eine Wiederverwendung melden",
|
|
456
|
+
"notify.reuse.link.description": "Eine über das Datahub erstellte Wiederverwendungsressource",
|
|
457
|
+
"notify.reuse.record.action.declare": "Wiederverwendung melden",
|
|
458
|
+
"notify.reuse.record.action.delete": "Löschen der Wiederverwendung",
|
|
459
|
+
"notify.reuse.record.action.edit": "Bearbeiten der Wiederverwendung",
|
|
393
460
|
"ogc.geojson.notsupported": "Dieser OGC API-Dienst unterstützt das GeoJSON-Format nicht.",
|
|
394
461
|
"ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden",
|
|
395
462
|
"organisation.filter.placeholder": "Ergebnisse filtern",
|
|
@@ -411,6 +478,7 @@
|
|
|
411
478
|
"record.action.download": "Herunterladen",
|
|
412
479
|
"record.action.duplicate": "Duplizieren",
|
|
413
480
|
"record.action.duplicating": "Duplizierung...",
|
|
481
|
+
"record.action.question": "Eine Frage stellen",
|
|
414
482
|
"record.action.rollback": "Wiederherstellen",
|
|
415
483
|
"record.action.switchLang": "Als Standard markieren",
|
|
416
484
|
"record.action.view": "Anzeigen",
|
|
@@ -422,6 +490,7 @@
|
|
|
422
490
|
"record.kind.reuse": "Wiederverwendung",
|
|
423
491
|
"record.kind.service": "Webdienste",
|
|
424
492
|
"record.metadata.about": "Beschreibung",
|
|
493
|
+
"record.metadata.abstract.empty": "Keine Beschreibung verfügbar",
|
|
425
494
|
"record.metadata.api": "API",
|
|
426
495
|
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
427
496
|
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
@@ -476,11 +545,12 @@
|
|
|
476
545
|
"record.metadata.download": "Herunterladen",
|
|
477
546
|
"record.metadata.feature.catalog": "Attributkatalog",
|
|
478
547
|
"record.metadata.formats": "Formate",
|
|
479
|
-
"record.metadata.isGeographical": "
|
|
548
|
+
"record.metadata.isGeographical": "geo",
|
|
480
549
|
"record.metadata.keywords": "Stichworte",
|
|
481
550
|
"record.metadata.languages": "Sprachen",
|
|
482
551
|
"record.metadata.link.postgis.table": "Tabelle:",
|
|
483
552
|
"record.metadata.link.postgis.tooltip": "PostGIS-Ressourcen haben keinen Zugriffslink.",
|
|
553
|
+
"record.metadata.linked.associatedRecords": "",
|
|
484
554
|
"record.metadata.linked.datasets": "Verknüpfte Datensätze",
|
|
485
555
|
"record.metadata.linked.records": "Verknüpfte Inhalte",
|
|
486
556
|
"record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
|
|
@@ -495,7 +565,6 @@
|
|
|
495
565
|
"record.metadata.preview.config.idle": "Standardvorschau festlegen",
|
|
496
566
|
"record.metadata.preview.config.saved": "Gespeichert!",
|
|
497
567
|
"record.metadata.preview.config.saving": "Speichern...",
|
|
498
|
-
"record.metadata.producer": "Datenproduzent",
|
|
499
568
|
"record.metadata.publication": "Veröffentlichungsdatum",
|
|
500
569
|
"record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
|
|
501
570
|
"record.metadata.quality": "Metadatenqualität",
|
|
@@ -551,6 +620,12 @@
|
|
|
551
620
|
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Älteste zuerst",
|
|
552
621
|
"record.metadata.userFeedbacks.sortSelector.label": "Sortieren nach ...",
|
|
553
622
|
"record.more.details": "Weitere Details",
|
|
623
|
+
"record.reuse.delete.confirmation.cancelText": "Stornieren",
|
|
624
|
+
"record.reuse.delete.confirmation.confirmText": "Löschen",
|
|
625
|
+
"record.reuse.delete.confirmation.message": "Sind Sie sicher, dass Sie diese Wiederverwendung löschen möchten?",
|
|
626
|
+
"record.reuse.delete.confirmation.title": "Wiederverwendung löschen",
|
|
627
|
+
"record.reuse.deleteError.body": "Die Wiederverwendung konnte nicht gelöscht werden:",
|
|
628
|
+
"record.reuse.deleteError.title": "Fehler beim Löschen der Wiederverwendung",
|
|
554
629
|
"record.tab.chart": "Diagramm",
|
|
555
630
|
"record.tab.data": "Tabelle",
|
|
556
631
|
"record.tab.map": "Karte",
|
|
@@ -640,8 +715,6 @@
|
|
|
640
715
|
"service.metadata.filter": "Die Ebenen werden nach Titel und Beschreibung gefiltert.",
|
|
641
716
|
"service.metadata.filter.noLayers": "Keine Ergebnisse für Ihre Suche gefunden",
|
|
642
717
|
"service.metadata.other": "Sonstige Informationen",
|
|
643
|
-
"service.metadata.question": "Eine Frage stellen",
|
|
644
|
-
"service.metadata.reuse": "Wiederverwendung melden",
|
|
645
718
|
"service.metadata.search": "In der Liste der Ebenen suchen",
|
|
646
719
|
"service.metadata.search.clear": "Suche nach Ebenen löschen",
|
|
647
720
|
"service.metadata.spatialExtent": "Räumliche Ausdehnung",
|