@firecms/core 3.4.0-canary.f6a889a → 3.5.0

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/README.md +4 -0
  2. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +6 -1
  3. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +3 -1
  4. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +3 -1
  5. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
  6. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +3 -1
  7. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +3 -1
  8. package/dist/components/EntityCollectionView/useBoardDataController.d.ts +3 -1
  9. package/dist/components/ErrorBoundary.d.ts +1 -3
  10. package/dist/components/LicenseBanner.d.ts +24 -0
  11. package/dist/components/ReferenceTable/ReferenceSelectionTable.d.ts +10 -1
  12. package/dist/components/SelectableTable/filters/filter_text_input.d.ts +30 -0
  13. package/dist/components/SelectableTable/filters/filter_text_input.test.d.ts +1 -0
  14. package/dist/components/common/table_url_params.d.ts +24 -0
  15. package/dist/components/common/useDataSourceTableController.d.ts +9 -1
  16. package/dist/components/common/useTableSearchHelper.d.ts +9 -1
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/contexts/LicenseStatusContext.d.ts +16 -0
  19. package/dist/core/EntityEditView.d.ts +9 -1
  20. package/dist/core/EntityEditViewFormActions.d.ts +1 -1
  21. package/dist/core/index.d.ts +1 -0
  22. package/dist/core/plugin_translations.d.ts +38 -0
  23. package/dist/core/pro_plugins.d.ts +40 -0
  24. package/dist/de-CBOjCvsy.js +707 -0
  25. package/dist/de-CBOjCvsy.js.map +1 -0
  26. package/dist/editor/extensions/Image.d.ts +11 -0
  27. package/dist/editor/index.d.ts +2 -1
  28. package/dist/editor/lazy_editor.d.ts +6 -0
  29. package/dist/editor-BSo_aS1I.js +4563 -0
  30. package/dist/editor-BSo_aS1I.js.map +1 -0
  31. package/dist/form/EntityForm.d.ts +8 -1
  32. package/dist/form/EntityFormActions.d.ts +2 -0
  33. package/dist/fr-DRfttcG0.js +707 -0
  34. package/dist/fr-DRfttcG0.js.map +1 -0
  35. package/dist/hi-DwieOZNf.js +707 -0
  36. package/dist/hi-DwieOZNf.js.map +1 -0
  37. package/dist/hooks/data/delete.d.ts +1 -1
  38. package/dist/hooks/data/save.d.ts +1 -1
  39. package/dist/hooks/data/useCollectionFetch.d.ts +7 -1
  40. package/dist/hooks/data/useEntityFetch.d.ts +9 -1
  41. package/dist/hooks/index.d.ts +2 -0
  42. package/dist/hooks/useLicenseStatus.d.ts +16 -0
  43. package/dist/hooks/useProjectLog.d.ts +11 -6
  44. package/dist/hooks/useTranslation.d.ts +1 -1
  45. package/dist/i18n/__tests__/FireCMSi18nProvider.test.d.ts +1 -0
  46. package/dist/i18n/__tests__/nested_provider_lifecycle.test.d.ts +1 -0
  47. package/dist/index.es.js +4059 -11384
  48. package/dist/index.es.js.map +1 -1
  49. package/dist/index.umd.js +9090 -7610
  50. package/dist/index.umd.js.map +1 -1
  51. package/dist/it-l2KXtx9n.js +707 -0
  52. package/dist/it-l2KXtx9n.js.map +1 -0
  53. package/dist/pl-DPZrdKhi.js +709 -0
  54. package/dist/pl-DPZrdKhi.js.map +1 -0
  55. package/dist/pt-BoHpabw1.js +709 -0
  56. package/dist/pt-BoHpabw1.js.map +1 -0
  57. package/dist/types/analytics.d.ts +1 -1
  58. package/dist/types/collections.d.ts +14 -0
  59. package/dist/types/datasource.d.ts +67 -4
  60. package/dist/types/entities.d.ts +21 -1
  61. package/dist/types/entity_actions.d.ts +6 -0
  62. package/dist/types/entity_callbacks.d.ts +21 -0
  63. package/dist/types/firecms.d.ts +18 -1
  64. package/dist/types/firecms_context.d.ts +8 -0
  65. package/dist/types/index.d.ts +1 -0
  66. package/dist/types/license.d.ts +81 -0
  67. package/dist/types/navigation.d.ts +34 -5
  68. package/dist/types/plugins.d.ts +22 -1
  69. package/dist/types/properties.d.ts +17 -1
  70. package/dist/types/side_entity_controller.d.ts +7 -0
  71. package/dist/types/translations.d.ts +51 -2
  72. package/dist/util/__tests__/collections.test.d.ts +1 -0
  73. package/dist/util/__tests__/urls.test.d.ts +1 -0
  74. package/dist/util/collections.d.ts +1 -1
  75. package/dist/util/date_fns_locales.d.ts +18 -0
  76. package/dist/util/entity_cache.d.ts +11 -0
  77. package/dist/util/index.d.ts +2 -0
  78. package/dist/util/lazy_eager.d.ts +3 -3
  79. package/dist/util/local_storage.d.ts +23 -0
  80. package/dist/util/navigation_from_path.d.ts +7 -0
  81. package/dist/util/navigation_utils.d.ts +87 -3
  82. package/dist/util/parent_references_from_path.d.ts +16 -0
  83. package/dist/util/paths.d.ts +28 -0
  84. package/dist/util/permissions.d.ts +10 -4
  85. package/dist/util/urls.d.ts +22 -0
  86. package/package.json +5 -6
  87. package/src/app/Scaffold.tsx +7 -0
  88. package/src/components/DeleteEntityDialog.tsx +2 -0
  89. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +2 -2
  90. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +1 -0
  91. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +7 -0
  92. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +5 -1
  93. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +12 -0
  94. package/src/components/EntityCollectionView/EntityCollectionView.tsx +66 -15
  95. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +6 -2
  96. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +4 -0
  97. package/src/components/EntityCollectionView/useBoardDataController.tsx +17 -1
  98. package/src/components/EntityCollectionView/utils.ts +4 -4
  99. package/src/components/EntityPreview.tsx +4 -1
  100. package/src/components/ErrorBoundary.tsx +12 -18
  101. package/src/components/LicenseBanner.tsx +287 -0
  102. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -2
  103. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +33 -7
  104. package/src/components/SelectableTable/filters/filter_text_input.test.ts +184 -0
  105. package/src/components/SelectableTable/filters/filter_text_input.ts +71 -0
  106. package/src/components/common/default_entity_actions.tsx +22 -2
  107. package/src/components/common/table_url_params.ts +172 -0
  108. package/src/components/common/useDataSourceTableController.tsx +86 -179
  109. package/src/components/common/useTableSearchHelper.ts +26 -2
  110. package/src/components/index.tsx +1 -0
  111. package/src/contexts/LicenseStatusContext.tsx +50 -0
  112. package/src/contexts/SnackbarProvider.tsx +14 -1
  113. package/src/core/DefaultAppBar.tsx +28 -16
  114. package/src/core/EntityEditView.tsx +20 -3
  115. package/src/core/EntityEditViewFormActions.tsx +3 -2
  116. package/src/core/EntitySidePanel.tsx +8 -4
  117. package/src/core/FireCMS.tsx +73 -47
  118. package/src/core/SideDialogs.tsx +44 -1
  119. package/src/core/index.tsx +1 -0
  120. package/src/core/plugin_translations.ts +87 -0
  121. package/src/core/pro_plugins.ts +79 -0
  122. package/src/editor/components/SlashCommandMenu.tsx +4 -1
  123. package/src/editor/extensions/Image.ts +17 -1
  124. package/src/editor/hooks/useProseMirror.ts +5 -0
  125. package/src/editor/index.ts +11 -1
  126. package/src/editor/lazy_editor.tsx +33 -0
  127. package/src/form/EntityForm.tsx +31 -10
  128. package/src/form/EntityFormActions.tsx +2 -0
  129. package/src/hooks/data/delete.ts +8 -0
  130. package/src/hooks/data/save.ts +6 -1
  131. package/src/hooks/data/useCollectionFetch.tsx +21 -1
  132. package/src/hooks/data/useEntityFetch.tsx +35 -4
  133. package/src/hooks/index.tsx +2 -0
  134. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +9 -9
  135. package/src/hooks/useBuildModeController.tsx +6 -4
  136. package/src/hooks/useBuildNavigationController.tsx +70 -15
  137. package/src/hooks/useFireCMSContext.tsx +7 -3
  138. package/src/hooks/useLicenseStatus.tsx +32 -0
  139. package/src/hooks/useProjectLog.tsx +27 -9
  140. package/src/hooks/useResolvedNavigationFrom.tsx +3 -1
  141. package/src/hooks/useTranslation.ts +3 -1
  142. package/src/hooks/useValidateAuthenticator.tsx +4 -0
  143. package/src/i18n/FireCMSi18nProvider.tsx +204 -33
  144. package/src/i18n/__tests__/FireCMSi18nProvider.test.tsx +91 -0
  145. package/src/i18n/__tests__/nested_provider_lifecycle.test.tsx +67 -0
  146. package/src/internal/useBuildDataSource.ts +37 -15
  147. package/src/internal/useBuildSideEntityController.tsx +19 -5
  148. package/src/locales/de.ts +28 -2
  149. package/src/locales/en.ts +33 -5
  150. package/src/locales/es.ts +28 -2
  151. package/src/locales/fr.ts +28 -2
  152. package/src/locales/hi.ts +28 -2
  153. package/src/locales/it.ts +28 -2
  154. package/src/locales/pl.ts +28 -2
  155. package/src/locales/pt.ts +28 -2
  156. package/src/preview/components/DatePreview.tsx +2 -4
  157. package/src/preview/components/ReferencePreview.tsx +7 -3
  158. package/src/preview/components/StorageThumbnail.tsx +24 -2
  159. package/src/routes/FireCMSRoute.tsx +11 -3
  160. package/src/types/analytics.ts +3 -0
  161. package/src/types/collections.ts +16 -0
  162. package/src/types/datasource.ts +67 -4
  163. package/src/types/entities.ts +24 -1
  164. package/src/types/entity_actions.tsx +6 -0
  165. package/src/types/entity_callbacks.ts +24 -0
  166. package/src/types/firecms.tsx +19 -1
  167. package/src/types/firecms_context.tsx +9 -0
  168. package/src/types/index.ts +1 -0
  169. package/src/types/license.ts +90 -0
  170. package/src/types/navigation.ts +35 -5
  171. package/src/types/plugins.tsx +23 -1
  172. package/src/types/properties.ts +17 -0
  173. package/src/types/side_entity_controller.tsx +7 -0
  174. package/src/types/translations.ts +51 -2
  175. package/src/util/__tests__/collections.test.ts +32 -0
  176. package/src/util/__tests__/urls.test.ts +131 -0
  177. package/src/util/collections.ts +1 -1
  178. package/src/util/date_fns_locales.ts +168 -0
  179. package/src/util/entities.ts +3 -1
  180. package/src/util/entity_cache.ts +28 -2
  181. package/src/util/index.ts +2 -0
  182. package/src/util/lazy_eager.tsx +30 -8
  183. package/src/util/local_storage.ts +52 -0
  184. package/src/util/navigation_from_path.ts +25 -2
  185. package/src/util/navigation_utils.ts +214 -3
  186. package/src/util/parent_references_from_path.ts +42 -3
  187. package/src/util/paths.ts +40 -3
  188. package/src/util/permissions.ts +22 -10
  189. package/src/util/previews.ts +8 -1
  190. package/src/util/resolutions.ts +8 -0
  191. package/src/util/urls.ts +52 -0
  192. package/src/util/useStorageUploadController.tsx +6 -1
