geonetwork-ui 2.6.0-dev.492bf4497 → 2.6.0-dev.4a61a87f9

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 (192) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +39 -4
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +8 -4
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +5 -2
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +2 -2
  7. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
  8. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +3 -3
  9. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +62 -11
  10. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -1
  11. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  12. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  13. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +266 -11
  14. package/esm2022/libs/feature/record/src/index.mjs +2 -3
  15. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  16. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -1
  17. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +3 -1
  18. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  19. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  20. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
  21. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -2
  22. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  23. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  24. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  25. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +42 -83
  26. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +59 -0
  27. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +22 -5
  28. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  29. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  30. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +12 -4
  31. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  32. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  33. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +3 -3
  34. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +20 -10
  35. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  36. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  37. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
  38. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  39. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  40. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +21 -12
  41. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +39 -18
  42. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +10 -4
  43. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
  44. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
  45. package/esm2022/translations/de.json +34 -12
  46. package/esm2022/translations/en.json +34 -14
  47. package/esm2022/translations/es.json +33 -11
  48. package/esm2022/translations/fr.json +34 -14
  49. package/esm2022/translations/it.json +66 -44
  50. package/esm2022/translations/nl.json +33 -11
  51. package/esm2022/translations/pt.json +33 -11
  52. package/fesm2022/geonetwork-ui.mjs +1441 -727
  53. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  54. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  55. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  56. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  57. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  58. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  59. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  60. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  61. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  62. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  63. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  64. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  65. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +13 -2
  66. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  67. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  68. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  69. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  70. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  71. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +6 -0
  72. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  73. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +48 -3
  74. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
  75. package/libs/feature/record/src/index.d.ts +1 -2
  76. package/libs/feature/record/src/index.d.ts.map +1 -1
  77. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  78. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  79. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +6 -0
  80. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  81. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  82. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  83. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  84. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  85. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  86. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  87. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  88. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  89. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  90. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  91. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  92. package/libs/ui/elements/src/index.d.ts +1 -0
  93. package/libs/ui/elements/src/index.d.ts.map +1 -1
  94. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  95. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  96. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +6 -13
  97. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  98. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  99. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  100. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +3 -1
  101. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  102. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  103. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  104. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +1 -0
  105. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  106. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  107. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  108. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +4 -2
  109. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  110. package/libs/ui/search/src/index.d.ts +1 -0
  111. package/libs/ui/search/src/index.d.ts.map +1 -1
  112. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  113. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  114. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  115. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  116. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  117. package/libs/ui/search/src/lib/ui-search.module.d.ts +2 -1
  118. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  119. package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
  120. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  121. package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
  122. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  123. package/package.json +1 -1
  124. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  125. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +61 -4
  126. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  127. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
  128. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
  129. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +8 -4
  130. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -1
  131. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
  132. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
  133. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +101 -11
  134. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
  135. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  136. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +6 -0
  137. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +50 -1
  138. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +117 -11
  139. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +316 -6
  140. package/src/libs/feature/record/src/index.ts +1 -2
  141. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  142. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +22 -0
  143. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -0
  144. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  145. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  146. package/src/libs/feature/search/src/lib/constants.ts +1 -0
  147. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +2 -0
  148. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  149. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  150. package/src/libs/ui/elements/src/index.ts +1 -0
  151. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  152. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  153. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  154. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +68 -141
  155. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +38 -97
  156. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  157. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  158. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +7 -5
  159. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +21 -2
  160. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -1
  161. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  162. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  163. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +15 -1
  164. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +9 -1
  165. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  166. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  167. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +1 -2
  168. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -2
  169. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -6
  170. package/src/libs/ui/search/src/index.ts +1 -0
  171. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  172. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +1 -0
  173. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  174. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -1
  175. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  176. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  177. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +15 -11
  178. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  179. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +31 -27
  180. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +33 -15
  181. package/src/libs/ui/search/src/lib/ui-search.module.ts +3 -0
  182. package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
  183. package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
  184. package/tailwind.base.css +1 -1
  185. package/translations/de.json +34 -12
  186. package/translations/en.json +34 -14
  187. package/translations/es.json +33 -11
  188. package/translations/fr.json +34 -14
  189. package/translations/it.json +66 -44
  190. package/translations/nl.json +33 -11
  191. package/translations/pt.json +33 -11
  192. package/translations/sk.json +33 -11
@@ -28,18 +28,14 @@ import {
28
28
  getFileFormat,
29
29
  getFormatPriority,
30
30
  } from '../../../../../../libs/util/shared/src'
31
- import { TranslateModule } from '@ngx-translate/core'
31
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
32
32
  import { ActionMenuComponent } from './action-menu/action-menu.component'
