geonetwork-ui 2.10.0-dev.270411d14 → 2.10.0-dev.2be368c45
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 +1277 -6185
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +181 -165
- package/index.d.ts.map +1 -1
- package/package.json +23 -33
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +9 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +22 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +22 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +1 -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 +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +6 -5
- 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/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +45 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +13 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +40 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +47 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +12 -8
- 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 +11 -22
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +12 -0
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +2 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +2 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +57 -0
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +5 -2
- 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.html +7 -6
- package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.ts +10 -8
- 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-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +7 -7
- 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-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 +27 -16
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +11 -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 +295 -291
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +6 -3
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -12
- 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 +211 -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/search/src/lib/results-table/results-table-container.component.ts +10 -5
- 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/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/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 +4 -7
- 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/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 +21 -9
- package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +1 -2
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +6 -3
- 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 +22 -0
- 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 +9 -0
- package/translations/de.json +84 -31
- package/translations/en.json +94 -41
- package/translations/es.json +58 -5
- package/translations/fr.json +91 -38
- package/translations/it.json +85 -32
- package/translations/nl.json +57 -4
- package/translations/pt.json +58 -5
- package/translations/sk.json +58 -5
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -3
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http'
|
|
2
1
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler'
|
|
3
|
-
import { FileTranslateLoader } from './file.translate.loader'
|
|
4
2
|
import {
|
|
5
3
|
TranslateCompiler,
|
|
6
4
|
TranslateDefaultParser,
|
|
@@ -9,26 +7,34 @@ import {
|
|
|
9
7
|
TranslateParser,
|
|
10
8
|
} from '@ngx-translate/core'
|
|
11
9
|
import { Injectable } from '@angular/core'
|
|
10
|
+
import { TRANSLATE_HTTP_LOADER_CONFIG } from '@ngx-translate/http-loader'
|
|
11
|
+
import { HttpClient } from '@angular/common/http'
|
|
12
|
+
import { FileTranslateLoader } from './file.translate.loader'
|
|
12
13
|
|
|
13
14
|
export const DEFAULT_LANG = 'en'
|
|
14
15
|
|
|
15
16
|
// Caution: changing this can break language selection from third parties!
|
|
16
17
|
export const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language'
|
|
17
18
|
|
|
18
|
-
export function HttpLoaderFactory(http: HttpClient) {
|
|
19
|
-
return new FileTranslateLoader(http, './assets/i18n/')
|
|
20
|
-
}
|
|
21
|
-
|
|
22
19
|
export const TRANSLATE_DEFAULT_CONFIG: TranslateModuleConfig = {
|
|
23
20
|
compiler: {
|
|
24
21
|
provide: TranslateCompiler,
|
|
25
22
|
useClass: TranslateMessageFormatCompiler,
|
|
26
23
|
},
|
|
27
|
-
loader:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
loader: [
|
|
25
|
+
{
|
|
26
|
+
provide: TRANSLATE_HTTP_LOADER_CONFIG,
|
|
27
|
+
useValue: {
|
|
28
|
+
prefix: './assets/i18n/',
|
|
29
|
+
suffix: '.json',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: TranslateLoader,
|
|
34
|
+
useClass: FileTranslateLoader,
|
|
35
|
+
deps: [HttpClient, TRANSLATE_HTTP_LOADER_CONFIG],
|
|
36
|
+
},
|
|
37
|
+
],
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
@Injectable()
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from '@angular/common/http'
|
|
7
7
|
import { DEFAULT_LANG } from './i18n.constants'
|
|
8
8
|
import { Observable } from 'rxjs'
|
|
9
|
-
import { Injectable, Injector
|
|
9
|
+
import { inject, Injectable, Injector } from '@angular/core'
|
|
10
10
|
import { TranslateService } from '@ngx-translate/core'
|
|
11
11
|
|
|
12
12
|
@Injectable()
|
|
@@ -21,7 +21,7 @@ export class I18nInterceptor implements HttpInterceptor {
|
|
|
21
21
|
const translate = this.injector.get(TranslateService)
|
|
22
22
|
request = request.clone({
|
|
23
23
|
setHeaders: {
|
|
24
|
-
'Accept-Language': translate.
|
|
24
|
+
'Accept-Language': translate.getCurrentLang() || DEFAULT_LANG,
|
|
25
25
|
},
|
|
26
26
|
})
|
|
27
27
|
return next.handle(request)
|
|
@@ -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 {
|
|
@@ -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
|
@@ -184,9 +184,18 @@
|
|
|
184
184
|
--text-color: var(--gn-ui-badge-text-color, var(--color-gray-50));
|
|
185
185
|
--background-color: var(--gn-ui-badge-background-color, black);
|
|
186
186
|
--opacity: var(--gn-ui-badge-opacity, 0.7);
|
|
187
|
+
text-transform: inherit;
|
|
187
188
|
@apply opacity-[--opacity] p-[--padding] rounded-[--rounded]
|
|
188
189
|
font-[--font-weight] text-[length:--text-size] text-[color:--text-color] bg-[color:--background-color] flex justify-center items-center content-center;
|
|
189
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
|
+
}
|
|
190
199
|
/* makes sure icons will not make the badges grow vertically; also make size proportional */
|
|
191
200
|
.gn-ui-badge ng-icon {
|
|
192
201
|
margin-top: -0.325em;
|
package/translations/de.json
CHANGED
|
@@ -89,6 +89,10 @@
|
|
|
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.keywordType.other": "Stichworte",
|
|
93
|
+
"domain.record.keywordType.place": "Ort",
|
|
94
|
+
"domain.record.keywordType.temporal": "Zeitlich",
|
|
95
|
+
"domain.record.keywordType.theme": "Thema",
|
|
92
96
|
"domain.record.status.completed": "Abgeschlossen",
|
|
93
97
|
"domain.record.status.deprecated": "Veraltet",
|
|
94
98
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
@@ -115,18 +119,39 @@
|
|
|
115
119
|
"domain.record.updateFrequency.week": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Woche",
|
|
116
120
|
"domain.record.updateFrequency.weekly": "Daten werden wöchentlich aktualisiert",
|
|
117
121
|
"domain.record.updateFrequency.year": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Jahr",
|
|
122
|
+
"downloads.format.csv": "",
|
|
123
|
+
"downloads.format.dxf": "",
|
|
124
|
+
"downloads.format.excel": "",
|
|
125
|
+
"downloads.format.fgb": "",
|
|
126
|
+
"downloads.format.geojson": "",
|
|
127
|
+
"downloads.format.gml": "",
|
|
128
|
+
"downloads.format.gpkg": "",
|
|
129
|
+
"downloads.format.html": "",
|
|
130
|
+
"downloads.format.jpg": "",
|
|
131
|
+
"downloads.format.json": "",
|
|
132
|
+
"downloads.format.jsonfg": "",
|
|
133
|
+
"downloads.format.kml": "",
|
|
134
|
+
"downloads.format.pdf": "",
|
|
135
|
+
"downloads.format.png": "",
|
|
136
|
+
"downloads.format.postgis": "",
|
|
137
|
+
"downloads.format.shp": "",
|
|
138
|
+
"downloads.format.svg": "",
|
|
139
|
+
"downloads.format.tiff": "",
|
|
118
140
|
"downloads.format.unknown": "unbekannt",
|
|
141
|
+
"downloads.format.webp": "",
|
|
142
|
+
"downloads.format.xml": "",
|
|
143
|
+
"downloads.format.zip": "",
|
|
119
144
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
120
145
|
"dropFile": "Datei ablegen",
|
|
121
|
-
"editor.new.record.title": "Mein Datensatz",
|
|
146
|
+
"editor.new.record.title": "Mein {recordKind, select, dataset{Datensatz} service{Dienst} reuse{Wiederverwendung} other{Datensatz}}",
|
|
122
147
|
"editor.record.delete.confirmation.cancelText": "Stornieren",
|
|
123
148
|
"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:",
|
|
149
|
+
"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?",
|
|
150
|
+
"editor.record.delete.confirmation.title": "{recordKind, select, dataset{Datensatz} service{Dienst} reuse{Wiederverwendung} other{Datensatz}} löschen?",
|
|
151
|
+
"editor.record.deleteError.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} konnte nicht gelöscht werden:",
|
|
127
152
|
"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.",
|
|
153
|
+
"editor.record.deleteError.title": "Fehler beim Löschen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
154
|
+
"editor.record.deleteSuccess.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} wurde erfolgreich gelöscht.",
|
|
130
155
|
"editor.record.deleteSuccess.title": "Erfolgreich gelöscht",
|
|
131
156
|
"editor.record.error.back": "Zurück zum Katalog",
|
|
132
157
|
"editor.record.error.explanation": "Möglicherweise haben Sie keinen Zugriff auf diese Datei,<br>oder dieser Link ist ungültig.",
|
|
@@ -147,7 +172,7 @@
|
|
|
147
172
|
"editor.record.form.constraint.not.known": "Die Bedingungen sind unbekannt.",
|
|
148
173
|
"editor.record.form.constraint.otherConstraints": "Sonstige Einschränkungen",
|
|
149
174
|
"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.",
|
|
175
|
+
"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
176
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
152
177
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
153
178
|
"editor.record.form.field.contactDetails.email": "",
|
|
@@ -191,6 +216,7 @@
|
|
|
191
216
|
"editor.record.form.field.resourceCreated": "Erstellungsdatum",
|
|
192
217
|
"editor.record.form.field.resourceIdentifier": "Kennung",
|
|
193
218
|
"editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
219
|
+
"editor.record.form.field.reuseUrl": "URL der Nachnutzung",
|
|
194
220
|
"editor.record.form.field.securityConstraints": "Sicherheitseinschränkung",
|
|
195
221
|
"editor.record.form.field.spatialExtents": "Raumausdehnung",
|
|
196
222
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
@@ -221,22 +247,23 @@
|
|
|
221
247
|
"editor.record.form.multilingual.title": "Übersetzungen",
|
|
222
248
|
"editor.record.form.multilingual.validate": "Bestätigen",
|
|
223
249
|
"editor.record.form.page.accessAndContact": "Informationen zur Nutzung",
|
|
224
|
-
"editor.record.form.page.description": "Beschreibung des Datensatzes",
|
|
250
|
+
"editor.record.form.page.description": "Beschreibung {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
225
251
|
"editor.record.form.page.resources": "Ressourcen",
|
|
226
|
-
"editor.record.form.section.about.description": "Diese Informationen beziehen sich auf den Datensatz.",
|
|
227
|
-
"editor.record.form.section.about.label": "Über den Datensatz",
|
|
228
|
-
"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.).",
|
|
252
|
+
"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}}.",
|
|
253
|
+
"editor.record.form.section.about.label": "Über {recordKind, select, dataset{den Datensatz} service{den Dienst} reuse{die Wiederverwendung} other{den Datensatz}}",
|
|
254
|
+
"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.).",
|
|
229
255
|
"editor.record.form.section.annexes.label": "Anhänge",
|
|
230
256
|
"editor.record.form.section.associatedResources.description": "Angeben, wo sich die Ressource befindet.",
|
|
231
257
|
"editor.record.form.section.associatedResources.label": "Verwandte Ressourcen",
|
|
232
|
-
"editor.record.form.section.classification.description": "Geeignete Stichwörter helfen beim Auffinden des Datensatzes.",
|
|
258
|
+
"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}}.",
|
|
233
259
|
"editor.record.form.section.classification.label": "Stichwörter",
|
|
234
260
|
"editor.record.form.section.dataManagers.description": "Diese Information betrifft die Daten.",
|
|
235
261
|
"editor.record.form.section.dataManagers.label": "Verantwortliche für die Daten",
|
|
236
262
|
"editor.record.form.section.geographicalCoverage.label": "Geografische Ausdehnung",
|
|
263
|
+
"editor.record.form.section.lightPointOfContact.label": "Kontaktstelle",
|
|
237
264
|
"editor.record.form.section.metadataPointOfContact.description": "Diese Information betrifft die Metadaten.",
|
|
238
265
|
"editor.record.form.section.metadataPointOfContact.label": "Kontaktstelle für Metadaten",
|
|
239
|
-
"editor.record.form.section.topics.description": "Themen erleichtern die Zusammenfassung von Datensätzen.",
|
|
266
|
+
"editor.record.form.section.topics.description": "Themen erleichtern die Zusammenfassung von {recordKind, select, dataset{Datensätzen} service{Diensten} reuse{Wiederverwendungen} other{Datensätzen}}.",
|
|
240
267
|
"editor.record.form.section.topics.label": "Themen",
|
|
241
268
|
"editor.record.form.section.useAndAccessConditions.label": "Zugangs- und Nutzungsbedingungen",
|
|
242
269
|
"editor.record.form.temporalExtents.addDate": "Zeitpunkt",
|
|
@@ -253,6 +280,7 @@
|
|
|
253
280
|
"editor.record.form.topics.iso.geoscientificInformation": "Geowissenschaften",
|
|
254
281
|
"editor.record.form.topics.iso.health": "Gesundheitswesen",
|
|
255
282
|
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "Bilddaten/Basiskarten/Landbedeckung",
|
|
283
|
+
"editor.record.form.topics.iso.inlandWaters": "Binnengewässer",
|
|
256
284
|
"editor.record.form.topics.iso.intelligenceMilitary": "Aufklärung/Militär",
|
|
257
285
|
"editor.record.form.topics.iso.location": "Ortsangaben",
|
|
258
286
|
"editor.record.form.topics.iso.oceans": "Meere",
|
|
@@ -261,19 +289,23 @@
|
|
|
261
289
|
"editor.record.form.topics.iso.structure": "Bauwerke",
|
|
262
290
|
"editor.record.form.topics.iso.transportation": "Verkehrswesen",
|
|
263
291
|
"editor.record.form.topics.iso.utilitiesCommunication": "Ver- und Entsorgung/Nachrichtenwesen",
|
|
264
|
-
"editor.record.form.topics.iso.inlandWaters": "Binnengewässer",
|
|
265
292
|
"editor.record.form.topics.placeholder": "Ein oder mehrere Themen auswählen",
|
|
266
|
-
"editor.record.form.updateFrequency.planned": "
|
|
293
|
+
"editor.record.form.updateFrequency.planned": "{recordKind, select, dataset{Dieser Datensatz} service{Dieser Dienst} reuse{Diese Wiederverwendung} other{Dieser Datensatz}} wird regelmäßig aktualisiert.",
|
|
267
294
|
"editor.record.importFromExternalFile.failure.body": "Beim Importieren des Datensatzes ist ein Fehler aufgetreten:",
|
|
268
295
|
"editor.record.importFromExternalFile.failure.title": "Fehler",
|
|
269
296
|
"editor.record.importFromExternalFile.success.body": "Der Import des Datensatzes wurde erfolgreich durchgeführt.",
|
|
270
297
|
"editor.record.importFromExternalFile.success.title": "Erfolgreicher Import",
|
|
298
|
+
"editor.record.light.leave": "Zurück zur Wiederverwendung",
|
|
299
|
+
"editor.record.light.save": "Nachnutzung speichern",
|
|
300
|
+
"editor.record.light.saveError.body": "Die Nachnutzung konnte nicht gespeichert werden:",
|
|
301
|
+
"editor.record.light.saveError.title": "Speichern fehlgeschlagen",
|
|
302
|
+
"editor.record.light.saveSuccess.body": "Die Nachnutzung wurde erfolgreich gespeichert.",
|
|
303
|
+
"editor.record.light.saveSuccess.title": "Nachnutzung gespeichert",
|
|
271
304
|
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
272
305
|
"editor.record.loadError.closeMessage": "Verstanden",
|
|
273
306
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
274
|
-
"editor.record.lock.harvested": "Die gesammelten Datensätze sind nicht bearbeitbar.",
|
|
307
|
+
"editor.record.lock.harvested": "Die gesammelten {recordKind, select, dataset{Datensätze} service{Dienste} reuse{Wiederverwendungen} other{Datensätze}} sind nicht bearbeitbar.",
|
|
275
308
|
"editor.record.lock.owner": "Sie sind kein Herausgeber einer der zugelassenen Gruppen.",
|
|
276
|
-
"editor.record.lock.resourceType": "Datenblätter, die nicht vom Typ „Datensatz“ sind, können nicht bearbeitet werden.",
|
|
277
309
|
"editor.record.multilingual.confirmation.cancelText": "Die Sprache(n) beibehalten",
|
|
278
310
|
"editor.record.multilingual.confirmation.confirmText": "Sprache(n) löschen",
|
|
279
311
|
"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?",
|
|
@@ -283,31 +315,31 @@
|
|
|
283
315
|
"editor.record.onlineResourceError.closeMessage": "Verstanden",
|
|
284
316
|
"editor.record.onlineResourceError.title": "Fehler beim Hinzufügen einer Ressource",
|
|
285
317
|
"editor.record.placeKeywordWithoutLabel": "Standort ohne Namen",
|
|
286
|
-
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
318
|
+
"editor.record.publish": "{recordKind, select, dataset{Diesen Datensatz} service{Diesen Dienst} reuse{Diese Wiederverwendung} other{Diesen Datensatz}} veröffentlichen",
|
|
287
319
|
"editor.record.publish.confirmation.cancelText": "Abbrechen",
|
|
288
320
|
"editor.record.publish.confirmation.confirmText": "Veröffentlichen",
|
|
289
|
-
"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?",
|
|
290
|
-
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
321
|
+
"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?",
|
|
322
|
+
"editor.record.publishError.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} konnte nicht veröffentlicht werden:",
|
|
291
323
|
"editor.record.publishError.closeMessage": "Verstanden",
|
|
292
|
-
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
293
|
-
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
324
|
+
"editor.record.publishError.title": "Fehler beim Veröffentlichen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
325
|
+
"editor.record.publishSuccess.body": "{recordKind, select, dataset{Der Datensatz} service{Der Dienst} reuse{Die Wiederverwendung} other{Der Datensatz}} wurde erfolgreich veröffentlicht!",
|
|
294
326
|
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
295
|
-
"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
|
|
327
|
+
"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",
|
|
296
328
|
"editor.record.publishVersionError.closeMessage": "Verstanden",
|
|
297
329
|
"editor.record.publishVersionError.title": "Ein kritischer Fehler ist aufgetreten",
|
|
298
|
-
"editor.record.resourceError.body": "Bei der Verwaltung der Anhänge ist ein Fehler aufgetreten:",
|
|
330
|
+
"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:",
|
|
299
331
|
"editor.record.resourceError.closeMessage": "Verstanden",
|
|
300
|
-
"editor.record.resourceError.title": "Fehler bei den Anhängen",
|
|
332
|
+
"editor.record.resourceError.title": "Fehler bei den Anhängen {recordKind, select, dataset{des Datensatzes} service{des Dienstes} reuse{der Wiederverwendung} other{des Datensatzes}}",
|
|
301
333
|
"editor.record.saveStatus.draftWithChangesPending": "Gespeichert - nicht publizierte Unterschiede",
|
|
302
334
|
"editor.record.saveStatus.recordNotPublished": "Gespeichert – nicht veröffentlicht",
|
|
303
335
|
"editor.record.saveStatus.recordUpToDate": "Gespeichert - auf dem neuesten Stand",
|
|
304
336
|
"editor.record.undo.confirmation.cancelText": "Änderungen speichern",
|
|
305
337
|
"editor.record.undo.confirmation.confirmText": "Änderungen zurücknehmen",
|
|
306
|
-
"editor.record.undo.confirmation.message": "Möchten Sie die Änderungen an diesem Datensatz wirklich rückgängig machen?",
|
|
338
|
+
"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?",
|
|
307
339
|
"editor.record.undo.confirmation.title": "Änderungen rückgängig machen?",
|
|
308
|
-
"editor.record.undo.tooltip.disabled": "Es gibt keine laufenden Änderungen an diesem Datensatz.",
|
|
309
|
-
"editor.record.undo.tooltip.enabled": "Bitte klicken auf diese Schaltfläche, um die Änderungen an diesem Datensatz zu verwerfen.",
|
|
310
|
-
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
340
|
+
"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}}.",
|
|
341
|
+
"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.",
|
|
342
|
+
"editor.record.upToDate": "{recordKind, select, dataset{Dieser Datensatz} service{Dieser Dienst} reuse{Diese Wiederverwendung} other{Dieser Datensatz}} ist auf dem neuesten Stand",
|
|
311
343
|
"editor.sidebar.logout": "Abmelden",
|
|
312
344
|
"editor.sidebar.menu.editor": "Herausgeber",
|
|
313
345
|
"editor.temporary.disabled": "Noch nicht implementiert",
|
|
@@ -398,6 +430,21 @@
|
|
|
398
430
|
"multiselect.filter.placeholder": "Suche",
|
|
399
431
|
"nav.back": "Zurück",
|
|
400
432
|
"navbar.mobile.menuTitle": "Schnellzugriff",
|
|
433
|
+
"notify.reuse.form.error.body": "",
|
|
434
|
+
"notify.reuse.form.error.title": "",
|
|
435
|
+
"notify.reuse.form.field.email": "E-Mail",
|
|
436
|
+
"notify.reuse.form.field.email.placeholder": "Kontakt-E-Mail-Adresse",
|
|
437
|
+
"notify.reuse.form.field.title": "Titel",
|
|
438
|
+
"notify.reuse.form.field.title.placeholder": "Titel der Wiederverwendung",
|
|
439
|
+
"notify.reuse.form.field.url": "URL der Wiederverwendung",
|
|
440
|
+
"notify.reuse.form.field.url.placeholder": "https://www.beispiel",
|
|
441
|
+
"notify.reuse.form.required.hint": "* : Pflichtfelder für die Erstellung einer Wiederverwendung",
|
|
442
|
+
"notify.reuse.form.submit": "Wiederverwendung melden",
|
|
443
|
+
"notify.reuse.form.title": "Eine Wiederverwendung melden",
|
|
444
|
+
"notify.reuse.link.description": "Eine über das Datahub erstellte Wiederverwendungsressource",
|
|
445
|
+
"notify.reuse.record.action.declare": "Wiederverwendung melden",
|
|
446
|
+
"notify.reuse.record.action.delete": "Löschen der Wiederverwendung",
|
|
447
|
+
"notify.reuse.record.action.edit": "Bearbeiten der Wiederverwendung",
|
|
401
448
|
"ogc.geojson.notsupported": "Dieser OGC API-Dienst unterstützt das GeoJSON-Format nicht.",
|
|
402
449
|
"ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden",
|
|
403
450
|
"organisation.filter.placeholder": "Ergebnisse filtern",
|
|
@@ -419,6 +466,7 @@
|
|
|
419
466
|
"record.action.download": "Herunterladen",
|
|
420
467
|
"record.action.duplicate": "Duplizieren",
|
|
421
468
|
"record.action.duplicating": "Duplizierung...",
|
|
469
|
+
"record.action.question": "Eine Frage stellen",
|
|
422
470
|
"record.action.rollback": "Wiederherstellen",
|
|
423
471
|
"record.action.switchLang": "Als Standard markieren",
|
|
424
472
|
"record.action.view": "Anzeigen",
|
|
@@ -430,6 +478,7 @@
|
|
|
430
478
|
"record.kind.reuse": "Wiederverwendung",
|
|
431
479
|
"record.kind.service": "Webdienste",
|
|
432
480
|
"record.metadata.about": "Beschreibung",
|
|
481
|
+
"record.metadata.abstract.empty": "Keine Beschreibung verfügbar",
|
|
433
482
|
"record.metadata.api": "API",
|
|
434
483
|
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
435
484
|
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
@@ -558,6 +607,12 @@
|
|
|
558
607
|
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Älteste zuerst",
|
|
559
608
|
"record.metadata.userFeedbacks.sortSelector.label": "Sortieren nach ...",
|
|
560
609
|
"record.more.details": "Weitere Details",
|
|
610
|
+
"record.reuse.delete.confirmation.cancelText": "Stornieren",
|
|
611
|
+
"record.reuse.delete.confirmation.confirmText": "Löschen",
|
|
612
|
+
"record.reuse.delete.confirmation.message": "Sind Sie sicher, dass Sie diese Wiederverwendung löschen möchten?",
|
|
613
|
+
"record.reuse.delete.confirmation.title": "Wiederverwendung löschen",
|
|
614
|
+
"record.reuse.deleteError.body": "Die Wiederverwendung konnte nicht gelöscht werden:",
|
|
615
|
+
"record.reuse.deleteError.title": "Fehler beim Löschen der Wiederverwendung",
|
|
561
616
|
"record.tab.chart": "Diagramm",
|
|
562
617
|
"record.tab.data": "Tabelle",
|
|
563
618
|
"record.tab.map": "Karte",
|
|
@@ -647,8 +702,6 @@
|
|
|
647
702
|
"service.metadata.filter": "Die Ebenen werden nach Titel und Beschreibung gefiltert.",
|
|
648
703
|
"service.metadata.filter.noLayers": "Keine Ergebnisse für Ihre Suche gefunden",
|
|
649
704
|
"service.metadata.other": "Sonstige Informationen",
|
|
650
|
-
"service.metadata.question": "Eine Frage stellen",
|
|
651
|
-
"service.metadata.reuse": "Wiederverwendung melden",
|
|
652
705
|
"service.metadata.search": "In der Liste der Ebenen suchen",
|
|
653
706
|
"service.metadata.search.clear": "Suche nach Ebenen löschen",
|
|
654
707
|
"service.metadata.spatialExtent": "Räumliche Ausdehnung",
|