@@ -224,12 +224,14 @@ export function buildSidePanelsFromUrl(path: string, collections: EntityCollecti
224
224
  let sidePanel: EntitySidePanelProps<any> | undefined = undefined;
225
225
  let lastCollectionPath = "";
226
226
  let lastCollectionId: string | undefined = undefined;
227
+ let lastCollectionSegments: string[] | undefined = undefined;
227
228
  for (let i = 0; i < navigationViewsForPath.length; i++) {
228
229
  const navigationEntry = navigationViewsForPath[i];
229
230
 
230
231
  if (navigationEntry.type === "collection") {
231
232
  lastCollectionPath = navigationEntry.path;
232
233
  lastCollectionId = navigationEntry.collection.id;
234
+ lastCollectionSegments = navigationEntry.pathSegments;
233
235
  }
234
236
 
235
237
  const previousEntry = navigationViewsForPath[i - 1];
@@ -237,6 +239,7 @@ export function buildSidePanelsFromUrl(path: string, collections: EntityCollecti
237
239
  sidePanel = {
238
240
  path: navigationEntry.path,
239
241
  fullIdPath: navigationEntry.fullIdPath,
242
+ pathSegments: navigationEntry.pathSegments,
240
243
  entityId: navigationEntry.entityId,
241
244
  copy: false,
242
245
  width: navigationEntry.parentCollection?.sideDialogWidth
@@ -259,6 +262,9 @@ export function buildSidePanelsFromUrl(path: string, collections: EntityCollecti
259
262
  sidePanel = {
260
263
  path: lastCollectionPath,
261
264
  fullIdPath: lastCollectionId,
265
+ // A new entity still needs unambiguous segments: it may be created inside a
266
+ // subcollection whose parent id contains "/".
267
+ pathSegments: lastCollectionSegments,
262
268
  copy: false
263
269
  }
264
270
  }
@@ -275,11 +281,17 @@ const propsToSidePanel = (props: EntitySidePanelProps,
275
281
  locationSearch: string
276
282
  ): SideDialogPanelProps => {
277
283
 
278
- const collectionPath = removeInitialAndTrailingSlashes(props.path);
284
+ // The URL is the ESCAPED representation of the chain — it is what `buildSidePanelsFromUrl`
285
+ // and `FireCMSRoute` parse back on reload, on a deep link, and on every pathname change.
286
+ // `props.path` is the RAW datasource path, so a parent entity id containing "/" reads back
287
+ // there as extra collection/entity hops and resolves to a different entity entirely.
288
+ // `fullIdPath` carries the same chain with its ids already escaped, which is what it is
289
+ // threaded alongside `path` for.
290
+ const urlChain = removeInitialAndTrailingSlashes(props.fullIdPath ?? props.path);
279
291
 
280
292
  const urlPath = props.entityId
281
- ? buildUrlCollectionPath(`${collectionPath}/${encodeEntityId(props.entityId)}${props.selectedTab ? "/" + props.selectedTab : ""}${locationSearch}#${SIDE_URL_HASH}`)
282
- : buildUrlCollectionPath(`${collectionPath}${locationSearch}#${NEW_URL_HASH}`);
293
+ ? buildUrlCollectionPath(`${urlChain}/${encodeEntityId(props.entityId)}${props.selectedTab ? "/" + props.selectedTab : ""}${locationSearch}#${SIDE_URL_HASH}`)
294
+ : buildUrlCollectionPath(`${urlChain}${locationSearch}#${NEW_URL_HASH}`);
283
295
 
284
296
  const resolvedPanelProps: EntitySidePanelProps<any> = {
285
297
  ...props,
@@ -288,10 +300,12 @@ const propsToSidePanel = (props: EntitySidePanelProps,
288
300
 
289
301
  const entityViewWidth = getEntityViewWidth(props, smallLayout, customizationController, authController);
290
302
  return {
291
- key: `${props.path}/${props.entityId}`,
303
+ // Built from the escaped chain so that two different chains which happen to flatten
304
+ // to the same raw string are still two different panels.
305
+ key: `${urlChain}/${props.entityId ? encodeEntityId(props.entityId) : ""}`,
292
306
  component: undefined, // Lazy render in SideDialogs for better performance
293
307
  urlPath: urlPath,
294
- parentUrlPath: buildUrlCollectionPath(collectionPath),
308
+ parentUrlPath: buildUrlCollectionPath(urlChain),
295
309
  width: entityViewWidth,
296
310
  onClose: props.onClose,
297
311
  additional: resolvedPanelProps
package/src/locales/de.ts CHANGED
@@ -65,8 +65,23 @@ export const de: FireCMSTranslations = {
65
65
  select_from: "Aus {{name}} auswählen",
66
66
  done: "Fertig",
67
67
  log_out: "Abmelden",
68
- license_needed: "Lizenz erforderlich",
69
- license_description: "Sie benötigen eine gültige Lizenz, um FireCMS PRO zu verwenden. Bitte wenden Sie sich an {{email}} für weitere Informationen.",
68
+ license_trial_banner: "FireCMS PRO-Testphase: noch {{days}} Tage in Produktion.",
69
+ license_trial_banner_one: "FireCMS PRO-Testphase: noch {{days}} Tag in Produktion.",
70
+ license_expired_banner: "Ihre PRO-Testphase ist am {{date}} abgelaufen. PRO-Funktionen wie Schema-Editor, Import/Export und Verlauf sind pausiert; Ihre Daten und Sammlungen funktionieren weiterhin.",
71
+ license_expired_banner_undated: "Ihre PRO-Testphase ist abgelaufen. PRO-Funktionen wie Schema-Editor, Import/Export und Verlauf sind pausiert; Ihre Daten und Sammlungen funktionieren weiterhin.",
72
+ license_invalid_project_banner: "Dieser Lizenzschlüssel ist nicht mit dem Projekt {{projectId}} verknüpft. Bis dahin sind die PRO-Funktionen pausiert.",
73
+ license_invalid_project_banner_unnamed: "Dieser Lizenzschlüssel ist nicht mit diesem Projekt verknüpft. Bis dahin sind die PRO-Funktionen pausiert.",
74
+ license_over_quota_banner: "Die Lizenz dieses Projekts deckt {{licensed}} Projekte in Produktion ab, und dieses gehört nicht dazu. PRO-Funktionen wie Schema-Editor, Import/Export und Verlauf sind pausiert; Ihre Daten und Sammlungen funktionieren weiterhin.",
75
+ license_over_quota_banner_one: "Die Lizenz dieses Projekts deckt {{licensed}} Projekt in Produktion ab, und das ist ein anderes. PRO-Funktionen wie Schema-Editor, Import/Export und Verlauf sind pausiert; Ihre Daten und Sammlungen funktionieren weiterhin.",
76
+ license_get_license: "Lizenz erwerben",
77
+ license_update_license: "Lizenz aktualisieren",
78
+ license_add_project_to_license: "Zu Ihrer Lizenz hinzufügen",
79
+ pro_suggestion_user_management: "{{users}} Personen nutzen dieses CMS. FireCMS PRO bringt eine Benutzerverwaltung mit Rollen und Berechtigungen pro Sammlung, 30 Tage kostenlos in Produktion.",
80
+ pro_suggestion_user_management_uncounted: "FireCMS PRO bringt eine Benutzerverwaltung mit Rollen und Berechtigungen pro Sammlung, 30 Tage kostenlos in Produktion.",
81
+ pro_suggestion_entity_history: "FireCMS PRO speichert jede Änderung an Ihren Inhalten mit ihrem Autor und kann sie rückgängig machen. 30 Tage kostenlos in Produktion.",
82
+ pro_suggestion_learn_more: "So fügen Sie es hinzu",
83
+ pro_features_paused: "PRO-Funktionen pausiert",
84
+ user_management_paused_description: "Die Verwaltung von Benutzern und Rollen ist Teil von FireCMS PRO. Ihre bestehenden Benutzer und Rollen legen weiterhin fest, wer sich anmelden darf und was er tun kann. Bearbeiten können Sie sie wieder, sobald dieses Projekt eine Lizenz hat.",
70
85
  column_cannot_be_edited: "Diese Spalte kann nicht direkt bearbeitet werden",
71
86
  close: "Schließen",
72
87
  unsaved_local_changes: "Ungespeicherte lokale Änderungen",
@@ -389,6 +404,10 @@ export const de: FireCMSTranslations = {
389
404
  download: "Herunterladen",
390
405
  large_number_of_documents: "Diese Sammlung hat eine große Anzahl von Dokumenten ({{count}}).",
391
406
  include_undefined_values: "Undefinierte Werte einschließen",
407
+ export_apply_filter_sort: "Nur Ergebnisse exportieren, die dem aktuellen Filter/der aktuellen Sortierung entsprechen",
408
+ export_all_entities: "Alle Entitäten",
409
+ export_selected_entities: "Ausgewählte Entitäten ({{count}})",
410
+ export_error: "Die Daten konnten nicht exportiert werden: {{message}}",
392
411
  submit: "Einreichen",
393
412
 
394
413
  no_filterable_properties: "Keine filterbaren Eigenschaften verfügbar",
@@ -438,6 +457,7 @@ export const de: FireCMSTranslations = {
438
457
  roles_menu: "Rollen",
439
458
  project_settings: "Projekteinstellungen",
440
459
  firestore_manager: "Firestore-Manager",
460
+ datatalk: "DataTalk",
441
461
  manage_your_firestore_data: "Deine Firestore-Daten verwalten",
442
462
 
443
463
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -454,6 +474,7 @@ export const de: FireCMSTranslations = {
454
474
  not_the_admin_panel: "nicht auf das Admin-Panel.",
455
475
  join_our_newsletter: "Melden Sie sich für unseren Newsletter an. Kein Spam, nur wichtige Updates!",
456
476
  by_signing_in_you_agree_to_our: "Mit der Anmeldung stimmen Sie unseren",
477
+ please_accept_the_terms_to_continue: "Bitte akzeptieren Sie die Nutzungsbedingungen, um fortzufahren",
457
478
  terms_and_conditions: "Allgemeinen Geschäftsbedingungen",
458
479
  and_our: "und unserer",
459
480
  privacy_policy: "Datenschutzerklärung",
@@ -496,6 +517,7 @@ export const de: FireCMSTranslations = {
496
517
  licensed_projects_lowercase: "lizenzierte projekte",
497
518
  manage: "Verwalten",
498
519
  update_payment_method: "Zahlungsmethode aktualisieren",
520
+ stripe_portal_error: "Stripe konnte nicht geöffnet werden: {{message}}",
499
521
  your_firecms_cloud_projects: "Ihre FireCMS Cloud Projekte",
500
522
  status_active: "Aktiv",
501
523
  status_trialing: "Testphase",
@@ -586,6 +608,10 @@ export const de: FireCMSTranslations = {
586
608
  order_property_not_found: "Eigenschaft \"{{property}}\" existiert nicht oder ist keine Zahlen-Eigenschaft. Bitte wählen Sie eine gültige Eigenschaft oder löschen Sie die Auswahl.",
587
609
  no_number_properties: "Keine Zahlen-Eigenschaften gefunden. Fügen Sie eine Zahlen-Eigenschaft hinzu, um die Sortierung zu aktivieren.",
588
610
  order_property_description: "Wählen Sie eine Zahlen-Eigenschaft, um die Reihenfolge der Elemente beizubehalten",
611
+ image_property: "Bild-Eigenschaft",
612
+ image_property_not_found: "Eigenschaft \"{{property}}\" existiert nicht oder ist keine Bild-Eigenschaft. Bitte wählen Sie eine gültige Eigenschaft oder löschen Sie die Auswahl.",
613
+ no_image_properties: "Keine Bild-Eigenschaften gefunden. Fügen Sie eine Speicher- oder Bild-URL-Eigenschaft hinzu, um sie als Vorschaubild zu verwenden.",
614
+ image_property_description: "Wählen Sie die Eigenschaft, die als Vorschaubild in den Ansichten Karten und Kanban verwendet wird. Wenn nicht festgelegt, wird automatisch die erste passende Bild-Eigenschaft verwendet.",
589
615
  display_settings: "Anzeigeeinstellungen",
590
616
  default_row_size: "Standard-Zeilengröße",
591
617
  side_dialog_width: "Seitendialog-Breite",
package/src/locales/en.ts CHANGED
@@ -73,8 +73,23 @@ export const en: FireCMSTranslations = {
73
73
  select_from: "Select from {{name}}",
74
74
  done: "Done",
75
75
  log_out: "Log out",
76
- license_needed: "License needed",
77
- license_description: "You need a valid license to use FireCMS PRO. Please reach out at {{email}} for more information.",
76
+ license_trial_banner: "FireCMS PRO trial: {{days}} days left in production.",
77
+ license_trial_banner_one: "FireCMS PRO trial: {{days}} day left in production.",
78
+ license_expired_banner: "Your PRO trial ended on {{date}}. PRO features such as the schema editor, import/export and history are paused; your data and collections still work.",
79
+ license_expired_banner_undated: "Your PRO trial has ended. PRO features such as the schema editor, import/export and history are paused; your data and collections still work.",
80
+ license_invalid_project_banner: "This license key is not linked to project {{projectId}}. PRO features are paused until it is.",
81
+ license_invalid_project_banner_unnamed: "This license key is not linked to this project. PRO features are paused until it is.",
82
+ license_over_quota_banner: "This project's license pays for {{licensed}} projects in production, and this is not one of them. PRO features such as the schema editor, import/export and history are paused; your data and collections still work.",
83
+ license_over_quota_banner_one: "This project's license pays for {{licensed}} project in production, and it is a different one. PRO features such as the schema editor, import/export and history are paused; your data and collections still work.",
84
+ license_get_license: "Get a license",
85
+ license_update_license: "Update your license",
86
+ license_add_project_to_license: "Add it to your license",
87
+ pro_suggestion_user_management: "{{users}} people use this CMS. FireCMS PRO adds user management, with roles and per-collection permissions, free for 30 days in production.",
88
+ pro_suggestion_user_management_uncounted: "FireCMS PRO adds user management, with roles and per-collection permissions, free for 30 days in production.",
89
+ pro_suggestion_entity_history: "FireCMS PRO keeps a history of every change to your content and who made it, and lets you revert it. Free for 30 days in production.",
90
+ pro_suggestion_learn_more: "See how to add it",
91
+ pro_features_paused: "PRO features paused",
92
+ user_management_paused_description: "Managing users and roles is part of FireCMS PRO. Your existing users and roles still decide who can sign in and what they can do, and you can edit them again once this project has a license.",
78
93
  column_cannot_be_edited: "This column can't be edited directly",
79
94
  close: "Close",
80
95
  unsaved_local_changes: "Unsaved Local changes",
@@ -388,15 +403,19 @@ export const en: FireCMSTranslations = {
388
403
  data_imported_successfully: "Data imported successfully",
389
404
  export: "Export",
390
405
  export_data: "Export data",
391
- download_table_csv: "Download the the content of this table as a CSV",
406
+ download_table_csv: "Download the content of this table as a CSV",
392
407
  csv: "CSV",
393
408
  json: "JSON",
394
409
  dates_as_timestamps: "Dates as timestamps",
395
410
  dates_as_strings: "Dates as strings",
396
411
  flatten_arrays: "Flatten arrays",
397
412
  download: "Download",
398
- large_number_of_documents: "This collections has a large number of documents ({{count}}).",
413
+ large_number_of_documents: "This collection has a large number of documents ({{count}}).",
399
414
  include_undefined_values: "Include undefined values",
415
+ export_apply_filter_sort: "Only export results matching the current filter/sort",
416
+ export_all_entities: "All entities",
417
+ export_selected_entities: "Selected entities ({{count}})",
418
+ export_error: "Could not export the data: {{message}}",
400
419
  submit: "Submit",
401
420
 
402
421
  no_filterable_properties: "No filterable properties available",
@@ -447,6 +466,9 @@ export const en: FireCMSTranslations = {
447
466
  project_settings: "Project settings",
448
467
  firestore_manager: "Firestore Manager",
449
468
  manage_your_firestore_data: "Manage your Firestore data",
469
+ // A product name. It is a key rather than a literal so a locale that uses a
470
+ // different script can transliterate it; most will inherit this value.
471
+ datatalk: "DataTalk",
450
472
 
451
473
  // ─── FireCMS Cloud Login ──────────────────────────────────────
452
474
  build_admin_panel_in_minutes: "Build Your Firebase Admin Panel in Minutes",
@@ -462,6 +484,7 @@ export const en: FireCMSTranslations = {
462
484
  not_the_admin_panel: "not the admin panel.",
463
485
  join_our_newsletter: "Join our newsletter. No spam, only important updates!",
464
486
  by_signing_in_you_agree_to_our: "By signing in you agree to our",
487
+ please_accept_the_terms_to_continue: "Please accept the terms and conditions to continue",
465
488
  terms_and_conditions: "Terms and Conditions",
466
489
  and_our: "and our",
467
490
  privacy_policy: "Privacy policy",
@@ -493,7 +516,7 @@ export const en: FireCMSTranslations = {
493
516
  // --- SaaS Subscriptions ---
494
517
  subscriptions: "Subscriptions",
495
518
  manage_your_subscriptions_in_stripe: "Manage your subscriptions in Stripe",
496
- go_to_your_stripe_portal: "Go you your user Stripe portal to view billing history. Note that you can also manage subscriptions associated with the logged in user.",
519
+ go_to_your_stripe_portal: "Go to your Stripe portal to view your billing history. You can also manage the subscriptions of the logged-in user there.",
497
520
  your_pro_licenses: "Your PRO licenses",
498
521
  create_new_license: "Create new license",
499
522
  create_subscriptions_in_this_section: "Create subscriptions in this section only for self hosted FireCMS PRO. If you are using FireCMS Cloud, you can upgrade your project from within the project settings.",
@@ -504,6 +527,7 @@ export const en: FireCMSTranslations = {
504
527
  licensed_projects_lowercase: "licensed projects",
505
528
  manage: "Manage",
506
529
  update_payment_method: "Update payment method",
530
+ stripe_portal_error: "Could not open Stripe: {{message}}",
507
531
  your_firecms_cloud_projects: "Your FireCMS Cloud projects",
508
532
  status_active: "Active",
509
533
  status_trialing: "Trialing",
@@ -598,6 +622,10 @@ export const en: FireCMSTranslations = {
598
622
  order_property_not_found: "Property \"{{property}}\" does not exist or is not a number property. Please select a valid property or clear the selection.",
599
623
  no_number_properties: "No number properties found. Add a number property to enable ordering.",
600
624
  order_property_description: "Select a number property to persist the order of items",
625
+ image_property: "Image Property",
626
+ image_property_not_found: "Property \"{{property}}\" does not exist or is not an image property. Please select a valid property or clear the selection.",
627
+ no_image_properties: "No image properties found. Add a storage or URL image property to use as a thumbnail.",
628
+ image_property_description: "Select the property used as the thumbnail image in Cards and Kanban view modes. If not set, the first matching image property will be used automatically.",
601
629
  display_settings: "Display settings",
602
630
  default_row_size: "Default row size",
603
631
  side_dialog_width: "Side dialog width",
package/src/locales/es.ts CHANGED
@@ -73,8 +73,23 @@ export const es: FireCMSTranslations = {
73
73
  select_from: "Seleccionar de {{name}}",
74
74
  done: "Hecho",
75
75
  log_out: "Cerrar sesión",
76
- license_needed: "Licencia necesaria",
77
- license_description: "Necesitas una licencia válida para usar FireCMS PRO. Por favor, contáctanos en {{email}} para obtener más información.",
76
+ license_trial_banner: "Prueba de FireCMS PRO: quedan {{days}} días en producción.",
77
+ license_trial_banner_one: "Prueba de FireCMS PRO: queda {{days}} día en producción.",
78
+ license_expired_banner: "Tu prueba de PRO terminó el {{date}}. Las funciones PRO, como el editor de esquemas, la importación/exportación y el historial, están en pausa; tus datos y colecciones siguen funcionando.",
79
+ license_expired_banner_undated: "Tu prueba de PRO ha terminado. Las funciones PRO, como el editor de esquemas, la importación/exportación y el historial, están en pausa; tus datos y colecciones siguen funcionando.",
80
+ license_invalid_project_banner: "Esta clave de licencia no está vinculada al proyecto {{projectId}}. Las funciones PRO están en pausa hasta que lo esté.",
81
+ license_invalid_project_banner_unnamed: "Esta clave de licencia no está vinculada a este proyecto. Las funciones PRO están en pausa hasta que lo esté.",
82
+ license_over_quota_banner: "La licencia de este proyecto cubre {{licensed}} proyectos en producción y este no es uno de ellos. Las funciones PRO, como el editor de esquemas, la importación/exportación y el historial, están en pausa; tus datos y colecciones siguen funcionando.",
83
+ license_over_quota_banner_one: "La licencia de este proyecto cubre {{licensed}} proyecto en producción y es otro distinto. Las funciones PRO, como el editor de esquemas, la importación/exportación y el historial, están en pausa; tus datos y colecciones siguen funcionando.",
84
+ license_get_license: "Obtener una licencia",
85
+ license_update_license: "Actualizar tu licencia",
86
+ license_add_project_to_license: "Añadirlo a tu licencia",
87
+ pro_suggestion_user_management: "{{users}} personas usan este CMS. FireCMS PRO añade gestión de usuarios, con roles y permisos por colección, gratis durante 30 días en producción.",
88
+ pro_suggestion_user_management_uncounted: "FireCMS PRO añade gestión de usuarios, con roles y permisos por colección, gratis durante 30 días en producción.",
89
+ pro_suggestion_entity_history: "FireCMS PRO guarda el historial de cada cambio en tu contenido y de quién lo hizo, y te deja revertirlo. Gratis durante 30 días en producción.",
90
+ pro_suggestion_learn_more: "Cómo añadirlo",
91
+ pro_features_paused: "Funciones PRO en pausa",
92
+ user_management_paused_description: "La gestión de usuarios y roles forma parte de FireCMS PRO. Tus usuarios y roles actuales siguen decidiendo quién puede iniciar sesión y qué puede hacer, y podrás editarlos de nuevo cuando este proyecto tenga una licencia.",
78
93
  column_cannot_be_edited: "Esta columna no se puede editar directamente",
79
94
  close: "Cerrar",
80
95
  unsaved_local_changes: "Cambios locales sin guardar",
@@ -397,6 +412,10 @@ export const es: FireCMSTranslations = {
397
412
  download: "Descargar",
398
413
  large_number_of_documents: "Esta colección posee un gran número de documentos ({{count}}).",
399
414
  include_undefined_values: "Incluir valores omitidos (undefined)",
415
+ export_apply_filter_sort: "Exportar solo los resultados que coinciden con el filtro/orden actual",
416
+ export_all_entities: "Todas las entidades",
417
+ export_selected_entities: "Entidades seleccionadas ({{count}})",
418
+ export_error: "No se pudieron exportar los datos: {{message}}",
400
419
  submit: "Enviar",
401
420
 
402
421
  no_filterable_properties: "No hay propiedades filtrables disponibles",
@@ -446,6 +465,7 @@ export const es: FireCMSTranslations = {
446
465
  roles_menu: "Roles",
447
466
  project_settings: "Ajustes del proyecto",
448
467
  firestore_manager: "Gestor de Firestore",
468
+ datatalk: "DataTalk",
449
469
  manage_your_firestore_data: "Gestiona tus datos de Firestore",
450
470
 
451
471
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -462,6 +482,7 @@ export const es: FireCMSTranslations = {
462
482
  not_the_admin_panel: "no en el panel de administración.",
463
483
  join_our_newsletter: "Únete a nuestro newsletter. ¡Sin spam, solo actualizaciones importantes!",
464
484
  by_signing_in_you_agree_to_our: "Al iniciar sesión aceptas nuestros",
485
+ please_accept_the_terms_to_continue: "Acepta los términos y condiciones para continuar",
465
486
  terms_and_conditions: "Términos y Condiciones",
466
487
  and_our: "y nuestra",
467
488
  privacy_policy: "Política de Privacidad",
@@ -504,6 +525,7 @@ export const es: FireCMSTranslations = {
504
525
  licensed_projects_lowercase: "proyectos licenciados",
505
526
  manage: "Administrar",
506
527
  update_payment_method: "Actualizar método de pago",
528
+ stripe_portal_error: "No se pudo abrir Stripe: {{message}}",
507
529
  your_firecms_cloud_projects: "Tus proyectos de FireCMS Cloud",
508
530
  status_active: "Activo",
509
531
  status_trialing: "En prueba",
@@ -598,6 +620,10 @@ export const es: FireCMSTranslations = {
598
620
  order_property_not_found: "La propiedad \"{{property}}\" no existe o no es una propiedad numérica. Selecciona una propiedad válida o borra la selección.",
599
621
  no_number_properties: "No se encontraron propiedades numéricas. Agrega una propiedad numérica para habilitar el ordenamiento.",
600
622
  order_property_description: "Selecciona una propiedad numérica para mantener el orden de los elementos",
623
+ image_property: "Propiedad de imagen",
624
+ image_property_not_found: "La propiedad \"{{property}}\" no existe o no es una propiedad de imagen. Selecciona una propiedad válida o borra la selección.",
625
+ no_image_properties: "No se encontraron propiedades de imagen. Agrega una propiedad de almacenamiento o URL de imagen para usarla como miniatura.",
626
+ image_property_description: "Selecciona la propiedad usada como miniatura en las vistas de Tarjetas y Kanban. Si no se establece, se usará automáticamente la primera propiedad de imagen que coincida.",
601
627
  display_settings: "Configuración de visualización",
602
628
  default_row_size: "Tamaño de fila predeterminado",
603
629
  side_dialog_width: "Ancho del diálogo lateral",
package/src/locales/fr.ts CHANGED
@@ -65,8 +65,23 @@ export const fr: FireCMSTranslations = {
65
65
  select_from: "Sélectionner depuis {{name}}",
66
66
  done: "Terminé",
67
67
  log_out: "Se déconnecter",
68
- license_needed: "Licence requise",
69
- license_description: "Vous avez besoin d'une licence valide pour utiliser FireCMS PRO. Veuillez nous contacter à {{email}} pour plus d'informations.",
68
+ license_trial_banner: "Essai de FireCMS PRO : {{days}} jours restants en production.",
69
+ license_trial_banner_one: "Essai de FireCMS PRO : {{days}} jour restant en production.",
70
+ license_expired_banner: "Votre essai PRO a pris fin le {{date}}. Les fonctions PRO, comme l'éditeur de schémas, l'import/export et l'historique, sont en pause ; vos données et vos collections fonctionnent toujours.",
71
+ license_expired_banner_undated: "Votre essai PRO a pris fin. Les fonctions PRO, comme l'éditeur de schémas, l'import/export et l'historique, sont en pause ; vos données et vos collections fonctionnent toujours.",
72
+ license_invalid_project_banner: "Cette clé de licence n'est pas associée au projet {{projectId}}. Les fonctionnalités PRO sont en pause d'ici là.",
73
+ license_invalid_project_banner_unnamed: "Cette clé de licence n'est pas associée à ce projet. Les fonctionnalités PRO sont en pause d'ici là.",
74
+ license_over_quota_banner: "La licence de ce projet couvre {{licensed}} projets en production, et celui-ci n'en fait pas partie. Les fonctions PRO, comme l'éditeur de schémas, l'import/export et l'historique, sont en pause ; vos données et vos collections fonctionnent toujours.",
75
+ license_over_quota_banner_one: "La licence de ce projet couvre {{licensed}} projet en production, et c'en est un autre. Les fonctions PRO, comme l'éditeur de schémas, l'import/export et l'historique, sont en pause ; vos données et vos collections fonctionnent toujours.",
76
+ license_get_license: "Obtenir une licence",
77
+ license_update_license: "Mettre à jour votre licence",
78
+ license_add_project_to_license: "L'ajouter à votre licence",
79
+ pro_suggestion_user_management: "{{users}} personnes utilisent ce CMS. FireCMS PRO ajoute la gestion des utilisateurs, avec des rôles et des permissions par collection, gratuite pendant 30 jours en production.",
80
+ pro_suggestion_user_management_uncounted: "FireCMS PRO ajoute la gestion des utilisateurs, avec des rôles et des permissions par collection, gratuite pendant 30 jours en production.",
81
+ pro_suggestion_entity_history: "FireCMS PRO conserve l'historique de chaque modification de votre contenu et de son auteur, et vous permet de l'annuler. Gratuit pendant 30 jours en production.",
82
+ pro_suggestion_learn_more: "Comment l'ajouter",
83
+ pro_features_paused: "Fonctionnalités PRO en pause",
84
+ user_management_paused_description: "La gestion des utilisateurs et des rôles fait partie de FireCMS PRO. Vos utilisateurs et rôles existants déterminent toujours qui peut se connecter et ce qu'il peut faire, et vous pourrez à nouveau les modifier dès que ce projet aura une licence.",
70
85
  column_cannot_be_edited: "Cette colonne ne peut pas être modifiée directement",
71
86
  close: "Fermer",
72
87
  unsaved_local_changes: "Modifications locales non enregistrées",
@@ -389,6 +404,10 @@ export const fr: FireCMSTranslations = {
389
404
  download: "Télécharger",
390
405
  large_number_of_documents: "Cette collection contient un grand nombre de documents ({{count}}).",
391
406
  include_undefined_values: "Inclure les valeurs non définies",
407
+ export_apply_filter_sort: "N'exporter que les résultats correspondant au filtre/tri actuel",
408
+ export_all_entities: "Toutes les entités",
409
+ export_selected_entities: "Entités sélectionnées ({{count}})",
410
+ export_error: "Impossible d'exporter les données: {{message}}",
392
411
  submit: "Soumettre",
393
412
 
394
413
  no_filterable_properties: "Aucune propriété filtrable disponible",
@@ -438,6 +457,7 @@ export const fr: FireCMSTranslations = {
438
457
  roles_menu: "Rôles",
439
458
  project_settings: "Paramètres du projet",
440
459
  firestore_manager: "Gestionnaire Firestore",
460
+ datatalk: "DataTalk",
441
461
  manage_your_firestore_data: "Gérez vos données Firestore",
442
462
 
443
463
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -454,6 +474,7 @@ export const fr: FireCMSTranslations = {
454
474
  not_the_admin_panel: "pas sur le panneau d'administration.",
455
475
  join_our_newsletter: "Inscrivez-vous à notre newsletter. Pas de spam, uniquement des mises à jour importantes !",
456
476
  by_signing_in_you_agree_to_our: "En vous connectant, vous acceptez nos",
477
+ please_accept_the_terms_to_continue: "Veuillez accepter les conditions générales pour continuer",
457
478
  terms_and_conditions: "Conditions générales",
458
479
  and_our: "et notre",
459
480
  privacy_policy: "Politique de confidentialité",
@@ -496,6 +517,7 @@ export const fr: FireCMSTranslations = {
496
517
  licensed_projects_lowercase: "projets sous licence",
497
518
  manage: "Gérer",
498
519
  update_payment_method: "Mettre à jour le mode de paiement",
520
+ stripe_portal_error: "Impossible d'ouvrir Stripe : {{message}}",
499
521
  your_firecms_cloud_projects: "Vos projets FireCMS Cloud",
500
522
  status_active: "Actif",
501
523
  status_trialing: "En période d'essai",
@@ -586,6 +608,10 @@ export const fr: FireCMSTranslations = {
586
608
  order_property_not_found: "La propriété \"{{property}}\" n'existe pas ou n'est pas une propriété numérique. Veuillez sélectionner une propriété valide ou effacer la sélection.",
587
609
  no_number_properties: "Aucune propriété numérique trouvée. Ajoutez une propriété numérique pour activer le tri.",
588
610
  order_property_description: "Sélectionnez une propriété numérique pour conserver l'ordre des éléments",
611
+ image_property: "Propriété d'image",
612
+ image_property_not_found: "La propriété \"{{property}}\" n'existe pas ou n'est pas une propriété d'image. Veuillez sélectionner une propriété valide ou effacer la sélection.",
613
+ no_image_properties: "Aucune propriété d'image trouvée. Ajoutez une propriété de stockage ou d'URL d'image à utiliser comme miniature.",
614
+ image_property_description: "Sélectionnez la propriété utilisée comme miniature dans les vues Cartes et Kanban. Si elle n'est pas définie, la première propriété d'image correspondante sera utilisée automatiquement.",
589
615
  display_settings: "Paramètres d'affichage",
590
616
  default_row_size: "Taille de ligne par défaut",
591
617
  side_dialog_width: "Largeur du dialogue latéral",
package/src/locales/hi.ts CHANGED
@@ -65,8 +65,23 @@ export const hi: FireCMSTranslations = {
65
65
  select_from: "{{name}} से चुनें",
66
66
  done: "हो गया",
67
67
  log_out: "लॉग आउट",
68
- license_needed: "लाइसेंस आवश्यक है",
69
- license_description: "FireCMS PRO का उपयोग करने के लिए आपको एक वैध लाइसेंस की आवश्यकता है। कृपया अधिक जानकारी के लिए {{email}} पर संपर्क करें।",
68
+ license_trial_banner: "FireCMS PRO ट्रायल: प्रोडक्शन में {{days}} दिन बाकी हैं।",
69
+ license_trial_banner_one: "FireCMS PRO ट्रायल: प्रोडक्शन में {{days}} दिन बाकी है।",
70
+ license_expired_banner: "आपका PRO ट्रायल {{date}} को समाप्त हो गया। स्कीमा एडिटर, इम्पोर्ट/एक्सपोर्ट और हिस्ट्री जैसी PRO सुविधाएँ रोक दी गई हैं; आपका डेटा और कलेक्शन्स काम करते रहेंगे।",
71
+ license_expired_banner_undated: "आपका PRO ट्रायल समाप्त हो गया है। स्कीमा एडिटर, इम्पोर्ट/एक्सपोर्ट और हिस्ट्री जैसी PRO सुविधाएँ रोक दी गई हैं; आपका डेटा और कलेक्शन्स काम करते रहेंगे।",
72
+ license_invalid_project_banner: "यह लाइसेंस कुंजी प्रोजेक्ट {{projectId}} से जुड़ी नहीं है। जब तक यह जुड़ नहीं जाती, PRO सुविधाएँ रुकी रहेंगी।",
73
+ license_invalid_project_banner_unnamed: "यह लाइसेंस कुंजी इस प्रोजेक्ट से जुड़ी नहीं है। जब तक यह जुड़ नहीं जाती, PRO सुविधाएँ रुकी रहेंगी।",
74
+ license_over_quota_banner: "इस प्रोजेक्ट का लाइसेंस प्रोडक्शन में {{licensed}} प्रोजेक्ट कवर करता है, और यह उनमें से एक नहीं है। स्कीमा एडिटर, इम्पोर्ट/एक्सपोर्ट और हिस्ट्री जैसी PRO सुविधाएँ रोक दी गई हैं; आपका डेटा और कलेक्शन्स काम करते रहेंगे।",
75
+ license_over_quota_banner_one: "इस प्रोजेक्ट का लाइसेंस प्रोडक्शन में {{licensed}} प्रोजेक्ट कवर करता है, और वह कोई दूसरा प्रोजेक्ट है। स्कीमा एडिटर, इम्पोर्ट/एक्सपोर्ट और हिस्ट्री जैसी PRO सुविधाएँ रोक दी गई हैं; आपका डेटा और कलेक्शन्स काम करते रहेंगे।",
76
+ license_get_license: "लाइसेंस लें",
77
+ license_update_license: "अपना लाइसेंस अपडेट करें",
78
+ license_add_project_to_license: "इसे अपने लाइसेंस में जोड़ें",
79
+ pro_suggestion_user_management: "इस CMS को {{users}} लोग इस्तेमाल करते हैं। FireCMS PRO यूज़र मैनेजमेंट जोड़ता है, जिसमें रोल्स और हर कलेक्शन के लिए अनुमतियाँ हैं, प्रोडक्शन में 30 दिन मुफ़्त।",
80
+ pro_suggestion_user_management_uncounted: "FireCMS PRO यूज़र मैनेजमेंट जोड़ता है, जिसमें रोल्स और हर कलेक्शन के लिए अनुमतियाँ हैं, प्रोडक्शन में 30 दिन मुफ़्त।",
81
+ pro_suggestion_entity_history: "FireCMS PRO आपके कंटेंट के हर बदलाव की हिस्ट्री रखता है, किसने बदला यह भी, और आप उसे वापस ले सकते हैं। प्रोडक्शन में 30 दिन मुफ़्त।",
82
+ pro_suggestion_learn_more: "इसे जोड़ने का तरीका देखें",
83
+ pro_features_paused: "PRO सुविधाएँ रुकी हुई हैं",
84
+ user_management_paused_description: "यूज़र्स और रोल्स का प्रबंधन FireCMS PRO का हिस्सा है। आपके मौजूदा यूज़र्स और रोल्स अब भी तय करते हैं कि कौन साइन इन कर सकता है और क्या कर सकता है। इस प्रोजेक्ट को लाइसेंस मिलते ही आप उन्हें फिर से संपादित कर सकेंगे।",
70
85
  column_cannot_be_edited: "इस कॉलम को सीधे संपादित नहीं किया जा सकता",
71
86
  close: "बंद करें",
72
87
  unsaved_local_changes: "सहेजे नहीं गए स्थानीय परिवर्तन",
@@ -389,6 +404,10 @@ export const hi: FireCMSTranslations = {
389
404
  download: "डाउनलोड",
390
405
  large_number_of_documents: "इस संग्रह में बड़ी संख्या में दस्तावेज़ हैं ({{count}})।",
391
406
  include_undefined_values: "अपरिभाषित (undefined) मान शामिल करें",
407
+ export_apply_filter_sort: "केवल वर्तमान फ़िल्टर/सॉर्ट से मेल खाने वाले परिणाम निर्यात करें",
408
+ export_all_entities: "सभी इकाइयाँ",
409
+ export_selected_entities: "चयनित इकाइयाँ ({{count}})",
410
+ export_error: "डेटा निर्यात नहीं किया जा सका: {{message}}",
392
411
  submit: "सबमिट करें",
393
412
 
394
413
  no_filterable_properties: "कोई फ़िल्टर करने योग्य गुण उपलब्ध नहीं हैं",
@@ -438,6 +457,7 @@ export const hi: FireCMSTranslations = {
438
457
  roles_menu: "भूमिकाएँ",
439
458
  project_settings: "परियोजना सेटिंग",
440
459
  firestore_manager: "Firestore मैनेजर",
460
+ datatalk: "DataTalk",
441
461
  manage_your_firestore_data: "अपने Firestore डेटा का प्रबंधन करें",
442
462
 
443
463
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -454,6 +474,7 @@ export const hi: FireCMSTranslations = {
454
474
  not_the_admin_panel: "व्यवस्थापक पैनल पर नहीं।",
455
475
  join_our_newsletter: "हमारे न्यूज़लेटर से जुड़ें। बिना किसी स्पैम के, केवल महत्वपूर्ण अपडेट!",
456
476
  by_signing_in_you_agree_to_our: "साइन इन करके आप हमारे नियमों और शर्तों से सहमत होते हैं",
477
+ please_accept_the_terms_to_continue: "जारी रखने के लिए कृपया नियम और शर्तें स्वीकार करें",
457
478
  terms_and_conditions: "नियम और शर्तें",
458
479
  and_our: "और हमारी गोपनीयता नीति",
459
480
  privacy_policy: "गोपनीयता नीति",
@@ -496,6 +517,7 @@ export const hi: FireCMSTranslations = {
496
517
  licensed_projects_lowercase: "लाइसेंस प्राप्त प्रोजेक्ट्स",
497
518
  manage: "प्रबंधित करें",
498
519
  update_payment_method: "भुगतान विधि अपडेट करें",
520
+ stripe_portal_error: "Stripe नहीं खुल सका: {{message}}",
499
521
  your_firecms_cloud_projects: "आपके FireCMS Cloud प्रोजेक्ट्स",
500
522
  status_active: "सक्रिय",
501
523
  status_trialing: "परीक्षण (ट्रायल)",
@@ -586,6 +608,10 @@ export const hi: FireCMSTranslations = {
586
608
  order_property_not_found: "प्रॉपर्टी \"{{property}}\" मौजूद नहीं है या एक संख्या प्रॉपर्टी नहीं है। कृपया एक वैध प्रॉपर्टी चुनें या चयन साफ़ करें।",
587
609
  no_number_properties: "कोई संख्या प्रॉपर्टी नहीं मिली। क्रम सक्षम करने के लिए एक संख्या प्रॉपर्टी जोड़ें।",
588
610
  order_property_description: "आइटम का क्रम बनाए रखने के लिए एक संख्या प्रॉपर्टी चुनें",
611
+ image_property: "इमेज प्रॉपर्टी",
612
+ image_property_not_found: "प्रॉपर्टी \"{{property}}\" मौजूद नहीं है या एक इमेज प्रॉपर्टी नहीं है। कृपया एक वैध प्रॉपर्टी चुनें या चयन साफ़ करें।",
613
+ no_image_properties: "कोई इमेज प्रॉपर्टी नहीं मिली। थंबनेल के रूप में उपयोग करने के लिए एक स्टोरेज या URL इमेज प्रॉपर्टी जोड़ें।",
614
+ image_property_description: "कार्ड्स और कानबन व्यू मोड में थंबनेल इमेज के रूप में उपयोग की जाने वाली प्रॉपर्टी चुनें। यदि सेट नहीं किया गया है, तो पहली मिलान वाली इमेज प्रॉपर्टी स्वचालित रूप से उपयोग की जाएगी।",
589
615
  display_settings: "प्रदर्शन सेटिंग्स",
590
616
  default_row_size: "डिफ़ॉल्ट पंक्ति आकार",
591
617
  side_dialog_width: "साइड डायलॉग चौड़ाई",
package/src/locales/it.ts CHANGED
@@ -65,8 +65,23 @@ export const it: FireCMSTranslations = {
65
65
  select_from: "Seleziona da {{name}}",
66
66
  done: "Fatto",
67
67
  log_out: "Esci",
68
- license_needed: "Licenza necessaria",
69
- license_description: "Hai bisogno di una licenza valida per utilizzare FireCMS PRO. Contattaci a {{email}} per maggiori informazioni.",
68
+ license_trial_banner: "Prova di FireCMS PRO: restano {{days}} giorni in produzione.",
69
+ license_trial_banner_one: "Prova di FireCMS PRO: resta {{days}} giorno in produzione.",
70
+ license_expired_banner: "La tua prova PRO è terminata il {{date}}. Le funzioni PRO, come l'editor degli schemi, l'importazione/esportazione e la cronologia, sono in pausa; i tuoi dati e le tue collezioni continuano a funzionare.",
71
+ license_expired_banner_undated: "La tua prova PRO è terminata. Le funzioni PRO, come l'editor degli schemi, l'importazione/esportazione e la cronologia, sono in pausa; i tuoi dati e le tue collezioni continuano a funzionare.",
72
+ license_invalid_project_banner: "Questa chiave di licenza non è collegata al progetto {{projectId}}. Le funzionalità PRO restano in pausa finché non lo sarà.",
73
+ license_invalid_project_banner_unnamed: "Questa chiave di licenza non è collegata a questo progetto. Le funzionalità PRO restano in pausa finché non lo sarà.",
74
+ license_over_quota_banner: "La licenza di questo progetto copre {{licensed}} progetti in produzione, e questo non è tra quelli. Le funzioni PRO, come l'editor degli schemi, l'importazione/esportazione e la cronologia, sono in pausa; i tuoi dati e le tue collezioni continuano a funzionare.",
75
+ license_over_quota_banner_one: "La licenza di questo progetto copre {{licensed}} progetto in produzione, ed è un altro. Le funzioni PRO, come l'editor degli schemi, l'importazione/esportazione e la cronologia, sono in pausa; i tuoi dati e le tue collezioni continuano a funzionare.",
76
+ license_get_license: "Ottieni una licenza",
77
+ license_update_license: "Aggiorna la tua licenza",
78
+ license_add_project_to_license: "Aggiungilo alla tua licenza",
79
+ pro_suggestion_user_management: "{{users}} persone usano questo CMS. FireCMS PRO aggiunge la gestione degli utenti, con ruoli e permessi per collezione, gratis per 30 giorni in produzione.",
80
+ pro_suggestion_user_management_uncounted: "FireCMS PRO aggiunge la gestione degli utenti, con ruoli e permessi per collezione, gratis per 30 giorni in produzione.",
81
+ pro_suggestion_entity_history: "FireCMS PRO conserva la cronologia di ogni modifica ai tuoi contenuti e di chi l'ha fatta, e ti permette di annullarla. Gratis per 30 giorni in produzione.",
82
+ pro_suggestion_learn_more: "Come aggiungerlo",
83
+ pro_features_paused: "Funzionalità PRO in pausa",
84
+ user_management_paused_description: "La gestione di utenti e ruoli fa parte di FireCMS PRO. I tuoi utenti e ruoli attuali continuano a decidere chi può accedere e cosa può fare, e potrai modificarli di nuovo quando questo progetto avrà una licenza.",
70
85
  column_cannot_be_edited: "Questa colonna non può essere modificata direttamente",
71
86
  close: "Chiudi",
72
87
  unsaved_local_changes: "Modifiche locali non salvate",
@@ -389,6 +404,10 @@ export const it: FireCMSTranslations = {
389
404
  download: "Scarica",
390
405
  large_number_of_documents: "Questa collezione contiene un numero elevato di documenti ({{count}})",
391
406
  include_undefined_values: "Includi valori non definiti",
407
+ export_apply_filter_sort: "Esporta solo i risultati che corrispondono al filtro/ordinamento attuale",
408
+ export_all_entities: "Tutte le entità",
409
+ export_selected_entities: "Entità selezionate ({{count}})",
410
+ export_error: "Impossibile esportare i dati: {{message}}",
392
411
  submit: "Invia",
393
412
 
394
413
  no_filterable_properties: "Nessuna proprietà filtrabile disponibile",
@@ -438,6 +457,7 @@ export const it: FireCMSTranslations = {
438
457
  roles_menu: "Ruoli",
439
458
  project_settings: "Impostazioni del progetto",
440
459
  firestore_manager: "Gestore Firestore",
460
+ datatalk: "DataTalk",
441
461
  manage_your_firestore_data: "Gestisci i tuoi dati Firestore",
442
462
 
443
463
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -454,6 +474,7 @@ export const it: FireCMSTranslations = {
454
474
  not_the_admin_panel: "non sul pannello di amministrazione.",
455
475
  join_our_newsletter: "Iscriviti alla nostra newsletter. Niente spam, solo aggiornamenti importanti!",
456
476
  by_signing_in_you_agree_to_our: "Accedendo accetti i nostri",
477
+ please_accept_the_terms_to_continue: "Accetta i termini e le condizioni per continuare",
457
478
  terms_and_conditions: "Termini e Condizioni",
458
479
  and_our: "e la nostra",
459
480
  privacy_policy: "Informativa sulla privacy",
@@ -496,6 +517,7 @@ export const it: FireCMSTranslations = {
496
517
  licensed_projects_lowercase: "progetti con licenza",
497
518
  manage: "Gestisci",
498
519
  update_payment_method: "Aggiorna metodo di pagamento",
520
+ stripe_portal_error: "Impossibile aprire Stripe: {{message}}",
499
521
  your_firecms_cloud_projects: "I tuoi progetti FireCMS Cloud",
500
522
  status_active: "Attivo",
501
523
  status_trialing: "In prova",
@@ -586,6 +608,10 @@ export const it: FireCMSTranslations = {
586
608
  order_property_not_found: "La proprietà \"{{property}}\" non esiste o non è una proprietà numerica. Seleziona una proprietà valida o cancella la selezione.",
587
609
  no_number_properties: "Nessuna proprietà numerica trovata. Aggiungi una proprietà numerica per abilitare l'ordinamento.",
588
610
  order_property_description: "Seleziona una proprietà numerica per mantenere l'ordine degli elementi",
611
+ image_property: "Proprietà immagine",
612
+ image_property_not_found: "La proprietà \"{{property}}\" non esiste o non è una proprietà immagine. Seleziona una proprietà valida o cancella la selezione.",
613
+ no_image_properties: "Nessuna proprietà immagine trovata. Aggiungi una proprietà di archiviazione o URL immagine da usare come miniatura.",
614
+ image_property_description: "Seleziona la proprietà utilizzata come miniatura nelle viste Schede e Kanban. Se non impostata, verrà utilizzata automaticamente la prima proprietà immagine corrispondente.",
589
615
  display_settings: "Impostazioni di visualizzazione",
590
616
  default_row_size: "Dimensione riga predefinita",
591
617
  side_dialog_width: "Larghezza del dialogo laterale",
package/src/locales/pl.ts CHANGED
@@ -65,8 +65,23 @@ export const pl: FireCMSTranslations = {
65
65
  select_from: "Wybierz z {{name}}",
66
66
  done: "Gotowe",
67
67
  log_out: "Wyloguj się",
68
- license_needed: "Wymagana licencja",
69
- license_description: "Aby korzystać z FireCMS PRO, potrzebujesz ważnej licencji. Skontaktuj się z nami pod adresem {{email}}, aby uzyskać więcej informacji.",
68
+ license_trial_banner: "Okres próbny FireCMS PRO w produkcji kończy się za {{days}} dni.",
69
+ license_trial_banner_one: "Okres próbny FireCMS PRO w produkcji kończy się za {{days}} dzień.",
70
+ license_expired_banner: "Twój okres próbny PRO zakończył się {{date}}. Funkcje PRO, takie jak edytor schematów, import/eksport i historia, są wstrzymane; Twoje dane i kolekcje nadal działają.",
71
+ license_expired_banner_undated: "Twój okres próbny PRO się zakończył. Funkcje PRO, takie jak edytor schematów, import/eksport i historia, są wstrzymane; Twoje dane i kolekcje nadal działają.",
72
+ license_invalid_project_banner: "Ten klucz licencyjny nie jest powiązany z projektem {{projectId}}. Do tego czasu funkcje PRO są wstrzymane.",
73
+ license_invalid_project_banner_unnamed: "Ten klucz licencyjny nie jest powiązany z tym projektem. Do tego czasu funkcje PRO są wstrzymane.",
74
+ license_over_quota_banner: "Liczba projektów w produkcji objętych licencją tego projektu: {{licensed}}. Ten projekt do nich nie należy. Funkcje PRO, takie jak edytor schematów, import/eksport i historia, są wstrzymane; Twoje dane i kolekcje nadal działają.",
75
+ license_over_quota_banner_one: "Licencja tego projektu obejmuje {{licensed}} projekt w produkcji i jest to inny projekt. Funkcje PRO, takie jak edytor schematów, import/eksport i historia, są wstrzymane; Twoje dane i kolekcje nadal działają.",
76
+ license_get_license: "Kup licencję",
77
+ license_update_license: "Zaktualizuj licencję",
78
+ license_add_project_to_license: "Dodaj go do licencji",
79
+ pro_suggestion_user_management: "Liczba osób korzystających z tego CMS: {{users}}. FireCMS PRO dodaje zarządzanie użytkownikami z rolami i uprawnieniami dla każdej kolekcji, bezpłatnie przez 30 dni w produkcji.",
80
+ pro_suggestion_user_management_uncounted: "FireCMS PRO dodaje zarządzanie użytkownikami z rolami i uprawnieniami dla każdej kolekcji, bezpłatnie przez 30 dni w produkcji.",
81
+ pro_suggestion_entity_history: "FireCMS PRO zapisuje historię każdej zmiany treści wraz z jej autorem i pozwala ją cofnąć. Bezpłatnie przez 30 dni w produkcji.",
82
+ pro_suggestion_learn_more: "Zobacz, jak to dodać",
83
+ pro_features_paused: "Funkcje PRO wstrzymane",
84
+ user_management_paused_description: "Zarządzanie użytkownikami i rolami jest częścią FireCMS PRO. Dotychczasowi użytkownicy i role nadal decydują o tym, kto może się zalogować i co może robić. Edytować je będzie można ponownie, gdy ten projekt otrzyma licencję.",
70
85
  column_cannot_be_edited: "Ta kolumna nie może być edytowana bezpośrednio",
71
86
  close: "Zamknij",
72
87
  unsaved_local_changes: "Niezapisane zmiany lokalne",
@@ -389,6 +404,10 @@ export const pl: FireCMSTranslations = {
389
404
  download: "Pobierz",
390
405
  large_number_of_documents: "Ta kolekcja zawiera dużą liczbę dokumentów ({{count}}).",
391
406
  include_undefined_values: "Uwzględnij niezdefiniowane wartości",
407
+ export_apply_filter_sort: "Eksportuj tylko wyniki zgodne z aktualnym filtrem/sortowaniem",
408
+ export_all_entities: "Wszystkie encje",
409
+ export_selected_entities: "Zaznaczone encje ({{count}})",
410
+ export_error: "Nie udało się wyeksportować danych: {{message}}",
392
411
  submit: "Wyślij",
393
412
 
394
413
  no_filterable_properties: "Brak dostępnych właściwości do filtrowania",
@@ -438,6 +457,7 @@ export const pl: FireCMSTranslations = {
438
457
  roles_menu: "Role",
439
458
  project_settings: "Ustawienia projektu",
440
459
  firestore_manager: "Menedżer Firestore",
460
+ datatalk: "DataTalk",
441
461
  manage_your_firestore_data: "Zarządzaj danymi w Firestore",
442
462
 
443
463
  // ─── FireCMS Cloud Login ──────────────────────────────────────
@@ -454,6 +474,7 @@ export const pl: FireCMSTranslations = {
454
474
  not_the_admin_panel: "a nie na panelu administracyjnym.",
455
475
  join_our_newsletter: "Dołącz do naszego newslettera. Bez spamu, tylko ważne aktualizacje!",
456
476
  by_signing_in_you_agree_to_our: "Logując się, akceptujesz nasz",
477
+ please_accept_the_terms_to_continue: "Zaakceptuj regulamin, aby kontynuować",
457
478
  terms_and_conditions: "Regulamin",
458
479
  and_our: "oraz naszą",
459
480
  privacy_policy: "Politykę prywatności",
@@ -496,6 +517,7 @@ export const pl: FireCMSTranslations = {
496
517
  licensed_projects_lowercase: "licencjonowanych projektów",
497
518
  manage: "Zarządzaj",
498
519
  update_payment_method: "Zaktualizuj metodę płatności",
520
+ stripe_portal_error: "Nie udało się otworzyć Stripe: {{message}}",
499
521
  your_firecms_cloud_projects: "Twoje projekty FireCMS Cloud",
500
522
  status_active: "Aktywna",
501
523
  status_trialing: "Okres próbny",
@@ -590,6 +612,10 @@ export const pl: FireCMSTranslations = {
590
612
  order_property_not_found: "Właściwość „{{property}}” nie istnieje lub nie jest właściwością liczbową. Wybierz prawidłową właściwość lub wyczyść wybór.",
591
613
  no_number_properties: "Nie znaleziono właściwości liczbowych. Dodaj właściwość liczbową, aby włączyć sortowanie.",
592
614
  order_property_description: "Wybierz właściwość liczbową, aby zachować kolejność elementów",
615
+ image_property: "Właściwość obrazu",
616
+ image_property_not_found: "Właściwość „{{property}}” nie istnieje lub nie jest właściwością obrazu. Wybierz prawidłową właściwość lub wyczyść wybór.",
617
+ no_image_properties: "Nie znaleziono właściwości obrazu. Dodaj właściwość przechowywania lub adresu URL obrazu, aby użyć jej jako miniatury.",
618
+ image_property_description: "Wybierz właściwość używaną jako miniatura w widokach Karty i Kanban. Jeśli nie zostanie ustawiona, automatycznie zostanie użyta pierwsza pasująca właściwość obrazu.",
593
619
  display_settings: "Ustawienia wyświetlania",
594
620
  default_row_size: "Domyślny rozmiar wiersza",
595
621
  side_dialog_width: "Szerokość okna bocznego",