33
33
  import { NgIconComponent, provideIcons } from '@ng-icons/core'
34
- import { iconoirUser, iconoirLock } from '@ng-icons/iconoir'
35
- import {
36
- CdkConnectedOverlay,
37
- CdkOverlayOrigin,
38
- Overlay,
39
- OverlayRef,
40
- } from '@angular/cdk/overlay'
34
+ import { iconoirUser, iconoirLock, iconoirTranslate } from '@ng-icons/iconoir'
35
+ import { CdkOverlayOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay'
41
36
  import { TemplatePortal } from '@angular/cdk/portal'
42
37
  import { matMoreVert } from '@ng-icons/material-icons/baseline'
38
+ import { Observable, of, take } from 'rxjs'
43
39
 
44
40
  @Component({
45
41
  selector: 'gn-ui-results-table',
@@ -57,7 +53,9 @@ import { matMoreVert } from '@ng-icons/material-icons/baseline'
57
53
  NgIconComponent,
58
54
  CdkOverlayOrigin,
59
55
  ],
60
- providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })],
56
+ providers: [
57
+ provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
58
+ ],
61
59
  })
62
60
  export class ResultsTableComponent {
63
61
  @Input() records: CatalogRecord[] = []
@@ -65,7 +63,10 @@ export class ResultsTableComponent {
65
63
  @Input() sortOrder: SortByField = null
66
64
  @Input() hasDraft: (record: CatalogRecord) => boolean = () => false
67
65
  @Input() canDuplicate: (record: CatalogRecord) => boolean = () => true
68
- @Input() canDelete: (record: CatalogRecord) => boolean = () => true
66
+ @Input() canDelete: (record: CatalogRecord) => Observable<boolean> = () =>
67
+ of(true)
68
+ @Input() canEdit: (record: CatalogRecord) => Observable<boolean> = () =>
69
+ of(true)
69
70
  @Input() isDraftPage = false
70
71
  @Input() isDuplicating = false
71
72
 
@@ -89,7 +90,8 @@ export class ResultsTableComponent {
89
90
  private overlay: Overlay,
90
91
  private viewContainerRef: ViewContainerRef,
91
92
  private cdr: ChangeDetectorRef,
92
- private dateService: DateService
93
+ private dateService: DateService,
94
+ private translateService: TranslateService
93
95
  ) {}
94
96
 
95
97
  openActionMenu(item, template) {
@@ -173,10 +175,14 @@ export class ResultsTableComponent {
173
175
  return getBadgeColor(format)
174
176
  }
175
177
 
176
- handleRecordClick(item: CatalogRecord) {
177
- if ((item?.extras?.edit || this.isDraftPage) && item.kind === 'dataset') {
178
- this.recordClick.emit(item as CatalogRecord)
179
- }
178
+ handleRecordClick(item: unknown) {
179
+ this.canEdit(item as CatalogRecord)
180
+ .pipe(take(1))
181
+ .subscribe((canEdit) => {
182
+ if (canEdit) {
183
+ this.recordClick.emit(item as CatalogRecord)
184
+ }
185
+ })
180
186
  }
181
187
 
182
188
  handleDuplicate(item: unknown) {
@@ -219,4 +225,16 @@ export class ResultsTableComponent {
219
225
  handleRecordSelectedChange(selected: boolean, record: CatalogRecord) {
220
226
  this.recordsSelectedChange.emit([[record], selected])
221
227
  }
228
+
229
+ isMultilingual(record: CatalogRecord): boolean {
230
+ return record.otherLanguages.length > 0
231
+ }
232
+
233
+ getTxtHoverMultilingual(record: CatalogRecord) {
234
+ return this.translateService.instant('dashboard.records.isMultilingual', {
235
+ languages: [...[record.defaultLanguage], ...record.otherLanguages].join(
236
+ ', '
237
+ ),
238
+ })
239
+ }
222
240
  }
@@ -39,6 +39,7 @@ import {
39
39
  matMapOutline,
40
40
  } from '@ng-icons/material-icons/outline'
41
41
  import { matFace } from '@ng-icons/material-icons/baseline'
42
+ import { ActionMenuComponent } from './results-table/action-menu/action-menu.component'
42
43
 
43
44
  @NgModule({
44
45
  declarations: [
@@ -79,6 +80,7 @@ import { matFace } from '@ng-icons/material-icons/baseline'
79
80
  }),
80
81
  KindBadgeComponent,
81
82
  MetadataQualityComponent,
83
+ ActionMenuComponent,
82
84
  ],
83
85
  exports: [
84
86
  RecordPreviewListComponent,
@@ -93,6 +95,7 @@ import { matFace } from '@ng-icons/material-icons/baseline'
93
95
  ResultsHitsSearchKindComponent,
94
96
  RecordPreviewFeedComponent,
95
97
  RecordPreviewRowComponent,
98
+ ActionMenuComponent,
96
99
  ],
97
100
  providers: [
98
101
  provideNgIconsConfig({
@@ -19,12 +19,54 @@ marker('language.pt')
19
19
  marker('language.ru')
20
20
  marker('language.zh')
21
21
  marker('language.sk')
22
+ marker('language.rm')
23
+ marker('language.ar')
24
+ marker('language.da')
25
+ marker('language.no')
26
+ marker('language.pl')
27
+ marker('language.sv')
28
+ marker('language.tr')
29
+ marker('language.hy')
30
+ marker('language.az')
31
+ marker('language.ka')
32
+ marker('language.uk')
33
+ marker('language.cy')
22
34
 
23
35
  export const DEFAULT_LANG = 'en'
24
36
 
25
37
  // Caution: changing this can break language selection from third parties!
26
38
  export const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language'
27
39
 
40
+ export const SUPPORTED_LANGUAGES = [
41
+ 'en',
42
+ 'nl',
43
+ 'fr',
44
+ 'de',
45
+ 'ko',
46
+ 'es',
47
+ 'cs',
48
+ 'ca',
49
+ 'fi',
50
+ 'is',
51
+ 'it',
52
+ 'pt',
53
+ 'ru',
54
+ 'zh',
55
+ 'sk',
56
+ 'rm',
57
+ 'ar',
58
+ 'da',
59
+ 'no',
60
+ 'pl',
61
+ 'sv',
62
+ 'tr',
63
+ 'hy',
64
+ 'az',
65
+ 'ka',
66
+ 'uk',
67
+ 'cy',
68
+ ]
69
+
28
70
  export function HttpLoaderFactory(http: HttpClient) {
29
71
  return new FileTranslateLoader(http, './assets/i18n/')
30
72
  }
@@ -15,6 +15,17 @@ export const LANG_3_TO_2_MAPPER = {
15
15
  chi: 'zh',
16
16
  slo: 'sk',
17
17
  roh: 'rm',
18
+ ara: 'ar',
19
+ dan: 'da',
20
+ nor: 'no',
21
+ pol: 'pl',
22
+ swe: 'sv',
23
+ tur: 'tr',
24
+ arm: 'hy',
25
+ aze: 'az',
26
+ geo: 'ka',
27
+ ukr: 'uk',
28
+ wel: 'cy',
18
29
  }
19
30
 
20
31
  export const LANGUAGE_NAMES = {
@@ -33,7 +44,18 @@ export const LANGUAGE_NAMES = {
33
44
  ru: 'Русский',
34
45
  zh: '中文',
35
46
  sk: 'Slovenčina',
36
- roh: 'Rumantsch',
47
+ rm: 'Rumantsch',
48
+ ar: 'العربية',
49
+ da: 'Dansk',
50
+ no: 'Norsk',
51
+ pl: 'Polski',
52
+ sv: 'Swedish',
53
+ tr: 'Türkçe',
54
+ hy: 'հայերեն',
55
+ az: 'Azərbaycan dili',
56
+ ka: 'ქართული',
57
+ uk: 'українська',
58
+ wel: 'Cymraeg',
37
59
  }
38
60
 
39
61
  export const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce(
package/tailwind.base.css CHANGED
@@ -131,7 +131,7 @@
131
131
  .gn-ui-btn-light {
132
132
  @apply gn-ui-btn
133
133
  hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100
134
- border-white focus:ring-4 focus:ring-gray-300;
134
+ bg-white border-white focus:ring-4 focus:ring-gray-300;
135
135
  }
136
136
 
137
137
  .gn-ui-card-s {
@@ -30,6 +30,7 @@
30
30
  "dashboard.labels.mySpace": "Mein Bereich",
31
31
  "dashboard.records.all": "Metadatenkatalog",
32
32
  "dashboard.records.hasDraft": "",
33
+ "dashboard.records.isMultilingual": "Dieser Eintrag ist mehrsprachig ({languages})",
33
34
  "dashboard.records.myDraft": "Meine Entwürfe",
34
35
  "dashboard.records.myRecords": "Meine Datensätze",
35
36
  "dashboard.records.search": "Suche nach \"{searchText}\"",
@@ -204,9 +205,13 @@
204
205
  "editor.record.form.license.odc-by": "",
205
206
  "editor.record.form.license.pddl": "",
206
207
  "editor.record.form.license.unknown": "",
208
+ "editor.record.form.multilingual.activate": "",
209
+ "editor.record.form.multilingual.default": "",
207
210
  "editor.record.form.multilingual.enable": "",
211
+ "editor.record.form.multilingual.forbidden": "",
208
212
  "editor.record.form.multilingual.open": "",
209
213
  "editor.record.form.multilingual.title": "",
214
+ "editor.record.form.multilingual.validate": "",
210
215
  "editor.record.form.page.accessAndContact": "",
211
216
  "editor.record.form.page.description": "",
212
217
  "editor.record.form.page.resources": "",
@@ -236,8 +241,13 @@
236
241
  "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
237
242
  "editor.record.loadError.closeMessage": "Verstanden",
238
243
  "editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
239
- "editor.record.lock.format": "",
240
- "editor.record.lock.reason": "",
244
+ "editor.record.lock.harvested": "",
245
+ "editor.record.lock.owner": "",
246
+ "editor.record.lock.resourceType": "",
247
+ "editor.record.multilingual.confirmation.cancelText": "",
248
+ "editor.record.multilingual.confirmation.confirmText": "",
249
+ "editor.record.multilingual.confirmation.message": "",
250
+ "editor.record.multilingual.confirmation.title": "",
241
251
  "editor.record.onlineResource.protocol.other": "",
242
252
  "editor.record.onlineResourceError.body": "",
243
253
  "editor.record.onlineResourceError.closeMessage": "",
@@ -284,10 +294,6 @@
284
294
  "facets.block.title.tag.default": "Stichwort",
285
295
  "facets.block.title.th_regions_tree.default": "Regionen",
286
296
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
287
- "feature.catalog.attribute.code": "",
288
- "feature.catalog.attribute.description": "",
289
- "feature.catalog.attribute.name": "",
290
- "feature.catalog.attribute.type": "",
291
297
  "input.file.dropFileLabel": "",
292
298
  "input.file.orInputUrl": "",
293
299
  "input.file.selectFileLabel": "",
@@ -302,20 +308,32 @@
302
308
  "input.image.uploadErrorLabel": "",
303
309
  "input.image.uploadProgressCancel": "",
304
310
  "input.image.uploadProgressLabel": "",
311
+ "language.ar": "",
312
+ "language.az": "",
305
313
  "language.ca": "Katalanisch",
306
314
  "language.cs": "Tschechisch",
315
+ "language.cy": "",
316
+ "language.da": "",
307
317
  "language.de": "Deutsch",
308
318
  "language.en": "Englisch",
309
319
  "language.es": "Spanisch",
310
320
  "language.fi": "Finnisch",
311
321
  "language.fr": "Französisch",
322
+ "language.hy": "",
312
323
  "language.is": "Isländisch",
313
324
  "language.it": "Italienisch",
325
+ "language.ka": "",
314
326
  "language.ko": "Koreanisch",
315
327
  "language.nl": "Niederländisch",
328
+ "language.no": "",
329
+ "language.pl": "",
316
330
  "language.pt": "Portugiesisch",
331
+ "language.rm": "",
317
332
  "language.ru": "Russisch",
318
333
  "language.sk": "Slowakisch",
334
+ "language.sv": "",
335
+ "language.tr": "",
336
+ "language.uk": "",
319
337
  "language.zh": "Chinesisch",
320
338
  "map.add.layer": "Eine Ebene hinzufügen",
321
339
  "map.add.layer.catalog": "Aus dem Katalog",
@@ -362,14 +380,13 @@
362
380
  "record.action.duplicate": "",
363
381
  "record.action.duplicating": "",
364
382
  "record.action.rollback": "",
383
+ "record.action.switchLang": "",
365
384
  "record.action.view": "Anzeigen",
366
385
  "record.card.metadata.contact": "",
367
386
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
368
- "record.metadata.feature.catalog": "",
369
387
  "record.feature.catalog.number.total.attribute": "",
370
388
  "record.feature.catalog.number.total.object": "",
371
389
  "record.feature.limit": "Die Vorschau wurde aufgrund zu vieler Elemente deaktiviert",
372
- "record.kind.data": "",
373
390
  "record.kind.dataset": "",
374
391
  "record.kind.reuse": "",
375
392
  "record.kind.service": "",
@@ -412,10 +429,17 @@
412
429
  "record.metadata.creation": "Erstellungsdatum",
413
430
  "record.metadata.details": "Über die Daten",
414
431
  "record.metadata.download": "Downloads",
432
+ "record.metadata.feature.catalog": "",
415
433
  "record.metadata.formats": "Formate",
434
+ "record.metadata.isGeographical": "Geographischer Datensatz",
416
435
  "record.metadata.keywords": "Stichworte",
417
436
  "record.metadata.languages": "Sprachen",
418
437
  "record.metadata.lastUpdate": "Zuletzt aktualisiert am {date}",
438
+ "record.metadata.linked.datasets": "Verknüpfte Datensätze",
439
+ "record.metadata.linked.records": "Verknüpfte Inhalte",
440
+ "record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
441
+ "record.metadata.linked.services": "Verknüpfte Dienste",
442
+ "record.metadata.linked.sourceDatasets": "Quelldatensätze",
419
443
  "record.metadata.links": "Links",
420
444
  "record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
421
445
  "record.metadata.otherConstraints": "Zusätzliche Bedingungen",
@@ -442,8 +466,7 @@
442
466
  "record.metadata.quality.topic.success": "Thema angegeben",
443
467
  "record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
444
468
  "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
445
- "record.metadata.related": "Ähnliche Datensätze",
446
- "record.metadata.related.contents": "",
469
+ "record.metadata.related": "Entdecken Sie den Katalog",
447
470
  "record.metadata.ressources.and.links": "Ressourcen und Links",
448
471
  "record.metadata.sheet": "Weitere Informationen verfügbar unter:",
449
472
  "record.metadata.status": "Status",
@@ -455,7 +478,6 @@
455
478
  "record.metadata.temporalExtent.untilDate": "Bis {end}",
456
479
  "record.metadata.title": "Titel",
457
480
  "record.metadata.topics": "Kategorien",
458
- "record.metadata.type": "Geographischer Datensatz",
459
481
  "record.metadata.uniqueId": "Eindeutige Kennung",
460
482
  "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
461
483
  "record.metadata.updatedOn": "Geändert am",
@@ -559,6 +581,7 @@
559
581
  "service.metadata.other": "",
560
582
  "service.metadata.question": "",
561
583
  "service.metadata.search": "",
584
+ "service.metadata.search.clear": "",
562
585
  "service.metadata.spatialExtent": "",
563
586
  "share.tab.permalink": "Teilen",
564
587
  "share.tab.webComponent": "Integrieren",
@@ -574,7 +597,6 @@
574
597
  "tooltip.html.copy": "HTML kopieren",
575
598
  "tooltip.id.copy": "Eindeutige Kennung kopieren",
576
599
  "tooltip.url.copy": "URL kopieren",
577
- "tooltip.url.open": "URL öffnen",
578
600
  "ui.readLess": "Weniger lesen",
579
601
  "ui.readMore": "Weiterlesen",
580
602
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
@@ -30,6 +30,7 @@
30
30
  "dashboard.labels.mySpace": "My space",
31
31
  "dashboard.records.all": "Datasets",
32
32
  "dashboard.records.hasDraft": "draft",
33
+ "dashboard.records.isMultilingual": "This record is multilingual ({languages})",
33
34
  "dashboard.records.myDraft": "My drafts",
34
35
  "dashboard.records.myRecords": "My datasets",
35
36
  "dashboard.records.search": "Search for \"{searchText}\"",
@@ -204,9 +205,13 @@
204
205
  "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
205
206
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
206
207
  "editor.record.form.license.unknown": "Unknown or absent",
208
+ "editor.record.form.multilingual.activate": "Activate the languages",
209
+ "editor.record.form.multilingual.default": "Default",
207
210
  "editor.record.form.multilingual.enable": "Multilingual Mode",
211
+ "editor.record.form.multilingual.forbidden": "You are not allowed to remove the default language",
208
212
  "editor.record.form.multilingual.open": "Open the multilingual panel",
209
213
  "editor.record.form.multilingual.title": "Translations",
214
+ "editor.record.form.multilingual.validate": "Validate",
210
215
  "editor.record.form.page.accessAndContact": "Information for use",
211
216
  "editor.record.form.page.description": "Dataset description",
212
217
  "editor.record.form.page.resources": "Resources",
@@ -236,8 +241,13 @@
236
241
  "editor.record.loadError.body": "The dataset could not be loaded:",
237
242
  "editor.record.loadError.closeMessage": "Understood",
238
243
  "editor.record.loadError.title": "Error loading dataset",
239
- "editor.record.lock.format": "Record with the format 'service' or 'reuse' are not editable",
240
- "editor.record.lock.reason": "You are not an editor of the allowed groups",
244
+ "editor.record.lock.harvested": "Datasets harvested from an external catalog are not editable",
245
+ "editor.record.lock.owner": "You are not an editor of the allowed groups",
246
+ "editor.record.lock.resourceType": "Records of a type other than dataset are not editable",
247
+ "editor.record.multilingual.confirmation.cancelText": "Keep the language(s)",
248
+ "editor.record.multilingual.confirmation.confirmText": "Remove the language(s)",
249
+ "editor.record.multilingual.confirmation.message": "You are about to remove one or several languages, which will delete all of the related translations and is irreversible. Do you want to proceed?",
250
+ "editor.record.multilingual.confirmation.title": "Remove languages",
241
251
  "editor.record.onlineResource.protocol.other": "Other",
242
252
  "editor.record.onlineResourceError.body": "An error happened while adding the resource:",
243
253
  "editor.record.onlineResourceError.closeMessage": "Understood",
@@ -284,10 +294,6 @@
284
294
  "facets.block.title.tag.default": "Tag",
285
295
  "facets.block.title.th_regions_tree.default": "Regions",
286
296
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> to access this feature</div>",
287
- "feature.catalog.attribute.code": "Code",
288
- "feature.catalog.attribute.description": "Description",
289
- "feature.catalog.attribute.name": "Name",
290
- "feature.catalog.attribute.type": "Type",
291
297
  "input.file.dropFileLabel": "or drop it here",
292
298
  "input.file.orInputUrl": "or create a link to an external resource",
293
299
  "input.file.selectFileLabel": "Select a file ({sizeMB} MB max.)",
@@ -302,20 +308,32 @@
302
308
  "input.image.uploadErrorLabel": "The image could not be uploaded",
303
309
  "input.image.uploadProgressCancel": "Cancel",
304
310
  "input.image.uploadProgressLabel": "Upload in progress...",
311
+ "language.ar": "Arabic",
312
+ "language.az": "Azerbaijani",
305
313
  "language.ca": "Catalan",
306
314
  "language.cs": "Czech",
315
+ "language.cy": "Welsh",
316
+ "language.da": "Danish",
307
317
  "language.de": "German",
308
318
  "language.en": "English",
309
319
  "language.es": "Spanish",
310
320
  "language.fi": "Finnish",
311
321
  "language.fr": "French",
322
+ "language.hy": "Armenian",
312
323
  "language.is": "Icelandic",
313
324
  "language.it": "Italian",
325
+ "language.ka": "Georgian",
314
326
  "language.ko": "Korean",
315
327
  "language.nl": "Dutch",
328
+ "language.no": "Norwegian",
329
+ "language.pl": "Polish",
316
330
  "language.pt": "Portuguese",
331
+ "language.rm": "Romansh",
317
332
  "language.ru": "Russian",
318
333
  "language.sk": "Slovak",
334
+ "language.sv": "Swedish",
335
+ "language.tr": "Turkish",
336
+ "language.uk": "Ukrainian",
319
337
  "language.zh": "Chinese",
320
338
  "map.add.layer": "Add a layer",
321
339
  "map.add.layer.catalog": "From the catalog",
@@ -362,14 +380,13 @@
362
380
  "record.action.duplicate": "Duplicate",
363
381
  "record.action.duplicating": "Duplicating...",
364
382
  "record.action.rollback": "Rollback",
383
+ "record.action.switchLang": "Switch to default",
365
384
  "record.action.view": "View",
366
385
  "record.card.metadata.contact": "Metadata Contact",
367
386
  "record.externalViewer.open": "Open in the external map viewer",
368
- "record.metadata.feature.catalog": "Feature catalog",
369
387
  "record.feature.catalog.number.total.attribute": "Total amount of objects",
370
388
  "record.feature.catalog.number.total.object": "Total amount of attributes",
371
389
  "record.feature.limit": "Preview disabled due to too many elements",
372
- "record.kind.data": "Data",
373
390
  "record.kind.dataset": "Dataset",
374
391
  "record.kind.reuse": "Reuse",
375
392
  "record.kind.service": "Service",
@@ -412,10 +429,17 @@
412
429
  "record.metadata.creation": "Date of creation",
413
430
  "record.metadata.details": "About the data",
414
431
  "record.metadata.download": "Downloads",
432
+ "record.metadata.feature.catalog": "Feature catalog",
415
433
  "record.metadata.formats": "Formats",
434
+ "record.metadata.isGeographical": "Geographical dataset",
416
435
  "record.metadata.keywords": "Keywords",
417
436
  "record.metadata.languages": "Languages",
418
437
  "record.metadata.lastUpdate": "Last updated on {date}",
438
+ "record.metadata.linked.datasets": "Associated datasets",
439
+ "record.metadata.linked.records": "Associated content",
440
+ "record.metadata.linked.reuses": "Associated reuses",
441
+ "record.metadata.linked.services": "Associated services",
442
+ "record.metadata.linked.sourceDatasets": "Source datasets",
419
443
  "record.metadata.links": "Links",
420
444
  "record.metadata.noUsage": "No usage conditions specified for this dataset.",
421
445
  "record.metadata.otherConstraints": "Additional Conditions",
@@ -442,8 +466,7 @@
442
466
  "record.metadata.quality.topic.success": "Topic is specified",
443
467
  "record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
444
468
  "record.metadata.quality.updateFrequency.success": "Update frequency is specified",
445
- "record.metadata.related": "Related datasets",
446
- "record.metadata.related.contents": "Related content",
469
+ "record.metadata.related": "Explore the catalog",
447
470
  "record.metadata.ressources.and.links": "Resources and links",
448
471
  "record.metadata.sheet": "Original metadata",
449
472
  "record.metadata.status": "Status",
@@ -455,7 +478,6 @@
455
478
  "record.metadata.temporalExtent.untilDate": "Until { end }",
456
479
  "record.metadata.title": "Title",
457
480
  "record.metadata.topics": "Categories",
458
- "record.metadata.type": "Geographical dataset",
459
481
  "record.metadata.uniqueId": "Unique Identifier",
460
482
  "record.metadata.updateFrequency": "Data Update Frequency",
461
483
  "record.metadata.updatedOn": "Updated on",
@@ -559,6 +581,7 @@
559
581
  "service.metadata.other": "Other information",
560
582
  "service.metadata.question": "Ask a question",
561
583
  "service.metadata.search": "Search through the layer list",
584
+ "service.metadata.search.clear": "Clear the layer search",
562
585
  "service.metadata.spatialExtent": "Spatial extent",
563
586
  "share.tab.permalink": "Share",
564
587
  "share.tab.webComponent": "Integrate",
@@ -574,11 +597,8 @@
574
597
  "tooltip.html.copy": "Copy HTML",
575
598
  "tooltip.id.copy": "Copy unique identifier",
576
599
  "tooltip.url.copy": "Copy URL",
577
- "tooltip.url.open": "Open URL",
578
600
  "ui.readLess": "Read less",
579
601
  "ui.readMore": "Read more",
580
- "ui.hideFullText": "Hide complete text",
581
- "ui.showAllText": "Show all text",
582
602
  "wfs.feature.limit": "Too many features to display the WFS layer!",
583
603
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
584
604
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
@@ -30,6 +30,7 @@
30
30
  "dashboard.labels.mySpace": "Mi espacio",
31
31
  "dashboard.records.all": "Catálogo",
32
32
  "dashboard.records.hasDraft": "",
33
+ "dashboard.records.isMultilingual": "Este registro es multilingüe ({languages})",
33
34
  "dashboard.records.myDraft": "Mis borradores",
34
35
  "dashboard.records.myRecords": "Mis Registros",
35
36
  "dashboard.records.search": "Buscar \"{searchText}\"",
@@ -204,9 +205,13 @@
204
205
  "editor.record.form.license.odc-by": "",
205
206
  "editor.record.form.license.pddl": "",
206
207
  "editor.record.form.license.unknown": "",
208
+ "editor.record.form.multilingual.activate": "",
209
+ "editor.record.form.multilingual.default": "",
207
210
  "editor.record.form.multilingual.enable": "",
211
+ "editor.record.form.multilingual.forbidden": "",
208
212
  "editor.record.form.multilingual.open": "",
209
213
  "editor.record.form.multilingual.title": "",
214
+ "editor.record.form.multilingual.validate": "",
210
215
  "editor.record.form.page.accessAndContact": "",
211
216
  "editor.record.form.page.description": "",
212
217
  "editor.record.form.page.resources": "",
@@ -236,8 +241,13 @@
236
241
  "editor.record.loadError.body": "",
237
242
  "editor.record.loadError.closeMessage": "",
238
243
  "editor.record.loadError.title": "",
239
- "editor.record.lock.format": "",
240
- "editor.record.lock.reason": "",
244
+ "editor.record.lock.harvested": "",
245
+ "editor.record.lock.owner": "",
246
+ "editor.record.lock.resourceType": "",
247
+ "editor.record.multilingual.confirmation.cancelText": "",
248
+ "editor.record.multilingual.confirmation.confirmText": "",
249
+ "editor.record.multilingual.confirmation.message": "",
250
+ "editor.record.multilingual.confirmation.title": "",
241
251
  "editor.record.onlineResource.protocol.other": "",
242
252
  "editor.record.onlineResourceError.body": "",
243
253
  "editor.record.onlineResourceError.closeMessage": "",
@@ -284,10 +294,6 @@
284
294
  "facets.block.title.tag.default": "",
285
295
  "facets.block.title.th_regions_tree.default": "",
286
296
  "favorite.not.authenticated.tooltip": "",
287
- "feature.catalog.attribute.code": "",
288
- "feature.catalog.attribute.description": "",
289
- "feature.catalog.attribute.name": "",
290
- "feature.catalog.attribute.type": "",
291
297
  "input.file.dropFileLabel": "",
292
298
  "input.file.orInputUrl": "",
293
299
  "input.file.selectFileLabel": "",
@@ -302,20 +308,32 @@
302
308
  "input.image.uploadErrorLabel": "",
303
309
  "input.image.uploadProgressCancel": "",
304
310
  "input.image.uploadProgressLabel": "",
311
+ "language.ar": "",
312
+ "language.az": "",
305
313
  "language.ca": "Catalán",
306
314
  "language.cs": "Checo",
315
+ "language.cy": "",
316
+ "language.da": "",
307
317
  "language.de": "Alemán",
308
318
  "language.en": "Inglés",
309
319
  "language.es": "Español",
310
320
  "language.fi": "Finlandés",
311
321
  "language.fr": "Francés",
322
+ "language.hy": "",
312
323
  "language.is": "Islandés",
313
324
  "language.it": "Italiano",
325
+ "language.ka": "",
314
326
  "language.ko": "Coreano",
315
327
  "language.nl": "Neerlandés",
328
+ "language.no": "",
329
+ "language.pl": "",
316
330
  "language.pt": "Portugués",
331
+ "language.rm": "",
317
332
  "language.ru": "Ruso",
318
333
  "language.sk": "Eslovaco",
334
+ "language.sv": "",
335
+ "language.tr": "",
336
+ "language.uk": "",
319
337
  "language.zh": "Chino",
320
338
  "map.add.layer": "",
321
339
  "map.add.layer.catalog": "",
@@ -362,14 +380,13 @@
362
380
  "record.action.duplicate": "",
363
381
  "record.action.duplicating": "",
364
382
  "record.action.rollback": "",
383
+ "record.action.switchLang": "",
365
384
  "record.action.view": "",
366
385
  "record.card.metadata.contact": "",
367
386
  "record.externalViewer.open": "",
368
- "record.feature.catalog": "",
369
387
  "record.feature.catalog.number.total.attribute": "",
370
388
  "record.feature.catalog.number.total.object": "",
371
389
  "record.feature.limit": "",
372
- "record.kind.data": "",
373
390
  "record.kind.dataset": "",
374
391
  "record.kind.reuse": "",
375
392
  "record.kind.service": "",
@@ -412,10 +429,17 @@
412
429
  "record.metadata.creation": "",
413
430
  "record.metadata.details": "",
414
431
  "record.metadata.download": "",
432
+ "record.metadata.feature.catalog": "",
415
433
  "record.metadata.formats": "",
434
+ "record.metadata.isGeographical": "",
416
435
  "record.metadata.keywords": "",
417
436
  "record.metadata.languages": "",
418
437
  "record.metadata.lastUpdate": "",
438
+ "record.metadata.linked.datasets": "",
439
+ "record.metadata.linked.records": "",
440
+ "record.metadata.linked.reuses": "",
441
+ "record.metadata.linked.services": "",
442
+ "record.metadata.linked.sourceDatasets": "",
419
443
  "record.metadata.links": "",
420
444
  "record.metadata.noUsage": "",
421
445
  "record.metadata.otherConstraints": "",
@@ -443,7 +467,6 @@
443
467
  "record.metadata.quality.updateFrequency.failed": "",
444
468
  "record.metadata.quality.updateFrequency.success": "",
445
469
  "record.metadata.related": "",
446
- "record.metadata.related.contents": "",
447
470
  "record.metadata.ressources.and.links": "Recursos y enlaces",
448
471
  "record.metadata.sheet": "",
449
472
  "record.metadata.status": "",
@@ -455,7 +478,6 @@
455
478
  "record.metadata.temporalExtent.untilDate": "",
456
479
  "record.metadata.title": "",
457
480
  "record.metadata.topics": "",
458
- "record.metadata.type": "",
459
481
  "record.metadata.uniqueId": "",
460
482
  "record.metadata.updateFrequency": "",
461
483
  "record.metadata.updatedOn": "",
@@ -559,6 +581,7 @@
559
581
  "service.metadata.other": "",
560
582
  "service.metadata.question": "",
561
583
  "service.metadata.search": "",
584
+ "service.metadata.search.clear": "",
562
585
  "service.metadata.spatialExtent": "",
563
586
  "share.tab.permalink": "",
564
587
  "share.tab.webComponent": "",
@@ -574,7 +597,6 @@
574
597
  "tooltip.html.copy": "",
575
598
  "tooltip.id.copy": "",
576
599
  "tooltip.url.copy": "",
577
- "tooltip.url.open": "",
578
600
  "ui.readLess": "",
579
601
  "ui.readMore": "",
580
602
  "wfs.feature.limit": "",