geonetwork-ui 2.2.0-dev.723017a4 → 2.2.0-dev.7639a975

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +16 -4
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +3 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +7 -2
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -1
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +1 -1
  7. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  8. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
  9. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  10. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  11. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +17 -5
  12. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
  13. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  14. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  15. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  16. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  17. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  18. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  19. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  20. package/esm2022/translations/de.json +25 -18
  21. package/esm2022/translations/en.json +25 -18
  22. package/esm2022/translations/es.json +22 -15
  23. package/esm2022/translations/fr.json +26 -19
  24. package/esm2022/translations/it.json +25 -18
  25. package/esm2022/translations/nl.json +23 -16
  26. package/esm2022/translations/pt.json +22 -15
  27. package/fesm2022/geonetwork-ui.mjs +270 -140
  28. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  29. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  30. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  31. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  32. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  33. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  34. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +1 -0
  35. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  36. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  37. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -0
  38. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  39. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +6 -0
  40. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  41. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  42. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  43. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  44. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  45. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  46. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  47. package/package.json +1 -1
  48. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +2 -0
  49. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +2 -0
  50. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +4 -0
  51. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +19 -3
  52. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +2 -0
  53. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  54. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +6 -0
  55. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +5 -1
  56. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +8 -2
  57. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
  58. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  59. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +33 -11
  60. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +3 -4
  61. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  62. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  63. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +109 -18
  64. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +14 -0
  65. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  66. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  67. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  68. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  69. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
  70. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
  71. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  72. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  73. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  74. package/tailwind.base.css +2 -2
  75. package/translations/de.json +25 -18
  76. package/translations/en.json +25 -18
  77. package/translations/es.json +22 -15
  78. package/translations/fr.json +26 -19
  79. package/translations/it.json +25 -18
  80. package/translations/nl.json +23 -16
  81. package/translations/pt.json +22 -15
  82. package/translations/sk.json +23 -16
@@ -55,29 +55,85 @@
55
55
  </div>
56
56
  </gn-ui-expandable-panel>
57
57
  <gn-ui-expandable-panel
58
- class="metadata-origin"
59
58
  *ngIf="
60
59
  metadata.lineage ||
61
60
  metadata.recordUpdated ||
62
61
  metadata.updateFrequency ||
63
62
  metadata.status
64
63
  "
65
- [title]="'record.metadata.origin' | translate"
64
+ [title]="'record.metadata.details' | translate"
66
65
  >
67
- <p
66
+ <div
68
67
  *ngIf="metadata.lineage"
69
- class="mb-5 pt-4 whitespace-pre-line break-words text-gray-900"
70
- gnUiLinkify
68
+ class="text-gray-900 flex flex-col mb-5 pt-4 gap-2"
71
69
  >
72
- {{ metadata.lineage }}
73
- </p>
70
+ <p class="whitespace-pre-line break-words text-gray-900" gnUiLinkify>
71
+ {{ metadata.lineage }}
72
+ </p>
73
+ </div>
74
+ <div class="flex flex-row gap-6 mb-8" *ngIf="resourceContact">
75
+ <div
76
+ *ngIf="resourceContact.organization?.logoUrl?.href"
77
+ class="flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden"
78
+ >
79
+ <gn-ui-thumbnail
80
+ class="relative h-full w-full"
81
+ [thumbnailUrl]="resourceContact.organization.logoUrl.href"
82
+ fit="contain"
83
+ ></gn-ui-thumbnail>
84
+ </div>
85
+ <div class="flex flex-col gap-1">
86
+ <p class="text-sm font-medium" translate>record.metadata.producer</p>
87
+ <div
88
+ class="text-primary font-title text-21 mr-2 cursor-pointer hover:underline"
89
+ data-cy="organization-name"
90
+ >
91
+ {{ resourceContact.organization?.name }}
92
+ </div>
93
+ <div *ngIf="resourceContact.organization?.website">
94
+ <a
95
+ [href]="resourceContact.organization.website"
96
+ target="_blank"
97
+ class="contact-website text-primary text-sm cursor-pointer hover:underline transition-all"
98
+ >{{ resourceContact.organization.website }}
99
+ <mat-icon
100
+ class="material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0"
101
+ >open_in_new</mat-icon
102
+ >
103
+ </a>
104
+ </div>
105
+ <div class="mt-4" *ngIf="resourceContact.email">
106
+ <div class="flex">
107
+ <mat-icon
108
+ class="material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0"
109
+ >
110
+ mail_outline</mat-icon
111
+ >
112
+ <a
113
+ *ngIf="resourceContact.email"
114
+ [href]="'mailto:' + resourceContact.email"
115
+ class="text-sm hover:underline ml-2"
116
+ target="_blank"
117
+ data-cy="contact-email"
118
+ >{{ resourceContact?.email }}</a
119
+ >
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </div>
74
124
  <div
