@firecms/core 3.3.0-canary.3ea2cd2 → 3.3.0-canary.42ba35b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/useApp.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +4 -3
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +2 -1
- package/dist/components/EntityPreview.d.ts +3 -1
- package/dist/core/DefaultDrawer.d.ts +10 -3
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/form/field_bindings/GeopointFieldBinding.d.ts +5 -0
- package/dist/form/index.d.ts +1 -0
- package/dist/index.es.js +2090 -743
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +2089 -742
- package/dist/index.umd.js.map +1 -1
- package/dist/locales/pl.d.ts +2 -0
- package/dist/preview/index.d.ts +1 -0
- package/dist/preview/property_previews/GeopointPropertyPreview.d.ts +4 -0
- package/dist/types/collections.d.ts +17 -0
- package/dist/types/translations.d.ts +9 -1
- package/dist/util/entities.d.ts +1 -0
- package/dist/util/geopoint.d.ts +22 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/navigation_blocking.d.ts +22 -0
- package/dist/util/navigation_from_path.d.ts +10 -0
- package/dist/util/navigation_utils.d.ts +20 -0
- package/package.json +16 -9
- package/src/app/Scaffold.tsx +47 -45
- package/src/app/useApp.tsx +1 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +2 -1
- package/src/components/EntityCollectionTable/column_utils.tsx +11 -19
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +1 -1
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +5 -2
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +4 -1
- package/src/components/EntityCollectionView/FiltersDialog.tsx +39 -28
- package/src/components/EntityPreview.tsx +41 -40
- package/src/components/ReferenceWidget.tsx +1 -1
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +2 -2
- package/src/components/VirtualTable/VirtualTable.tsx +19 -8
- package/src/components/common/useDataSourceTableController.tsx +66 -10
- package/src/core/DefaultDrawer.tsx +150 -64
- package/src/core/DrawerNavigationGroup.tsx +27 -29
- package/src/core/DrawerNavigationItem.tsx +10 -12
- package/src/core/EntityEditView.tsx +57 -32
- package/src/core/field_configs.tsx +15 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +1 -1
- package/src/form/field_bindings/GeopointFieldBinding.tsx +139 -0
- package/src/form/index.tsx +1 -0
- package/src/hooks/useBuildNavigationController.tsx +5 -1
- package/src/i18n/FireCMSi18nProvider.tsx +2 -0
- package/src/internal/useBuildSideEntityController.tsx +2 -1
- package/src/locales/de.ts +11 -3
- package/src/locales/en.ts +11 -3
- package/src/locales/es.ts +11 -3
- package/src/locales/fr.ts +11 -3
- package/src/locales/hi.ts +11 -3
- package/src/locales/it.ts +11 -3
- package/src/locales/pl.ts +730 -0
- package/src/locales/pt.ts +11 -3
- package/src/preview/PropertyPreview.tsx +12 -0
- package/src/preview/index.ts +1 -0
- package/src/preview/property_previews/GeopointPropertyPreview.tsx +23 -0
- package/src/routes/FireCMSRoute.tsx +44 -25
- package/src/types/collections.ts +18 -0
- package/src/types/translations.ts +9 -1
- package/src/util/entities.ts +13 -0
- package/src/util/geopoint.ts +81 -0
- package/src/util/index.ts +1 -0
- package/src/util/navigation_blocking.ts +45 -0
- package/src/util/navigation_from_path.ts +23 -6
- package/src/util/navigation_utils.ts +36 -2
- package/src/util/parent_references_from_path.ts +4 -2
- package/src/util/resolutions.ts +3 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { CloseIcon, IconButton, TextField } from "@firecms/ui";
|
|
4
|
+
import { FieldProps, GeoPoint } from "../../types";
|
|
5
|
+
import { FieldHelperText, LabelWithIcon } from "../components";
|
|
6
|
+
import { PropertyIdCopyTooltip } from "../../components";
|
|
7
|
+
import { useClearRestoreValue } from "../useClearRestoreValue";
|
|
8
|
+
import { getIconForProperty } from "../../util";
|
|
9
|
+
import { formatGeoPoint, getGeoPointCoordinates, parseGeoPoint } from "../../util/geopoint";
|
|
10
|
+
|
|
11
|
+
type GeopointFieldBindingProps = FieldProps<GeoPoint>;
|
|
12
|
+
|
|
13
|
+
export function GeopointFieldBinding({
|
|
14
|
+
propertyKey,
|
|
15
|
+
value,
|
|
16
|
+
setValue,
|
|
17
|
+
error,
|
|
18
|
+
showError,
|
|
19
|
+
disabled,
|
|
20
|
+
autoFocus,
|
|
21
|
+
property,
|
|
22
|
+
includeDescription,
|
|
23
|
+
size = "large"
|
|
24
|
+
}: GeopointFieldBindingProps) {
|
|
25
|
+
|
|
26
|
+
const coordinates = getGeoPointCoordinates(value);
|
|
27
|
+
const canClear = Boolean((property as any).clearable);
|
|
28
|
+
const [latitude, setLatitude] = useState<string>(coordinates ? coordinates.latitude.toString() : "");
|
|
29
|
+
const [longitude, setLongitude] = useState<string>(coordinates ? coordinates.longitude.toString() : "");
|
|
30
|
+
const [localError, setLocalError] = useState<string | undefined>();
|
|
31
|
+
const skipSyncRef = useRef(false);
|
|
32
|
+
|
|
33
|
+
useClearRestoreValue({
|
|
34
|
+
property,
|
|
35
|
+
value,
|
|
36
|
+
setValue
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (skipSyncRef.current) {
|
|
41
|
+
skipSyncRef.current = false;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const nextCoordinates = getGeoPointCoordinates(value);
|
|
45
|
+
setLatitude(nextCoordinates ? nextCoordinates.latitude.toString() : "");
|
|
46
|
+
setLongitude(nextCoordinates ? nextCoordinates.longitude.toString() : "");
|
|
47
|
+
}, [value]);
|
|
48
|
+
|
|
49
|
+
const updateGeoPoint = (nextLatitude: string, nextLongitude: string) => {
|
|
50
|
+
skipSyncRef.current = true;
|
|
51
|
+
setLatitude(nextLatitude);
|
|
52
|
+
setLongitude(nextLongitude);
|
|
53
|
+
|
|
54
|
+
const trimmedLatitude = nextLatitude.trim();
|
|
55
|
+
const trimmedLongitude = nextLongitude.trim();
|
|
56
|
+
|
|
57
|
+
if (!trimmedLatitude && !trimmedLongitude) {
|
|
58
|
+
setLocalError(undefined);
|
|
59
|
+
setValue(null);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const parsed = parseGeoPoint(`${trimmedLatitude}, ${trimmedLongitude}`);
|
|
64
|
+
|
|
65
|
+
if (parsed.error) {
|
|
66
|
+
setLocalError(parsed.error);
|
|
67
|
+
setValue(null);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
setLocalError(undefined);
|
|
72
|
+
setValue(parsed.point);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const handleClear = (event?: React.MouseEvent) => {
|
|
76
|
+
if (event) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
event.stopPropagation();
|
|
79
|
+
}
|
|
80
|
+
updateGeoPoint("", "");
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const resolvedError = localError ?? error;
|
|
84
|
+
const shouldShowError = Boolean(resolvedError) || Boolean(showError && error);
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<>
|
|
88
|
+
<PropertyIdCopyTooltip propertyKey={propertyKey}>
|
|
89
|
+
<div className="flex flex-col gap-2">
|
|
90
|
+
<div className="mt-1">
|
|
91
|
+
<LabelWithIcon
|
|
92
|
+
icon={getIconForProperty(property, "small")}
|
|
93
|
+
required={property.validation?.required}
|
|
94
|
+
title={property.name}
|
|
95
|
+
className={shouldShowError ? "text-red-500 dark:text-red-500" : "text-text-secondary dark:text-text-secondary-dark"}
|
|
96
|
+
/>
|
|
97
|
+
</div>
|
|
98
|
+
<div className="grid grid-cols-1 gap-2 md:grid-cols-2">
|
|
99
|
+
<TextField
|
|
100
|
+
size={size}
|
|
101
|
+
value={latitude}
|
|
102
|
+
onChange={(event) => updateGeoPoint(event.target.value, longitude)}
|
|
103
|
+
autoFocus={autoFocus}
|
|
104
|
+
label={"Latitude"}
|
|
105
|
+
type="number"
|
|
106
|
+
disabled={disabled}
|
|
107
|
+
endAdornment={canClear ? (
|
|
108
|
+
<IconButton onClick={handleClear}>
|
|
109
|
+
<CloseIcon />
|
|
110
|
+
</IconButton>
|
|
111
|
+
) : undefined}
|
|
112
|
+
error={shouldShowError && Boolean(resolvedError)}
|
|
113
|
+
/>
|
|
114
|
+
<TextField
|
|
115
|
+
size={size}
|
|
116
|
+
value={longitude}
|
|
117
|
+
onChange={(event) => updateGeoPoint(latitude, event.target.value)}
|
|
118
|
+
label={"Longitude"}
|
|
119
|
+
type="number"
|
|
120
|
+
disabled={disabled}
|
|
121
|
+
error={shouldShowError && Boolean(resolvedError)}
|
|
122
|
+
/>
|
|
123
|
+
</div>
|
|
124
|
+
{value && !resolvedError && (
|
|
125
|
+
<div className="text-xs text-text-secondary dark:text-text-secondary-dark font-mono">
|
|
126
|
+
{formatGeoPoint(value)}
|
|
127
|
+
</div>
|
|
128
|
+
)}
|
|
129
|
+
</div>
|
|
130
|
+
</PropertyIdCopyTooltip>
|
|
131
|
+
|
|
132
|
+
<FieldHelperText includeDescription={includeDescription}
|
|
133
|
+
showError={shouldShowError}
|
|
134
|
+
error={resolvedError}
|
|
135
|
+
disabled={disabled}
|
|
136
|
+
property={property}/>
|
|
137
|
+
</>
|
|
138
|
+
);
|
|
139
|
+
}
|
package/src/form/index.tsx
CHANGED
|
@@ -11,6 +11,7 @@ export { StorageUploadFieldBinding } from "./field_bindings/StorageUploadFieldBi
|
|
|
11
11
|
export { TextFieldBinding } from "./field_bindings/TextFieldBinding";
|
|
12
12
|
export { SwitchFieldBinding } from "./field_bindings/SwitchFieldBinding";
|
|
13
13
|
export { DateTimeFieldBinding } from "./field_bindings/DateTimeFieldBinding";
|
|
14
|
+
export { GeopointFieldBinding } from "./field_bindings/GeopointFieldBinding";
|
|
14
15
|
export { ReferenceFieldBinding } from "./field_bindings/ReferenceFieldBinding";
|
|
15
16
|
export { ReferenceAsStringFieldBinding } from "./field_bindings/ReferenceAsStringFieldBinding";
|
|
16
17
|
export { MapFieldBinding } from "./field_bindings/MapFieldBinding";
|
|
@@ -414,7 +414,11 @@ export function useBuildNavigationController<EC extends EntityCollection, USER e
|
|
|
414
414
|
const baseCollection = getCollectionByPathOrId(removeInitialAndTrailingSlashes(idOrPath), collections);
|
|
415
415
|
|
|
416
416
|
const userOverride = includeUserOverride ? userConfigPersistence?.getCollectionConfig(idOrPath) : undefined;
|
|
417
|
-
|
|
417
|
+
let overriddenCollection = baseCollection;
|
|
418
|
+
if (baseCollection && userOverride) {
|
|
419
|
+
const { properties, ...rest } = userOverride;
|
|
420
|
+
overriddenCollection = mergeDeep(baseCollection, rest);
|
|
421
|
+
}
|
|
418
422
|
|
|
419
423
|
let result: Partial<EntityCollection> | undefined = overriddenCollection;
|
|
420
424
|
|
|
@@ -8,6 +8,7 @@ import { fr } from "../locales/fr";
|
|
|
8
8
|
import { it } from "../locales/it";
|
|
9
9
|
import { hi } from "../locales/hi";
|
|
10
10
|
import { pt } from "../locales/pt";
|
|
11
|
+
import { pl } from "../locales/pl";
|
|
11
12
|
import { FireCMSTranslations } from "../types/translations";
|
|
12
13
|
|
|
13
14
|
const FIRECMS_NS = "firecms_core";
|
|
@@ -139,6 +140,7 @@ function buildResources(
|
|
|
139
140
|
it: { [FIRECMS_NS]: { ...it } },
|
|
140
141
|
hi: { [FIRECMS_NS]: { ...hi } },
|
|
141
142
|
pt: { [FIRECMS_NS]: { ...pt } },
|
|
143
|
+
pl: { [FIRECMS_NS]: { ...pl } },
|
|
142
144
|
};
|
|
143
145
|
|
|
144
146
|
if (!translations) return resources;
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import { getNavigationEntriesFromPath, NavigationViewInternal } from "../util/navigation_from_path";
|
|
14
14
|
import { useLocation } from "react-router-dom";
|
|
15
15
|
import {
|
|
16
|
+
encodeEntityId,
|
|
16
17
|
removeInitialAndTrailingSlashes,
|
|
17
18
|
resolveCollection,
|
|
18
19
|
resolveDefaultSelectedView,
|
|
@@ -277,7 +278,7 @@ const propsToSidePanel = (props: EntitySidePanelProps,
|
|
|
277
278
|
const collectionPath = removeInitialAndTrailingSlashes(props.path);
|
|
278
279
|
|
|
279
280
|
const urlPath = props.entityId
|
|
280
|
-
? buildUrlCollectionPath(`${collectionPath}/${props.entityId}${props.selectedTab ? "/" + props.selectedTab : ""}${locationSearch}#${SIDE_URL_HASH}`)
|
|
281
|
+
? buildUrlCollectionPath(`${collectionPath}/${encodeEntityId(props.entityId)}${props.selectedTab ? "/" + props.selectedTab : ""}${locationSearch}#${SIDE_URL_HASH}`)
|
|
281
282
|
: buildUrlCollectionPath(`${collectionPath}${locationSearch}#${NEW_URL_HASH}`);
|
|
282
283
|
|
|
283
284
|
const resolvedPanelProps: EntitySidePanelProps<any> = {
|
package/src/locales/de.ts
CHANGED
|
@@ -146,8 +146,8 @@ export const de: FireCMSTranslations = {
|
|
|
146
146
|
// ─── Error states ─────────────────────────────────────────────
|
|
147
147
|
error: "Fehler",
|
|
148
148
|
error_uploading_file: "Fehler beim Hochladen der Datei",
|
|
149
|
-
error_deleting: "Fehler beim Löschen",
|
|
150
|
-
error_before_delete: "Fehler vor dem Löschen",
|
|
149
|
+
error_deleting: "Fehler beim Löschen: {{message}}",
|
|
150
|
+
error_before_delete: "Fehler vor dem Löschen: {{message}}",
|
|
151
151
|
error_updating_asset: "Fehler beim Aktualisieren des Assets",
|
|
152
152
|
error_deleting_asset: "Fehler beim Löschen des Assets",
|
|
153
153
|
error_firestore_index: "Für diese Abfrage ist ein Firestore-Index erforderlich.",
|
|
@@ -514,10 +514,18 @@ export const de: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Sammlungen automatisch einrichten",
|
|
515
515
|
auto_setup_collections_title: "Sammlungen automatisch einrichten?",
|
|
516
516
|
auto_setup_collections_desc: "Dadurch werden automatisch Sammlungskonfigurationen für Sammlungen erstellt, die noch <b>NICHT</b> zugeordnet sind.",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Sammlungen werden eingerichtet",
|
|
518
|
+
setting_up_collection: "{{name}} wird eingerichtet",
|
|
518
519
|
no_collections_found_to_setup: "Keine einzurichtenden Sammlungen gefunden",
|
|
519
520
|
collections_have_been_setup: "Sammlungen wurden automatisch eingerichtet",
|
|
520
521
|
error_setting_up_collections: "Fehler beim automatischen Einrichten der Sammlungen",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Fügen Sie Ihre",
|
|
522
530
|
database_collections: "Datenbanksammlungen",
|
|
523
531
|
to_firecms: "zu FireCMS hinzu",
|
package/src/locales/en.ts
CHANGED
|
@@ -154,8 +154,8 @@ export const en: FireCMSTranslations = {
|
|
|
154
154
|
// ─── Error states ─────────────────────────────────────────────
|
|
155
155
|
error: "Error",
|
|
156
156
|
error_uploading_file: "Error uploading file",
|
|
157
|
-
error_deleting: "Error deleting",
|
|
158
|
-
error_before_delete: "Error before delete",
|
|
157
|
+
error_deleting: "Error deleting: {{message}}",
|
|
158
|
+
error_before_delete: "Error before delete: {{message}}",
|
|
159
159
|
error_updating_asset: "Error updating asset",
|
|
160
160
|
error_deleting_asset: "Error deleting asset",
|
|
161
161
|
error_firestore_index: "A Firestore index is required for this query.",
|
|
@@ -522,10 +522,18 @@ export const en: FireCMSTranslations = {
|
|
|
522
522
|
auto_setup_collections_button: "Automatically set up collections",
|
|
523
523
|
auto_setup_collections_title: "Automatically set up collections?",
|
|
524
524
|
auto_setup_collections_desc: "This will automatically create collection configs for collections that are <b>NOT</b> already mapped",
|
|
525
|
-
|
|
525
|
+
setting_up_collections: "Setting up collections",
|
|
526
|
+
setting_up_collection: "Setting up {{name}}",
|
|
526
527
|
no_collections_found_to_setup: "No collections found to setup.",
|
|
527
528
|
collections_have_been_setup: "Collections have been automatically setup.",
|
|
528
529
|
error_setting_up_collections: "Error automatically setting up collections",
|
|
530
|
+
setup_collections_title: "Set up collections",
|
|
531
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
532
|
+
select_all: "Select all",
|
|
533
|
+
deselect_all: "Deselect all",
|
|
534
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
535
|
+
collection_setup_success: "{{name}} has been set up",
|
|
536
|
+
go_to_collection: "Go to collection",
|
|
529
537
|
|
|
530
538
|
// --- Home Suggestions ---
|
|
531
539
|
add_your: "Add your",
|
package/src/locales/es.ts
CHANGED
|
@@ -152,8 +152,8 @@ export const es: FireCMSTranslations = {
|
|
|
152
152
|
// ─── Error states ─────────────────────────────────────────────
|
|
153
153
|
error: "Error",
|
|
154
154
|
error_uploading_file: "Error al subir archivo",
|
|
155
|
-
error_deleting: "Error al eliminar",
|
|
156
|
-
error_before_delete: "Error antes de eliminar",
|
|
155
|
+
error_deleting: "Error al eliminar: {{message}}",
|
|
156
|
+
error_before_delete: "Error antes de eliminar: {{message}}",
|
|
157
157
|
error_updating_asset: "Error al actualizar recurso",
|
|
158
158
|
error_deleting_asset: "Error al eliminar recurso",
|
|
159
159
|
error_firestore_index: "Se requiere un índice de Firestore para esta consulta.",
|
|
@@ -522,10 +522,18 @@ export const es: FireCMSTranslations = {
|
|
|
522
522
|
auto_setup_collections_button: "Configurar colecciones automáticamente",
|
|
523
523
|
auto_setup_collections_title: "¿Configurar colecciones automáticamente?",
|
|
524
524
|
auto_setup_collections_desc: "Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas",
|
|
525
|
-
|
|
525
|
+
setting_up_collections: "Configurando colecciones",
|
|
526
|
+
setting_up_collection: "Configurando {{name}}",
|
|
526
527
|
no_collections_found_to_setup: "No se encontraron colecciones para configurar",
|
|
527
528
|
collections_have_been_setup: "¡Tus colecciones han sido configuradas!",
|
|
528
529
|
error_setting_up_collections: "Error al configurar colecciones",
|
|
530
|
+
setup_collections_title: "Set up collections",
|
|
531
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
532
|
+
select_all: "Select all",
|
|
533
|
+
deselect_all: "Deselect all",
|
|
534
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
535
|
+
collection_setup_success: "{{name}} has been set up",
|
|
536
|
+
go_to_collection: "Go to collection",
|
|
529
537
|
|
|
530
538
|
// --- Home Suggestions ---
|
|
531
539
|
add_your: "Añade tus",
|
package/src/locales/fr.ts
CHANGED
|
@@ -146,8 +146,8 @@ export const fr: FireCMSTranslations = {
|
|
|
146
146
|
// ─── Error states ─────────────────────────────────────────────
|
|
147
147
|
error: "Erreur",
|
|
148
148
|
error_uploading_file: "Erreur lors du téléchargement du fichier",
|
|
149
|
-
error_deleting: "Erreur lors de la suppression",
|
|
150
|
-
error_before_delete: "Erreur avant la suppression",
|
|
149
|
+
error_deleting: "Erreur lors de la suppression: {{message}}",
|
|
150
|
+
error_before_delete: "Erreur avant la suppression: {{message}}",
|
|
151
151
|
error_updating_asset: "Erreur lors de la mise à jour de l'actif",
|
|
152
152
|
error_deleting_asset: "Erreur lors de la suppression de l'actif",
|
|
153
153
|
error_firestore_index: "Un index Firestore est requis pour cette requête.",
|
|
@@ -514,10 +514,18 @@ export const fr: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Configurer les collections automatiquement",
|
|
515
515
|
auto_setup_collections_title: "Configurer les collections automatiquement ?",
|
|
516
516
|
auto_setup_collections_desc: "Cela créera automatiquement des configurations de collection pour les collections qui ne sont <b>PAS</b> déjà mappées",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Configuration des collections",
|
|
518
|
+
setting_up_collection: "Configuration de {{name}}",
|
|
518
519
|
no_collections_found_to_setup: "Aucune collection à configurer trouvée",
|
|
519
520
|
collections_have_been_setup: "Les collections ont été configurées",
|
|
520
521
|
error_setting_up_collections: "Erreur lors de la configuration des collections",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Ajoutez vos",
|
|
522
530
|
database_collections: "collections de base de données",
|
|
523
531
|
to_firecms: "à FireCMS",
|
package/src/locales/hi.ts
CHANGED
|
@@ -146,8 +146,8 @@ export const hi: FireCMSTranslations = {
|
|
|
146
146
|
// ─── Error states ─────────────────────────────────────────────
|
|
147
147
|
error: "त्रुटि",
|
|
148
148
|
error_uploading_file: "फ़ाइल अपलोड करने में त्रुटि",
|
|
149
|
-
error_deleting: "हटाने में
|
|
150
|
-
error_before_delete: "हटाने से पहले
|
|
149
|
+
error_deleting: "हटाने में त्रुटि: {{message}}",
|
|
150
|
+
error_before_delete: "हटाने से पहले त्रुटि: {{message}}",
|
|
151
151
|
error_updating_asset: "एसेट अपडेट करने में त्रुटि",
|
|
152
152
|
error_deleting_asset: "एसेट हटाने में त्रुटि",
|
|
153
153
|
error_firestore_index: "इस क्वेरी के लिए Firestore इंडेक्स आवश्यक है।",
|
|
@@ -514,10 +514,18 @@ export const hi: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "संग्रहों को स्वचालित रूप से सेट करें",
|
|
515
515
|
auto_setup_collections_title: "संग्रहों की स्वचालित सेटअप",
|
|
516
516
|
auto_setup_collections_desc: "अपने मौजूदा Firestore डेटा के आधार पर संग्रहों को स्वचालित रूप से सेट करें। FireCMS को आपके लिए परफेक्ट CMS कॉन्फ़िगर करने दें।",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "संग्रह सेट किए जा रहे हैं",
|
|
518
|
+
setting_up_collection: "{{name}} सेट किया जा रहा है",
|
|
518
519
|
no_collections_found_to_setup: "सेट करने के लिए कोई संग्रह नहीं मिला",
|
|
519
520
|
collections_have_been_setup: "संग्रहों को सेट कर दिया गया है",
|
|
520
521
|
error_setting_up_collections: "संग्रह सेट करने में त्रुटि",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "अपने",
|
|
522
530
|
database_collections: "डेटाबेस संग्रह",
|
|
523
531
|
to_firecms: "को FireCMS में जोड़ें",
|
package/src/locales/it.ts
CHANGED
|
@@ -146,8 +146,8 @@ export const it: FireCMSTranslations = {
|
|
|
146
146
|
// ─── Error states ─────────────────────────────────────────────
|
|
147
147
|
error: "Errore",
|
|
148
148
|
error_uploading_file: "Errore durante il caricamento del file",
|
|
149
|
-
error_deleting: "Errore durante l'eliminazione",
|
|
150
|
-
error_before_delete: "Errore prima dell'eliminazione",
|
|
149
|
+
error_deleting: "Errore durante l'eliminazione: {{message}}",
|
|
150
|
+
error_before_delete: "Errore prima dell'eliminazione: {{message}}",
|
|
151
151
|
error_updating_asset: "Errore durante l'aggiornamento dell'asset",
|
|
152
152
|
error_deleting_asset: "Errore durante l'eliminazione dell'asset",
|
|
153
153
|
error_firestore_index: "Per questa query è richiesto un indice Firestore.",
|
|
@@ -514,10 +514,18 @@ export const it: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Configura le collezioni automaticamente",
|
|
515
515
|
auto_setup_collections_title: "Configurazione automatica delle collezioni",
|
|
516
516
|
auto_setup_collections_desc: "Configura le collezioni automaticamente in base ai dati Firestore esistenti. Lascia che FireCMS configuri il CMS perfetto per te.",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Configurazione delle collezioni",
|
|
518
|
+
setting_up_collection: "Configurazione di {{name}}",
|
|
518
519
|
no_collections_found_to_setup: "Nessuna collezione trovata da configurare",
|
|
519
520
|
collections_have_been_setup: "Le collezioni sono state configurate",
|
|
520
521
|
error_setting_up_collections: "Errore durante la configurazione delle collezioni",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Aggiungi le tue",
|
|
522
530
|
database_collections: "collezioni del database",
|
|
523
531
|
to_firecms: "a FireCMS",
|