@object-ui/i18n 7.1.0 → 7.3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @object-ui/i18n
2
2
 
3
+ ## 7.3.0
4
+
5
+ ## 7.2.0
6
+
7
+ ### Patch Changes
8
+
9
+ - 8e7c1da: fix(preview): draft-preview bar no longer demands a redundant Publish when nothing is pending
10
+
11
+ Under the auto-publish posture an AI build leaves zero pending drafts, yet opening a
12
+ draft preview still showed "Draft preview — Nothing here is live until you publish."
13
+ alongside "Changes (0)" and a Publish button — a self-contradicting, no-op call to
14
+ action. `DraftPreviewBar` now reflects the real pending-draft count: when it is
15
+ known to be zero the bar softens to a neutral preview indicator and drops the
16
+ Publish/Changes affordances; an unknown count (still loading / fetch failed) keeps
17
+ the publish path. `HomePage` (count-gated) and `RuntimeDraftBar` (draft-gated)
18
+ already behaved this way — this aligns the third surface.
19
+
3
20
  ## 7.1.0
4
21
 
5
22
  ## 7.0.0
@@ -176,7 +176,11 @@ declare const ar: {
176
176
  previewDescription: string;
177
177
  dragDrop: string;
178
178
  browseFiles: string;
179
- onlyCsv: string;
179
+ parsing: string;
180
+ pasteHint: string;
181
+ legacyXls: string;
182
+ unsupportedFile: string;
183
+ parseFailed: string;
180
184
  fileNeedsHeader: string;
181
185
  mappingTemplate: string;
182
186
  chooseTemplate: string;
@@ -188,6 +192,14 @@ declare const ar: {
188
192
  deleteTemplate: string;
189
193
  csvColumn: string;
190
194
  mapsTo: string;
195
+ typeMismatch: string;
196
+ type: {
197
+ number: string;
198
+ boolean: string;
199
+ date: string;
200
+ datetime: string;
201
+ text: string;
202
+ };
191
203
  status: string;
192
204
  skipColumn: string;
193
205
  skip: string;
@@ -171,12 +171,16 @@ const ar = {
171
171
  stepUpload: "رفع",
172
172
  stepMapping: "تعيين",
173
173
  stepPreview: "معاينة",
174
- uploadDescription: "ارفع ملف CSV للبدء.",
175
- mappingDescription: "عيّن أعمدة CSV إلى حقول الكائن.",
174
+ uploadDescription: "ارفع ملف CSV أو Excel، أو الصق من جدول بيانات للبدء.",
175
+ mappingDescription: "عيّن الأعمدة إلى حقول الكائن.",
176
176
  previewDescription: "راجع البيانات قبل الاستيراد.",
177
- dragDrop: "اسحب ملف CSV هنا أو انقر للتصفح",
177
+ dragDrop: "اسحب وأفلت ملف CSV أو Excel هنا، أو انقر للتصفح",
178
178
  browseFiles: "تصفح الملفات",
179
- onlyCsv: "ملفات CSV فقط مدعومة.",
179
+ parsing: "جارٍ التحليل…",
180
+ pasteHint: "أو الصق (Ctrl/⌘+V) صفوفًا منسوخة من Excel أو Google Sheets",
181
+ legacyXls: "ملفات .xls القديمة غير مدعومة — يرجى إعادة حفظها بصيغة .xlsx.",
182
+ unsupportedFile: "نوع الملف غير مدعوم. استخدم CSV أو TSV أو Excel (.xlsx).",
183
+ parseFailed: "تعذّر قراءة هذا الملف. يرجى التحقق من التنسيق والمحاولة مرة أخرى.",
180
184
  fileNeedsHeader: "يجب أن يحتوي الملف على صف رأسي وصف بيانات واحد على الأقل.",
181
185
  mappingTemplate: "قالب التعيين:",
182
186
  chooseTemplate: "اختر قالباً…",
@@ -186,8 +190,16 @@ const ar = {
186
190
  templateName: "اسم القالب",
187
191
  save: "حفظ",
188
192
  deleteTemplate: "حذف القالب",
189
- csvColumn: "عمود CSV",
193
+ csvColumn: "العمود",
190
194
  mapsTo: "يُعيَّن إلى",
195
+ typeMismatch: "يبدو أنه {{type}}",
196
+ type: {
197
+ number: "رقم",
198
+ boolean: "قيمة منطقية",
199
+ date: "تاريخ",
200
+ datetime: "التاريخ والوقت",
201
+ text: "نص",
202
+ },
191
203
  status: "الحالة",
192
204
  skipColumn: "تخطي العمود",
193
205
  skip: "— تخطي —",
@@ -176,7 +176,11 @@ declare const de: {
176
176
  previewDescription: string;
177
177
  dragDrop: string;
178
178
  browseFiles: string;
179
- onlyCsv: string;
179
+ parsing: string;
180
+ pasteHint: string;
181
+ legacyXls: string;
182
+ unsupportedFile: string;
183
+ parseFailed: string;
180
184
  fileNeedsHeader: string;
181
185
  mappingTemplate: string;
182
186
  chooseTemplate: string;
@@ -188,6 +192,14 @@ declare const de: {
188
192
  deleteTemplate: string;
189
193
  csvColumn: string;
190
194
  mapsTo: string;
195
+ typeMismatch: string;
196
+ type: {
197
+ number: string;
198
+ boolean: string;
199
+ date: string;
200
+ datetime: string;
201
+ text: string;
202
+ };
191
203
  status: string;
192
204
  skipColumn: string;
193
205
  skip: string;
@@ -171,12 +171,16 @@ const de = {
171
171
  stepUpload: "Hochladen",
172
172
  stepMapping: "Zuordnung",
173
173
  stepPreview: "Vorschau",
174
- uploadDescription: "Laden Sie eine CSV-Datei hoch, um zu beginnen.",
175
- mappingDescription: "Ordnen Sie CSV-Spalten den Objektfeldern zu.",
174
+ uploadDescription: "Laden Sie eine CSV- oder Excel-Datei hoch oder fügen Sie Daten aus einer Tabelle ein, um zu beginnen.",
175
+ mappingDescription: "Ordnen Sie Spalten den Objektfeldern zu.",
176
176
  previewDescription: "Daten vor dem Import prüfen.",
177
- dragDrop: "CSV-Datei hierher ziehen oder klicken zum Durchsuchen",
177
+ dragDrop: "CSV- oder Excel-Datei hierher ziehen oder klicken zum Durchsuchen",
178
178
  browseFiles: "Dateien durchsuchen",
179
- onlyCsv: "Nur CSV-Dateien werden unterstützt.",
179
+ parsing: "Wird verarbeitet…",
180
+ pasteHint: "oder aus Excel oder Google Tabellen kopierte Zeilen einfügen (Strg/⌘+V)",
181
+ legacyXls: "Alte .xls-Dateien werden nicht unterstützt – bitte als .xlsx neu speichern.",
182
+ unsupportedFile: "Nicht unterstützter Dateityp. Verwenden Sie CSV, TSV oder Excel (.xlsx).",
183
+ parseFailed: "Diese Datei konnte nicht gelesen werden. Bitte prüfen Sie das Format und versuchen Sie es erneut.",
180
184
  fileNeedsHeader: "Datei muss eine Kopfzeile und mindestens eine Datenzeile enthalten.",
181
185
  mappingTemplate: "Zuordnungsvorlage:",
182
186
  chooseTemplate: "Vorlage auswählen…",
@@ -186,8 +190,16 @@ const de = {
186
190
  templateName: "Vorlagenname",
187
191
  save: "Speichern",
188
192
  deleteTemplate: "Vorlage löschen",
189
- csvColumn: "CSV-Spalte",
193
+ csvColumn: "Spalte",
190
194
  mapsTo: "Zugeordnet zu",
195
+ typeMismatch: "Sieht aus wie {{type}}",
196
+ type: {
197
+ number: "Zahl",
198
+ boolean: "Boolescher Wert",
199
+ date: "Datum",
200
+ datetime: "Datum & Uhrzeit",
201
+ text: "Text",
202
+ },
191
203
  status: "Status",
192
204
  skipColumn: "Spalte überspringen",
193
205
  skip: "— Überspringen —",
@@ -174,12 +174,16 @@ declare const en: {
174
174
  readonly stepUpload: "Upload";
175
175
  readonly stepMapping: "Mapping";
176
176
  readonly stepPreview: "Preview";
177
- readonly uploadDescription: "Upload a CSV file to get started.";
178
- readonly mappingDescription: "Map CSV columns to object fields.";
177
+ readonly uploadDescription: "Upload a CSV or Excel file, or paste from a spreadsheet to get started.";
178
+ readonly mappingDescription: "Map columns to object fields.";
179
179
  readonly previewDescription: "Review data before importing.";
180
- readonly dragDrop: "Drag & drop a CSV file here, or click to browse";
180
+ readonly dragDrop: "Drag & drop a CSV or Excel file here, or click to browse";
181
181
  readonly browseFiles: "Browse Files";
182
- readonly onlyCsv: "Only CSV files are supported.";
182
+ readonly parsing: "Parsing…";
183
+ readonly pasteHint: "or paste (Ctrl/⌘+V) rows copied from Excel or Google Sheets";
184
+ readonly legacyXls: "Legacy .xls files aren't supported — please re-save as .xlsx.";
185
+ readonly unsupportedFile: "Unsupported file type. Use CSV, TSV, or Excel (.xlsx).";
186
+ readonly parseFailed: "Could not read this file. Please check the format and try again.";
183
187
  readonly fileNeedsHeader: "File must contain a header row and at least one data row.";
184
188
  readonly mappingTemplate: "Mapping template:";
185
189
  readonly chooseTemplate: "Choose template…";
@@ -189,8 +193,16 @@ declare const en: {
189
193
  readonly templateName: "Template name";
190
194
  readonly save: "Save";
191
195
  readonly deleteTemplate: "Delete template";
192
- readonly csvColumn: "CSV Column";
196
+ readonly csvColumn: "Column";
193
197
  readonly mapsTo: "Maps To";
198
+ readonly typeMismatch: "Looks like {{type}}";
199
+ readonly type: {
200
+ readonly number: "Number";
201
+ readonly boolean: "Boolean";
202
+ readonly date: "Date";
203
+ readonly datetime: "Date & time";
204
+ readonly text: "Text";
205
+ };
194
206
  readonly status: "Status";
195
207
  readonly skipColumn: "Skip column";
196
208
  readonly skip: "— Skip —";
@@ -269,7 +281,11 @@ declare const en: {
269
281
  };
270
282
  readonly betterAuth: {
271
283
  readonly title: "No identity records";
272
- readonly message: "Identity rows are managed by the authentication provider. Use the dedicated identity workflows (Invite User, Reset Password, …) to create new entries.";
284
+ readonly message: "These records are created by the authentication provider — through sign-in, provisioning, and security flows — not added by hand here.";
285
+ };
286
+ readonly betterAuthUser: {
287
+ readonly title: "No users yet";
288
+ readonly message: "User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.";
273
289
  };
274
290
  };
275
291
  readonly showAll: "Show all";
@@ -1276,6 +1292,10 @@ declare const en: {
1276
1292
  readonly viewTypeMapDesc: "Geographic markers from latitude / longitude fields.";
1277
1293
  readonly viewTypeChart: "Chart";
1278
1294
  readonly viewTypeChartDesc: "Aggregated bar / line / pie visualisations.";
1295
+ readonly viewTypeTree: "Tree";
1296
+ readonly viewTypeTreeDesc: "Nest self-referencing records into a hierarchy by a parent field.";
1297
+ readonly parentField: "Parent field";
1298
+ readonly parentFieldHelp: "The field pointing to the parent record (same object) that defines the hierarchy. Only self-referencing fields qualify.";
1279
1299
  readonly newView: "New View";
1280
1300
  readonly typeOptions: "Type Options";
1281
1301
  readonly groupByField: "Group by field";
@@ -1763,6 +1783,7 @@ declare const en: {
1763
1783
  };
1764
1784
  readonly draftBar: {
1765
1785
  readonly message: "Draft preview — you are seeing unpublished changes. Nothing here is live until you publish.";
1786
+ readonly messageClean: "Draft preview — no unpublished changes; everything here is already live.";
1766
1787
  readonly publish: "Publish";
1767
1788
  readonly publishing: "Publishing…";
1768
1789
  readonly exit: "Exit preview";
@@ -1863,6 +1884,7 @@ declare const en: {
1863
1884
  };
1864
1885
  readonly organizations: {
1865
1886
  readonly mine: "My Organizations";
1887
+ readonly create: "Create workspace";
1866
1888
  readonly title: "Organizations";
1867
1889
  readonly heading: "Your Organizations";
1868
1890
  readonly subtitle: "Select an organization to continue, or create a new one.";
@@ -174,12 +174,16 @@ const en = {
174
174
  stepUpload: 'Upload',
175
175
  stepMapping: 'Mapping',
176
176
  stepPreview: 'Preview',
177
- uploadDescription: 'Upload a CSV file to get started.',
178
- mappingDescription: 'Map CSV columns to object fields.',
177
+ uploadDescription: 'Upload a CSV or Excel file, or paste from a spreadsheet to get started.',
178
+ mappingDescription: 'Map columns to object fields.',
179
179
  previewDescription: 'Review data before importing.',
180
- dragDrop: 'Drag & drop a CSV file here, or click to browse',
180
+ dragDrop: 'Drag & drop a CSV or Excel file here, or click to browse',
181
181
  browseFiles: 'Browse Files',
182
- onlyCsv: 'Only CSV files are supported.',
182
+ parsing: 'Parsing…',
183
+ pasteHint: 'or paste (Ctrl/⌘+V) rows copied from Excel or Google Sheets',
184
+ legacyXls: "Legacy .xls files aren't supported — please re-save as .xlsx.",
185
+ unsupportedFile: 'Unsupported file type. Use CSV, TSV, or Excel (.xlsx).',
186
+ parseFailed: 'Could not read this file. Please check the format and try again.',
183
187
  fileNeedsHeader: 'File must contain a header row and at least one data row.',
184
188
  mappingTemplate: 'Mapping template:',
185
189
  chooseTemplate: 'Choose template…',
@@ -189,8 +193,16 @@ const en = {
189
193
  templateName: 'Template name',
190
194
  save: 'Save',
191
195
  deleteTemplate: 'Delete template',
192
- csvColumn: 'CSV Column',
196
+ csvColumn: 'Column',
193
197
  mapsTo: 'Maps To',
198
+ typeMismatch: 'Looks like {{type}}',
199
+ type: {
200
+ number: 'Number',
201
+ boolean: 'Boolean',
202
+ date: 'Date',
203
+ datetime: 'Date & time',
204
+ text: 'Text',
205
+ },
194
206
  status: 'Status',
195
207
  skipColumn: 'Skip column',
196
208
  skip: '— Skip —',
@@ -269,7 +281,11 @@ const en = {
269
281
  },
270
282
  betterAuth: {
271
283
  title: 'No identity records',
272
- message: 'Identity rows are managed by the authentication provider. Use the dedicated identity workflows (Invite User, Reset Password, …) to create new entries.',
284
+ message: 'These records are created by the authentication provider — through sign-in, provisioning, and security flows — not added by hand here.',
285
+ },
286
+ betterAuthUser: {
287
+ title: 'No users yet',
288
+ message: 'User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.',
273
289
  },
274
290
  },
275
291
  showAll: 'Show all',
@@ -1292,6 +1308,10 @@ const en = {
1292
1308
  viewTypeMapDesc: 'Geographic markers from latitude / longitude fields.',
1293
1309
  viewTypeChart: 'Chart',
1294
1310
  viewTypeChartDesc: 'Aggregated bar / line / pie visualisations.',
1311
+ viewTypeTree: 'Tree',
1312
+ viewTypeTreeDesc: 'Nest self-referencing records into a hierarchy by a parent field.',
1313
+ parentField: 'Parent field',
1314
+ parentFieldHelp: 'The field pointing to the parent record (same object) that defines the hierarchy. Only self-referencing fields qualify.',
1295
1315
  newView: 'New View',
1296
1316
  typeOptions: 'Type Options',
1297
1317
  groupByField: 'Group by field',
@@ -1779,6 +1799,7 @@ const en = {
1779
1799
  },
1780
1800
  draftBar: {
1781
1801
  message: 'Draft preview — you are seeing unpublished changes. Nothing here is live until you publish.',
1802
+ messageClean: 'Draft preview — no unpublished changes; everything here is already live.',
1782
1803
  publish: 'Publish',
1783
1804
  publishing: 'Publishing…',
1784
1805
  exit: 'Exit preview',
@@ -1879,6 +1900,7 @@ const en = {
1879
1900
  },
1880
1901
  organizations: {
1881
1902
  mine: 'My Organizations',
1903
+ create: 'Create workspace',
1882
1904
  title: 'Organizations',
1883
1905
  heading: 'Your Organizations',
1884
1906
  subtitle: 'Select an organization to continue, or create a new one.',
@@ -176,7 +176,11 @@ declare const es: {
176
176
  previewDescription: string;
177
177
  dragDrop: string;
178
178
  browseFiles: string;
179
- onlyCsv: string;
179
+ parsing: string;
180
+ pasteHint: string;
181
+ legacyXls: string;
182
+ unsupportedFile: string;
183
+ parseFailed: string;
180
184
  fileNeedsHeader: string;
181
185
  mappingTemplate: string;
182
186
  chooseTemplate: string;
@@ -188,6 +192,14 @@ declare const es: {
188
192
  deleteTemplate: string;
189
193
  csvColumn: string;
190
194
  mapsTo: string;
195
+ typeMismatch: string;
196
+ type: {
197
+ number: string;
198
+ boolean: string;
199
+ date: string;
200
+ datetime: string;
201
+ text: string;
202
+ };
191
203
  status: string;
192
204
  skipColumn: string;
193
205
  skip: string;
@@ -171,12 +171,16 @@ const es = {
171
171
  stepUpload: "Cargar",
172
172
  stepMapping: "Asignación",
173
173
  stepPreview: "Vista previa",
174
- uploadDescription: "Cargue un archivo CSV para comenzar.",
175
- mappingDescription: "Asigne columnas CSV a los campos del objeto.",
174
+ uploadDescription: "Cargue un archivo CSV o Excel, o pegue desde una hoja de cálculo para comenzar.",
175
+ mappingDescription: "Asigne columnas a los campos del objeto.",
176
176
  previewDescription: "Revise los datos antes de importar.",
177
- dragDrop: "Arrastre el archivo CSV aquí o haga clic para buscar",
177
+ dragDrop: "Arrastre y suelte un archivo CSV o Excel aquí, o haga clic para buscar",
178
178
  browseFiles: "Buscar archivos",
179
- onlyCsv: "Solo se admiten archivos CSV.",
179
+ parsing: "Analizando…",
180
+ pasteHint: "o pegue (Ctrl/⌘+V) filas copiadas desde Excel o Google Sheets",
181
+ legacyXls: "Los archivos .xls antiguos no son compatibles: vuelva a guardarlos como .xlsx.",
182
+ unsupportedFile: "Tipo de archivo no compatible. Use CSV, TSV o Excel (.xlsx).",
183
+ parseFailed: "No se pudo leer este archivo. Verifique el formato e inténtelo de nuevo.",
180
184
  fileNeedsHeader: "El archivo debe tener una fila de encabezado y al menos una fila de datos.",
181
185
  mappingTemplate: "Plantilla de asignación:",
182
186
  chooseTemplate: "Elegir plantilla…",
@@ -186,8 +190,16 @@ const es = {
186
190
  templateName: "Nombre de la plantilla",
187
191
  save: "Guardar",
188
192
  deleteTemplate: "Eliminar plantilla",
189
- csvColumn: "Columna CSV",
193
+ csvColumn: "Columna",
190
194
  mapsTo: "Se asigna a",
195
+ typeMismatch: "Parece {{type}}",
196
+ type: {
197
+ number: "Número",
198
+ boolean: "Booleano",
199
+ date: "Fecha",
200
+ datetime: "Fecha y hora",
201
+ text: "Texto",
202
+ },
191
203
  status: "Estado",
192
204
  skipColumn: "Omitir columna",
193
205
  skip: "— Omitir —",
@@ -176,7 +176,11 @@ declare const fr: {
176
176
  previewDescription: string;
177
177
  dragDrop: string;
178
178
  browseFiles: string;
179
- onlyCsv: string;
179
+ parsing: string;
180
+ pasteHint: string;
181
+ legacyXls: string;
182
+ unsupportedFile: string;
183
+ parseFailed: string;
180
184
  fileNeedsHeader: string;
181
185
  mappingTemplate: string;
182
186
  chooseTemplate: string;
@@ -188,6 +192,14 @@ declare const fr: {
188
192
  deleteTemplate: string;
189
193
  csvColumn: string;
190
194
  mapsTo: string;
195
+ typeMismatch: string;
196
+ type: {
197
+ number: string;
198
+ boolean: string;
199
+ date: string;
200
+ datetime: string;
201
+ text: string;
202
+ };
191
203
  status: string;
192
204
  skipColumn: string;
193
205
  skip: string;
@@ -171,12 +171,16 @@ const fr = {
171
171
  stepUpload: "Télécharger",
172
172
  stepMapping: "Correspondance",
173
173
  stepPreview: "Aperçu",
174
- uploadDescription: "Téléchargez un fichier CSV pour commencer.",
175
- mappingDescription: "Faites correspondre les colonnes CSV aux champs de l'objet.",
174
+ uploadDescription: "Téléchargez un fichier CSV ou Excel, ou collez depuis un tableur pour commencer.",
175
+ mappingDescription: "Faites correspondre les colonnes aux champs de l'objet.",
176
176
  previewDescription: "Vérifiez les données avant d'importer.",
177
- dragDrop: "Faites glisser le fichier CSV ici ou cliquez pour parcourir",
177
+ dragDrop: "Glissez-déposez un fichier CSV ou Excel ici, ou cliquez pour parcourir",
178
178
  browseFiles: "Parcourir les fichiers",
179
- onlyCsv: "Seuls les fichiers CSV sont pris en charge.",
179
+ parsing: "Analyse…",
180
+ pasteHint: "ou collez (Ctrl/⌘+V) des lignes copiées depuis Excel ou Google Sheets",
181
+ legacyXls: "Les anciens fichiers .xls ne sont pas pris en charge — veuillez les réenregistrer au format .xlsx.",
182
+ unsupportedFile: "Type de fichier non pris en charge. Utilisez CSV, TSV ou Excel (.xlsx).",
183
+ parseFailed: "Impossible de lire ce fichier. Veuillez vérifier le format et réessayer.",
180
184
  fileNeedsHeader: "Le fichier doit avoir une ligne d'en-tête et au moins une ligne de données.",
181
185
  mappingTemplate: "Modèle de correspondance :",
182
186
  chooseTemplate: "Choisir un modèle…",
@@ -186,8 +190,16 @@ const fr = {
186
190
  templateName: "Nom du modèle",
187
191
  save: "Enregistrer",
188
192
  deleteTemplate: "Supprimer le modèle",
189
- csvColumn: "Colonne CSV",
193
+ csvColumn: "Colonne",
190
194
  mapsTo: "Correspond à",
195
+ typeMismatch: "Ressemble à {{type}}",
196
+ type: {
197
+ number: "Nombre",
198
+ boolean: "Booléen",
199
+ date: "Date",
200
+ datetime: "Date et heure",
201
+ text: "Texte",
202
+ },
191
203
  status: "Statut",
192
204
  skipColumn: "Ignorer la colonne",
193
205
  skip: "— Ignorer —",