75
- class="py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid"
125
+ class="py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700"
76
126
  >
77
- <div *ngIf="metadata.recordUpdated">
78
- <p class="text-sm" translate>record.metadata.updatedOn</p>
127
+ <div *ngIf="metadata.recordCreated">
128
+ <p class="text-sm" translate>record.metadata.creation</p>
79
129
  <p class="text-primary font-medium mt-1">
80
- {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}
130
+ {{ metadata.recordCreated.toLocaleDateString() }}
131
+ </p>
132
+ </div>
133
+ <div *ngIf="metadata.recordPublished">
134
+ <p class="text-sm" translate>record.metadata.publication</p>
135
+ <p class="text-primary font-medium mt-1">
136
+ {{ metadata.recordPublished.toLocaleDateString() }}
81
137
  </p>
82
138
  </div>
83
139
  <div *ngIf="updateFrequency">
@@ -90,17 +146,52 @@
90
146
  {{ updateFrequency }}
91
147
  </p>
92
148
  </div>
93
- <div *ngIf="metadata.status">
94
- <p class="text-sm" translate>record.metadata.updateStatus</p>
95
- <p class="text-primary font-medium mt-1" translate>
96
- domain.record.status.{{ metadata.status }}
97
- </p>
149
+ <div *ngIf="metadata.languages">
150
+ <p class="text-sm mb-1" translate>record.metadata.languages</p>
151
+ <div class="flex flex-row gap-1 flex-wrap">
152
+ <p
153
+ class="text-primary font-medium"
154
+ translate
155
+ *ngFor="let language of metadata.languages"
156
+ >
157
+ language.{{ language }}
158
+ </p>
159
+ </div>
160
+ </div>
161
+ <div *ngIf="temporalExtent">
162
+ <p class="text-sm" translate>record.metadata.temporalExtent</p>
163
+ <div class="flex flex-row gap-1 mb-1 text-primary font-medium">
164
+ <p
165
+ *ngIf="temporalExtent.start && temporalExtent.end"
166
+ translate
167
+ [translateParams]="{
168
+ start: temporalExtent.start,
169
+ end: temporalExtent.end
170
+ }"
171
+ >
172
+ record.metadata.temporalExtent.fromDateToDate
173
+ </p>
174
+ <p
175
+ *ngIf="temporalExtent.start && !temporalExtent.end"
176
+ translate
177
+ [translateParams]="{ start: temporalExtent.start }"
178
+ >
179
+ record.metadata.temporalExtent.sinceDate
180
+ </p>
181
+ <p
182
+ *ngIf="!temporalExtent.start && temporalExtent.end"
183
+ translate
184
+ [translateParams]="{ end: temporalExtent.end }"
185
+ >
186
+ record.metadata.temporalExtent.untilDate
187
+ </p>
188
+ </div>
98
189
  </div>
99
190
  </div>
100
191
  </gn-ui-expandable-panel>
101
192
  <gn-ui-expandable-panel
102
193
  *ngIf="metadata.landingPage"
103
- [title]="'record.metadata.details' | translate"
194
+ [title]="'record.metadata.technical' | translate"
104
195
  >
105
196
  <div class="flex flex-col gap-4 mr-4 py-5 rounded text-gray-700">
106
197
  <div *ngIf="metadata.recordUpdated">
@@ -140,7 +231,7 @@
140
231
  <p class="text-sm mb-1" translate>record.metadata.topics</p>
141
232
  <div class="sm:pb-4 sm:pr-16">
142
233
  <gn-ui-badge
143
- class="inline-block mr-2 lowercase"
234
+ class="inline-block mr-2 mb-2 lowercase"
144
235
  *ngFor="let topic of metadata.topics"
145
236
  >{{ topic }}</gn-ui-badge
146
237
  >
