Skip to content

Localization

TypeDataEditorTranslations

Override any UI string. Pass a partial object — only the keys you provide are replaced.

<DataEditor
translations={{
dataEditor: {
modal: {
editTitle: "Edit Employees",
importTitle: "Import Employee Data",
},
footer: {
submit: "Save Changes",
},
},
}}
...
/>

Every key lives under dataEditor. Pass any subset — only the keys you provide are replaced.

{
"dataEditor": {
"modal": {
"importTitle": "Import Data",
"editTitle": "Edit Data"
},
"confirmClose": {
"title": "Discard changes?",
"text": "You have unsaved changes. Are you sure you want to close?",
"action": "Discard"
},
"confirmSubmit": {
"title": "Confirm submission",
"text": "You are about to submit the following changes:",
"createRows_one": "{{count}} new row will be created",
"createRows_other": "{{count}} new rows will be created",
"updateRows_one": "{{count}} row will be updated",
"updateRows_other": "{{count}} rows will be updated",
"deleteRows_one": "{{count}} row will be deleted",
"deleteRows_other": "{{count}} rows will be deleted",
"bannerTitle_one": "{{count}} row has errors",
"bannerTitle_other": "{{count}} rows have errors",
"action": "Submit"
},
"footer": {
"submit": "Submit",
"import": "Import",
"next": "Next",
"cancel": "Cancel",
"back": "Back",
"export": "Export",
"exportAll": "Export all",
"exportFiltered": "Export filtered",
"csvFormat": "Comma-separated values (.csv)",
"tsvFormat": "Tab-separated values (.tsv)",
"excelFormat": "Microsoft Excel (.xlsx)",
"jsonFormat": "JSON (.json)",
"xmlFormat": "XML (.xml)"
},
"statusBar": {
"totalRows": "{{total}} rows",
"filteredRows": "{{filtered}} of {{total}} rows"
},
"toast": {
"dismiss": "Dismiss",
"rowMayNotBeVisible": "Row has been added but may not be visible due to active filters or sorting"
},
"grid": {
"emptyTitle": "No data",
"emptyText": "Import data or add rows manually",
"loading": "Loading data...",
"emptyCell": "Empty",
"a11y": {
"gridLabel": "Data editor",
"cellFocus": "Row {{row}}, {{column}}: {{value}}",
"cellFocusEmpty": "Row {{row}}, {{column}}: empty",
"selectAll": "All cells selected",
"rowsSelected": "{{count}} rows selected",
"columnsSelected": "{{count}} columns selected"
},
"contextMenu": {
"cut": "Cut",
"cutCells": "Cut ({{count}})",
"copy": "Copy",
"copyCells": "Copy ({{count}})",
"paste": "Paste",
"deleteRow": "Delete row",
"deleteRows": "Delete rows ({{count}})",
"restoreRow": "Restore row",
"restoreRows": "Restore rows ({{count}})",
"sortAsc": "Sort A to Z",
"sortDesc": "Sort Z to A",
"sortRemove": "Remove sorting",
"insertAbove": "Insert row above",
"insertBelow": "Insert row below",
"duplicateRow": "Duplicate row",
"cutRow": "Cut row",
"cutRows": "Cut rows ({{count}})",
"copyRow": "Copy row",
"copyRows": "Copy rows ({{count}})",
"clearRow": "Clear row",
"clearRows": "Clear rows ({{count}})",
"clearAll": "Clear all",
"pin": "Pin column",
"pinColumns": "Pin columns",
"unpin": "Unpin column",
"unpinColumns": "Unpin columns",
"cutColumn": "Cut column",
"copyColumn": "Copy column",
"pasteColumn": "Paste column",
"lockColumn": "Lock column",
"lockColumns": "Lock columns",
"lockedCannotClear": "Can't clear a locked column",
"lockedCannotDelete": "Can't delete a locked column",
"lockedCannotRevert": "Can't revert a locked column",
"lockedCannotUnlock": "This column was locked by configuration",
"unlockColumn": "Unlock column",
"unlockColumns": "Unlock columns",
"clearColumn": "Clear column",
"clearColumns": "Clear columns",
"deleteColumn": "Delete column",
"deleteColumns": "Delete columns",
"editColumn": "Edit column",
"transform": "Transform",
"transformMerge": "Merge",
"transformSplit": "Split",
"formula": "Formula",
"lockedCannotFormula": "Can't apply a formula to a locked column",
"revertChanges": "Revert changes"
},
"formulaModal": {
"title": "Apply formula",
"apply": "Apply",
"applyToRows_one": "Apply to {{count}} row",
"applyToRows_other": "Apply to {{count}} rows",
"inputLabel": "Formula",
"placeholder": "=UPPER(value) · Type @ to browse",
"groupFunctions": "Functions",
"groupColumns": "Columns",
"groupKeywords": "Keywords",
"keywordValue": "Current cell value",
"preview": "Preview",
"errors": {
"unexpected-character": "'{{char}}' isn't valid here",
"unexpected-escape": "Invalid escape '\\{{char}}' — only \\} and \\\\ are allowed inside @{}",
"unterminated-column-ref": "@{...} isn't closed — add a closing }",
"expected-equals": "Formulas must start with =",
"expected-expression": "Add a function, value, or @column after =",
"expected-open-paren": "Missing '(' after {{name}}",
"expected-close-paren": "Missing closing ')'",
"expected-column-name": "Add a column name after @ — e.g. @Name or @{First Name}",
"unexpected-token": "'{{token}}' isn't expected here",
"unknown-function": "No function named '{{name}}'",
"unknown-column": "No column named '{{name}}'",
"arity-mismatch-too-few": "{{name}} expects at least {{min}} arguments — got {{actual}}",
"arity-mismatch-too-many": "{{name}} takes at most {{max}} arguments — got {{actual}}",
"function-not-in-expression-mode": "'{{name}}' can't be used here — use Merge or Split from the Transform menu",
"column-not-numeric": "'{{name}}' is not a number column — arithmetic requires number columns"
}
},
"formulas": {
"UPPER": {
"label": "Uppercase"
},
"LOWER": {
"label": "Lowercase"
},
"TRIM": {
"label": "Trim whitespace"
},
"CAPITALIZE": {
"label": "Capitalize"
},
"ROUND": {
"label": "Round"
},
"ROUND_UP": {
"label": "Round up"
},
"ROUND_DOWN": {
"label": "Round down"
},
"ABS": {
"label": "Absolute value"
},
"CLEAR": {
"label": "Clear"
},
"CONCAT": {
"label": "Concatenate"
},
"LEFT": {
"label": "Left"
},
"RIGHT": {
"label": "Right"
},
"MID": {
"label": "Mid"
},
"SUBSTITUTE": {
"label": "Substitute"
},
"MERGE": {
"label": "Merge columns"
},
"SPLIT": {
"label": "Split column"
}
},
"transformMerge": {
"addColumn": "Add column",
"apply": "Apply",
"deleteSource": "Delete source columns",
"deleteSourceDescription": "Columns added during import can be deleted. Schema columns will remain.",
"from": "From",
"into": "Into",
"joinWith": "Join with",
"joinWithPlaceholder": "e.g. space, comma",
"preview": "Preview",
"removeColumn": "Remove column",
"applyToRows_one": "Apply to {{count}} row",
"applyToRows_other": "Apply to {{count}} rows",
"selectColumn": "Select column",
"title": "Merge"
},
"transformSplit": {
"addColumn": "Add column",
"apply": "Apply",
"applyToRows_one": "Apply to {{count}} row",
"applyToRows_other": "Apply to {{count}} rows",
"deleteSource": "Delete source column",
"deleteSourceDescription": "Columns added during import can be deleted. Schema columns will remain.",
"from": "From",
"into": "Into",
"preview": "Preview",
"removeColumn": "Remove column",
"selectColumn": "Select column",
"splitBy": "Split by",
"splitByPlaceholder": "e.g. space, comma",
"title": "Split"
},
"phase": {
"splitting": "Splitting columns...",
"merging": "Merging columns...",
"pasting": "Pasting data...",
"clearing": "Clearing cells...",
"filling": "Filling cells...",
"sorting": "Sorting rows...",
"undoing": "Reverting changes...",
"redoing": "Reapplying changes...",
"deleting": "Deleting rows...",
"deletingSource": "Removing data source...",
"importing": "Importing data...",
"transforming": "Transforming...",
"default": "Processing..."
}
},
"dataSources": {
"title": "Data Sources",
"importData": "Import data",
"addRow": "Add row",
"manuallyAdded": "Manually added",
"existingData": "Existing data",
"addDataSource": "Add data source",
"show": "Show",
"hide": "Hide",
"remove": "Remove",
"confirmRemove": {
"title": "Remove data source?",
"text": "All data imported from this source will be removed.",
"action": "Remove"
}
},
"filters": {
"title": "Filters",
"search": "Search",
"replace": "Replace",
"findAndReplace": "Find & Replace",
"searchMode": "Search mode",
"matchCase": "Match case",
"matchEntireCell": "Match entire cell",
"rows": "Rows",
"columns": "Columns",
"searchInColumns": "Search in columns",
"allColumns": "All columns",
"rowsWithErrors": "Rows with errors",
"editedRows": "Changed rows",
"newRows": "New rows",
"rowsWithEmptyCells": "Rows with empty cells",
"deletedRows": "Deleted rows",
"previousOccurrence": "Previous occurrence",
"nextOccurrence": "Next occurrence",
"zeroResults": "No results found",
"allValues": "All values",
"min": "Min",
"max": "Max",
"from": "From",
"to": "To",
"replaceAll": "Replace all",
"resetFilters": "Reset filters",
"showMore": "View error details",
"showLess": "Hide error details"
},
"undoRedo": {
"undo": "Undo",
"redo": "Redo"
},
"validation": {
"endDateBeforeStart": "End date must be after start date",
"invalidDate": "Invalid date",
"invalidEmail": "Invalid email address",
"invalidFormat": "Invalid format",
"invalidNumber": "Invalid number",
"invalidOption": "Invalid option",
"outOfRange": "Out of range",
"required": "This field is required",
"valueMustBeUnique": "Value must be unique"
},
"license": {
"loading": "Loading data editor"
},
"connecting": {
"label": "Connecting to server…"
},
"errors": {
"RENDER_ERROR": {
"title": "Something went wrong",
"text": "Please close this window and try again"
},
"license": {
"invalid": {
"title": "Invalid license",
"text": "Please contact support for assistance."
},
"missing": {
"title": "Missing API key",
"text": "No API key was provided. Please configure a valid API key."
},
"domain_not_allowed": {
"title": "Domain not allowed",
"text": "This domain is not authorized for this license. Please check your domain settings."
},
"subscription_inactive": {
"title": "Subscription inactive",
"text": "Your subscription is no longer active. Please renew to continue."
}
},
"scale": {
"bootstrap_failed": {
"title": "Couldn't connect to the server",
"text": "The server returned an error. Please refresh the page or contact support."
},
"workspace_lost": {
"title": "Connection lost",
"text": "The session ended unexpectedly. Refresh the page to reconnect."
},
"unreachable": {
"title": "Server unreachable",
"text": "Check your connection and refresh the page."
},
"server_error": {
"title": "Server error",
"text": "The server returned an error. Please refresh the page or contact support."
}
}
},
"uploader": {
"steps": {
"selectFiles": "Select files",
"sheetSelection": "Select sheet",
"matchColumns": "Match columns",
"matchValues": "Match values",
"primaryKey": "Primary key"
},
"uploadFile": {
"title": "Upload file",
"text": "Upload a CSV, TSV, Excel, JSON or XML file to import data",
"textDynamic": "Upload a {{formats}} file to import data",
"parseError": "Failed to parse file",
"clickToUpload": "Click to upload",
"orDragAndDrop": "or drag and drop",
"formats": "CSV, TSV, XLSX, JSON, XML",
"downloadExample": "Download sample file"
},
"remoteSources": {
"browseFile": "Browse file",
"emptyData": "The source returned no data",
"fetchError": "Failed to load data"
},
"matchColumns": {
"title": "Match columns",
"text": "Map imported columns to existing columns",
"banner": "Some columns could not be automatically matched",
"importedColumns": "Imported columns",
"targetColumns": "Target columns",
"unmatchedCount": "{{count}} unmatched",
"selectColumnPlaceholder": "Select column",
"bestMatch": "Best match",
"createColumn": "Create column",
"createColumnNameLabel": "Column name",
"createColumnNamePlaceholder": "Enter column name",
"createColumnNameTaken": "A column with this name already exists",
"createColumnSubmit": "Create",
"createColumnTitle": "Create column",
"editColumnSubmit": "Save",
"editColumnTitle": "Edit column",
"createColumnWarning": "A matching column already exists",
"newColumnTag": "New",
"unmatchedWarning": "Unmatched columns won't be imported. Match this column to keep the data. You can transform columns after importing."
},
"sheetSelection": {
"title": "Select sheet",
"text": "This file contains multiple sheets. Choose which sheet to import.",
"rowCount": "{{count}} rows",
"emptySheet": "Empty sheet"
},
"matchValues": {
"title": "Match values",
"text": "Review how imported values map to your column options. Adjust any mappings that need a different match.",
"importedValues": "Imported values",
"targetValue": "Target value",
"fullyMatched": "All matched",
"unmatchedCount": "{{matched}}/{{total}} matched",
"selectValuePlaceholder": "Select value",
"showMatched": "Show matched",
"allMatched": "All values are matched",
"unmatchedWarning": "Unmatched values won't be imported"
},
"primaryKey": {
"title": "Select primary key",
"text": "Choose the column that uniquely identifies each row",
"none": "No primary key",
"noneHint": "All rows will be appended as new entries without deduplication."
}
},
"chat": {
"emptyTitle": "What would you like to fix?",
"header": "Chat with AI",
"placeholder": "Ask AI...",
"send": "Send"
},
"common": {
"cancel": "Cancel",
"collapse": "Collapse",
"expand": "Expand",
"remove": "Remove",
"search": "Search"
}
}
}
Typeboolean
Defaultfalse

Enable right-to-left layout. Set to true for Arabic, Hebrew, and other RTL languages. Affects grid direction, text alignment, and scrollbar position.

<DataEditor locale="ar" rtl={true} translations={arabicTranslations} ... />