@@ -9,6 +9,7 @@ import {
9
9
  DatasetRecord,
10
10
  Keyword,
11
11
  } from '../../../../../../libs/common/domain/src/lib/model/record'
12
+ import { getTemporalRangeUnion } from '../../../../../../libs/util/shared/src'
12
13
 
13
14
  @Component({
14
15
  selector: 'gn-ui-metadata-info',
@@ -76,6 +77,19 @@ export class MetadataInfoComponent {
76
77
  }
77
78
  }
78
79
 
80
+ get temporalExtent(): { start: string; end: string } {
81
+ const temporalExtents = this.metadata.temporalExtents
82
+ return getTemporalRangeUnion(temporalExtents)
83
+ }
84
+
85
+ get shownOrganization() {
86
+ return this.metadata.ownerOrganization
87
+ }
88
+
89
+ get resourceContact() {
90
+ return this.metadata.contactsForResource?.[0]
91
+ }
92
+
79
93
  fieldReady(propName: string) {
80
94
  return !this.incomplete || propName in this.metadata
81
95
  }
@@ -1,13 +1,13 @@
1
1
  <div
2
2
  #containerElement
3
- class="h-full w-full relative shrink-0 overflow-hidden flex items-center"
3
+ class="h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center"
4
4
  [ngClass]="isPlaceholder ? 'bg-gray-100' : 'bg-white'"
5
5
  [attr.data-cy-is-placeholder]="isPlaceholder.toString()"
6
6
  >
7
7
  <img
8
8
  #imageElement
9
9
  class="relative w-full object-center"
10
- [ngClass]="imgFit === 'contain' ? 'h-4/5' : 'h-full'"
10
+ [ngClass]="imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'"
11
11
  [ngStyle]="{ objectFit: imgFit }"
12
12
  alt="thumbnail"
13
13
  loading="lazy"
@@ -1,6 +1,6 @@
1
1
  <gn-ui-button
2
2
  type="outline"
3
- extraClass="w-full !p-[8px] !pl-[16px]"
3
+ extraClass="bg-background w-full !p-[8px] !pl-[16px]"
4
4
  [title]="title"
5
5
  [attr.aria-owns]="id"
6
6
  (buttonClick)="openOverlay()"
@@ -9,7 +9,9 @@
9
9
  <gn-ui-button
10
10
  type="outline"
11
11
  class="grow min-w-0"
12
- extraClass="!p-[8px] !pl-[16px] flex flex-row w-full {{ extraBtnClass }}"
12
+ extraClass="bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{
13
+ extraBtnClass
14
+ }}"
13
15
  [title]="title"
14
16
  [attr.aria-owns]="id"
15
17
  (buttonClick)="openOverlay()"
@@ -0,0 +1,3 @@
1
+ button {
2
+ color: var(--navigation-button-color, --color-background);
3
+ }
@@ -1,5 +1,5 @@
1
1
  <button
2
- class="group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 text-white rounded content-center"
2
+ class="group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center"
3
3
  >
4
4
  <mat-icon class="material-symbols-outlined align-middle w-[18px]">{{
5
5
  icon
@@ -4,6 +4,7 @@
4
4
  </div>
5
5
  </div>
6
6
  <div
7
+ *ngIf="steps.length > 1"
7
8
  class="absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1"
8
9
  [ngClass]="stepsContainerClass"
9
10
  >
@@ -40,6 +40,24 @@ export const LANG_3_TO_2_MAPPER = {
40
40
  slo: 'sk',
41
41
  }
42
42
 
43
+ export const LANGUAGE_NAMES = {
44
+ en: 'English',
45
+ nl: 'Nederlands',
46
+ fr: 'Français',
47
+ de: 'Deutsch',
48
+ ko: '한국어',
49
+ es: 'Español',
50
+ cs: 'Čeština',
51
+ ca: 'Català',
52
+ fi: 'Suomi',
53
+ is: 'Íslenska',
54
+ it: 'Italiano',
55
+ pt: 'Português',
56
+ ru: 'Русский',
57
+ zh: '中文',
58
+ sk: 'Slovenčina',
59
+ }
60
+
43
61
  // Caution: changing this can break language selection from third parties!
44
62
  export const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language'
45
63
 
@@ -6,3 +6,4 @@ export * from './sort-by'
6
6
  export * from './url'
7
7
  export * from './event'
8
8
  export * from './fuzzy-filter'
9
+ export * from './temporal-extent-union'
@@ -0,0 +1,32 @@
1
+ export function getTemporalRangeUnion(ranges) {
2
+ let earliestStartDate = Infinity
3
+ let latestEndDate = -Infinity
4
+ if (ranges.length) {
5
+ for (let i = 0; i < ranges.length; i++) {
6
+ const rangeStart = ranges[i].start
7
+ ? new Date(ranges[i].start).getTime()
8
+ : -Infinity
9
+ const rangeEnd = ranges[i].end
10
+ ? new Date(ranges[i].end).getTime()
11
+ : Infinity
12
+ if (rangeStart < earliestStartDate) {
13
+ earliestStartDate = rangeStart
14
+ }
15
+ if (rangeEnd > latestEndDate) {
16
+ latestEndDate = rangeEnd
17
+ }
18
+ }
19
+ return {
20
+ start:
21
+ earliestStartDate !== -Infinity
22
+ ? new Date(earliestStartDate).toLocaleDateString()
23
+ : undefined,
24
+ end:
25
+ latestEndDate !== Infinity
26
+ ? new Date(latestEndDate).toLocaleDateString()
27
+ : undefined,
28
+ }
29
+ } else {
30
+ return undefined
31
+ }
32
+ }
package/tailwind.base.css CHANGED
@@ -31,8 +31,8 @@
31
31
 
32
32
  .btn-outline {
33
33
  @apply btn text-main
34
- bg-white hover:text-primary-darker focus:text-primary-darker active:text-primary-black
35
- border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker;
34
+ bg-transparent hover:text-primary-darker focus:text-primary-darker active:text-primary-black
35
+ border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker;
36
36
  }
37
37
 
38
38
  .btn-light {
@@ -157,21 +157,21 @@
157
157
  "facets.block.title.tag.default": "Stichwort",
158
158
  "facets.block.title.th_regions_tree.default": "Regionen",
159
159
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
160
- "language.ca": "Català",
161
- "language.cs": "Čeština",
160
+ "language.ca": "Katalanisch",
161
+ "language.cs": "Tschechisch",
162
162
  "language.de": "Deutsch",
163
- "language.en": "English",
164
- "language.es": "Español",
165
- "language.fi": "Suomi",
166
- "language.fr": "Français",
167
- "language.is": "Íslenska",
168
- "language.it": "Italiano",
169
- "language.ko": "한국어",
170
- "language.nl": "Nederlands",
171
- "language.pt": "Português",
172
- "language.ru": "Русский",
173
- "language.sk": "Slovenčina",
174
- "language.zh": "中文",
163
+ "language.en": "Englisch",
164
+ "language.es": "Spanisch",
165
+ "language.fi": "Finnisch",
166
+ "language.fr": "Französisch",
167
+ "language.is": "Isländisch",
168
+ "language.it": "Italienisch",
169
+ "language.ko": "Koreanisch",
170
+ "language.nl": "Niederländisch",
171
+ "language.pt": "Portugiesisch",
172
+ "language.ru": "Russisch",
173
+ "language.sk": "Slowakisch",
174
+ "language.zh": "Chinesisch",
175
175
  "map.add.layer": "Eine Ebene hinzufügen",
176
176
  "map.add.layer.catalog": "Aus dem Katalog",
177
177
  "map.add.layer.file": "Aus einer Datei",
@@ -222,17 +222,20 @@
222
222
  "record.metadata.author": "Autor",
223
223
  "record.metadata.catalog": "Katalog",
224
224
  "record.metadata.contact": "Kontakt",
225
- "record.metadata.details": "Technische Informationen",
225
+ "record.metadata.creation": "",
226
+ "record.metadata.details": "Über die Daten",
226
227
  "record.metadata.download": "Downloads",
227
228
  "record.metadata.formats": "Formate",
228
229
  "record.metadata.keywords": "Stichworte",
229
- "record.metadata.lastUpdate": "Zuletzt aktualisiert am",
230
+ "record.metadata.languages": "",
231
+ "record.metadata.lastUpdate": "Zuletzt aktualisiert am {date}",
230
232
  "record.metadata.links": "Links",
231
233
  "record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
232
- "record.metadata.origin": "Über die Daten",
233
234
  "record.metadata.otherConstraints": "",
234
235
  "record.metadata.owner": "",
235
236
  "record.metadata.preview": "Vorschau",
237
+ "record.metadata.producer": "",
238
+ "record.metadata.publication": "",
236
239
  "record.metadata.publications": "Veröffentlichungen",
237
240
  "record.metadata.quality": "Metadatenqualität",
238
241
  "record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
@@ -255,12 +258,16 @@
255
258
  "record.metadata.related": "Ähnliche Datensätze",
256
259
  "record.metadata.sheet": "Weitere Informationen verfügbar unter:",
257
260
  "record.metadata.status": "",
261
+ "record.metadata.technical": "Technische Informationen",
262
+ "record.metadata.temporalExtent": "",
263
+ "record.metadata.temporalExtent.fromDateToDate": "",
264
+ "record.metadata.temporalExtent.sinceDate": "",
265
+ "record.metadata.temporalExtent.untilDate": "",
258
266
  "record.metadata.title": "Titel",
259
267
  "record.metadata.topics": "Kategorien",
260
268
  "record.metadata.type": "Geographischer Datensatz",
261
269
  "record.metadata.uniqueId": "Eindeutige Kennung",
262
270
  "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
263
- "record.metadata.updateStatus": "Aktualisierungsstatus der Daten",
264
271
  "record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen",
265
272
  "record.metadata.usage": "Nutzung und Einschränkungen",
266
273
  "record.more.details": "Weitere Details",
@@ -157,21 +157,21 @@
157
157
  "facets.block.title.tag.default": "Tag",
158
158
  "facets.block.title.th_regions_tree.default": "Regions",
159
159
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> to access this feature</div>",
160
- "language.ca": "Català",
161
- "language.cs": "Čeština",
162
- "language.de": "Deutsch",
160
+ "language.ca": "Catalan",
161
+ "language.cs": "Czech",
162
+ "language.de": "German",
163
163
  "language.en": "English",
164
- "language.es": "Español",
165
- "language.fi": "Suomi",
166
- "language.fr": "Français",
167
- "language.is": "Íslenska",
168
- "language.it": "Italiano",
169
- "language.ko": "한국어",
170
- "language.nl": "Nederlands",
171
- "language.pt": "Português",
172
- "language.ru": "Русский",
173
- "language.sk": "Slovenčina",
174
- "language.zh": "中文",
164
+ "language.es": "Spanish",
165
+ "language.fi": "Finnish",
166
+ "language.fr": "French",
167
+ "language.is": "Icelandic",
168
+ "language.it": "Italian",
169
+ "language.ko": "Korean",
170
+ "language.nl": "Dutch",
171
+ "language.pt": "Portuguese",
172
+ "language.ru": "Russian",
173
+ "language.sk": "Slovak",
174
+ "language.zh": "Chinese",
175
175
  "map.add.layer": "Add a layer",
176
176
  "map.add.layer.catalog": "From the catalog",
177
177
  "map.add.layer.file": "From a file",
@@ -222,17 +222,20 @@
222
222
  "record.metadata.author": "Author",
223
223
  "record.metadata.catalog": "Catalog",
224
224
  "record.metadata.contact": "Contact",
225
- "record.metadata.details": "Technical information",
225
+ "record.metadata.creation": "Date of creation",
226
+ "record.metadata.details": "About the data",
226
227
  "record.metadata.download": "Downloads",
227
228
  "record.metadata.formats": "Formats",
228
229
  "record.metadata.keywords": "Keywords",
229
- "record.metadata.lastUpdate": "Last updated on",
230
+ "record.metadata.languages": "Languages",
231
+ "record.metadata.lastUpdate": "Last updated on {date}",
230
232
  "record.metadata.links": "Links",
231
233
  "record.metadata.noUsage": "No usage conditions specified for this record.",
232
- "record.metadata.origin": "About the data",
233
234
  "record.metadata.otherConstraints": "Additional Conditions",
234
235
  "record.metadata.owner": "Catalog of origin",
235
236
  "record.metadata.preview": "Preview",
237
+ "record.metadata.producer": "Data producer",
238
+ "record.metadata.publication": "Date of publication",
236
239
  "record.metadata.publications": "publications",
237
240
  "record.metadata.quality": "Metadata Quality",
238
241
  "record.metadata.quality.contact.failed": "Contact is not specified",
@@ -255,12 +258,16 @@
255
258
  "record.metadata.related": "Related records",
256
259
  "record.metadata.sheet": "Original metadata",
257
260
  "record.metadata.status": "Status",
261
+ "record.metadata.technical": "Technical information",
262
+ "record.metadata.temporalExtent": "Temporal extent",
263
+ "record.metadata.temporalExtent.fromDateToDate": "From { start } to { end }",
264
+ "record.metadata.temporalExtent.sinceDate": "Since { start }",
265
+ "record.metadata.temporalExtent.untilDate": "Until { end }",
258
266
  "record.metadata.title": "Title",
259
267
  "record.metadata.topics": "Categories",
260
268
  "record.metadata.type": "Geographical dataset",
261
269
  "record.metadata.uniqueId": "Unique Identifier",
262
270
  "record.metadata.updateFrequency": "Data Update Frequency",
263
- "record.metadata.updateStatus": "Data Update Status",
264
271
  "record.metadata.updatedOn": "Last Data Information Update",
265
272
  "record.metadata.usage": "License and Conditions",
266
273
  "record.more.details": "Read more",
@@ -157,21 +157,21 @@
157
157
  "facets.block.title.tag.default": "",
158
158
  "facets.block.title.th_regions_tree.default": "",
159
159
  "favorite.not.authenticated.tooltip": "",
160
- "language.ca": "Català",
161
- "language.cs": "Čeština",
162
- "language.de": "Deutsch",
163
- "language.en": "English",
160
+ "language.ca": "Catalán",
161
+ "language.cs": "Checo",
162
+ "language.de": "Alemán",
163
+ "language.en": "Inglés",
164
164
  "language.es": "Español",
165
- "language.fi": "Suomi",
166
- "language.fr": "Français",
167
- "language.is": "Íslenska",
165
+ "language.fi": "Finlandés",
166
+ "language.fr": "Francés",
167
+ "language.is": "Islandés",
168
168
  "language.it": "Italiano",
169
- "language.ko": "한국어",
170
- "language.nl": "Nederlands",
171
- "language.pt": "Português",
172
- "language.ru": "Русский",
173
- "language.sk": "Slovenčina",
174
- "language.zh": "中文",
169
+ "language.ko": "Coreano",
170
+ "language.nl": "Neerlandés",
171
+ "language.pt": "Portugués",
172
+ "language.ru": "Ruso",
173
+ "language.sk": "Eslovaco",
174
+ "language.zh": "Chino",
175
175
  "map.add.layer": "",
176
176
  "map.add.layer.catalog": "",
177
177
  "map.add.layer.file": "",
@@ -222,17 +222,20 @@
222
222
  "record.metadata.author": "",
223
223
  "record.metadata.catalog": "",
224
224
  "record.metadata.contact": "",
225
+ "record.metadata.creation": "",
225
226
  "record.metadata.details": "",
226
227
  "record.metadata.download": "",
227
228
  "record.metadata.formats": "",
228
229
  "record.metadata.keywords": "",
230
+ "record.metadata.languages": "",
229
231
  "record.metadata.lastUpdate": "",
230
232
  "record.metadata.links": "",
231
233
  "record.metadata.noUsage": "",
232
- "record.metadata.origin": "",
233
234
  "record.metadata.otherConstraints": "",
234
235
  "record.metadata.owner": "",
235
236
  "record.metadata.preview": "",
237
+ "record.metadata.producer": "",
238
+ "record.metadata.publication": "",
236
239
  "record.metadata.publications": "",
237
240
  "record.metadata.quality": "",
238
241
  "record.metadata.quality.contact.failed": "",
@@ -255,12 +258,16 @@
255
258
  "record.metadata.related": "",
256
259
  "record.metadata.sheet": "",
257
260
  "record.metadata.status": "",
261
+ "record.metadata.technical": "",
262
+ "record.metadata.temporalExtent": "",
263
+ "record.metadata.temporalExtent.fromDateToDate": "",
264
+ "record.metadata.temporalExtent.sinceDate": "",
265
+ "record.metadata.temporalExtent.untilDate": "",
258
266
  "record.metadata.title": "",
259
267
  "record.metadata.topics": "",
260
268
  "record.metadata.type": "",
261
269
  "record.metadata.uniqueId": "",
262
270
  "record.metadata.updateFrequency": "",
263
- "record.metadata.updateStatus": "",
264
271
  "record.metadata.updatedOn": "",
265
272
  "record.metadata.usage": "",
266
273
  "record.more.details": "",
@@ -157,21 +157,21 @@
157
157
  "facets.block.title.tag.default": "Tag",
158
158
  "facets.block.title.th_regions_tree.default": "Régions",
159
159
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Connectez-vous</a> pour avoir accès à cette fonctionnalité</div>",
160
- "language.ca": "Català",
161
- "language.cs": "Čeština",
162
- "language.de": "Deutsch",
163
- "language.en": "English",
164
- "language.es": "Español",
165
- "language.fi": "Suomi",
160
+ "language.ca": "Catalan",
161
+ "language.cs": "Tchèque",
162
+ "language.de": "Allemand",
163
+ "language.en": "Anglais",
164
+ "language.es": "Espagnol",
165
+ "language.fi": "Finnois",
166
166
  "language.fr": "Français",
167
- "language.is": "Íslenska",
168
- "language.it": "Italiano",
169
- "language.ko": "한국어",
170
- "language.nl": "Nederlands",
171
- "language.pt": "Português",
172
- "language.ru": "Русский",
173
- "language.sk": "Slovenčina",
174
- "language.zh": "中文",
167
+ "language.is": "Islandais",
168
+ "language.it": "Italien",
169
+ "language.ko": "Coréen",
170
+ "language.nl": "Néerlandais",
171
+ "language.pt": "Portugais",
172
+ "language.ru": "Russe",
173
+ "language.sk": "Slovaque",
174
+ "language.zh": "Chinois",
175
175
  "map.add.layer": "",
176
176
  "map.add.layer.catalog": "",
177
177
  "map.add.layer.file": "",
@@ -222,17 +222,20 @@
222
222
  "record.metadata.author": "Auteur",
223
223
  "record.metadata.catalog": "Catalogue",
224
224
  "record.metadata.contact": "Contact",
225
- "record.metadata.details": "Informations techniques",
225
+ "record.metadata.creation": "Date de création",
226
+ "record.metadata.details": "A propos de la donnée",
226
227
  "record.metadata.download": "Téléchargements",
227
228
  "record.metadata.formats": "Formats",
228
229
  "record.metadata.keywords": "Mots clés",
229
- "record.metadata.lastUpdate": "Mis à jour le",
230
+ "record.metadata.languages": "Langues",
231
+ "record.metadata.lastUpdate": "Mis à jour le {date}",
230
232
  "record.metadata.links": "Liens",
231
233
  "record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données",
232
- "record.metadata.origin": "À propos des données",
233
234
  "record.metadata.otherConstraints": "Limitations d'usage",
234
235
  "record.metadata.owner": "Catalogue d'origine",
235
236
  "record.metadata.preview": "Aperçu",
237
+ "record.metadata.producer": "Producteur de la donnée",
238
+ "record.metadata.publication": "Date de publication",
236
239
  "record.metadata.publications": "données",
237
240
  "record.metadata.quality": "Qualité des métadonnées",
238
241
  "record.metadata.quality.contact.failed": "Contact n'est pas renseigné",
@@ -254,13 +257,17 @@
254
257
  "record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée",
255
258
  "record.metadata.related": "Voir aussi",
256
259
  "record.metadata.sheet": "Fiche de métadonnées d'origine",
257
- "record.metadata.status": "",
260
+ "record.metadata.status": "Statut",
261
+ "record.metadata.technical": "Informations techniques",
262
+ "record.metadata.temporalExtent": "Etendue temporelle",
263
+ "record.metadata.temporalExtent.fromDateToDate": "Du { start } au { end }",
264
+ "record.metadata.temporalExtent.sinceDate": "Depuis le { start }",
265
+ "record.metadata.temporalExtent.untilDate": "Jusqu'au { end }",
258
266
  "record.metadata.title": "Titre",
259
267
  "record.metadata.topics": "Catégories",
260
268
  "record.metadata.type": "Donnée géographique",
261
269
  "record.metadata.uniqueId": "Identificateur de ressource unique",
262
270
  "record.metadata.updateFrequency": "Fréquence de mise à jour des données",
263
- "record.metadata.updateStatus": "Statut de mise à jour des données",
264
271
  "record.metadata.updatedOn": "Dernière mise à jour des informations sur les données",
265
272
  "record.metadata.usage": "Licences et conditions d'utilisation",
266
273
  "record.more.details": "Détails",