Translation keys, namespaces, and override strategies
Translations are strongly typed. Provide overrides either via the provider or directly in your table configuration under translations.keys.
Important: When you use the catalog form (create/edit via getFormConfig), the form uses the same translation function t() as the table — i.e. the same DataTableTranslations object passed to the provider. You must include form and value keys in that object so that field labels, placeholders (including the value-type field), and form buttons resolve correctly. Otherwise you will see raw keys like value.string_placeholder in the UI.
type DataTableTranslations = {
actions : { delete : string ; edit : string ; copy : string ; export : string ; save : string ; cancel : string ; confirm : string ; title : string ; view : string };
bulk : { close_menu : string ; confirm_copy_description : string ; confirm_delete_description : string ; confirm_title : string };
calculations : { none : string ; count : string ; percent : string ; more : string ; count_all : string ; count_values : string ; count_unique : string ; count_empty : string ; count_not_empty : string ; count_true : string ; count_false : string ; percent_empty : string ; percent_not_empty : string ; percent_true : string ; percent_false : string ; sum : string ; average : string ; median : string ; min : string ; max : string ; range : string ; calculate : string };
columns : { title : string ; hide : string ; show : string ; visible : string ; hidden : string ; drag : string ; resetOrder : string ; toggleVisibility : string ; hideAll : string ; showAll : string ; edit_property : string ; filter : string ; hide_in_view : string ; reorder : string ; sort_ascending : string ; sort_descending : string };
menu : { /* ... */ footer_calculations : string ; footer_calculations_on : string ; footer_calculations_off : string };
pagination : { first : string ; last : string ; next : string ; previous : string ; of : string ; page : string ; rowsPerPage : string ; showing : string ; selectedCount : string };
selection : { rows : string };
// ... see full type in types/translations.ts
}
translations : {
namespace : 'common' ,
keys : {
'columns.title' : 'Columns' ,
'actions.title' : 'Actions' ,
},
}
You can supply a full DataTableTranslations object to the provider for consistent localization across tables.
Filters (advanced): Operator names (Contains, Equals, Starts with, etc.) use the filters.operators.* keys. Both the dropdown options and the selected value shown when the operator select is closed are translated, so the current operator always appears in the active locale (e.g. “Contient” instead of “contains”).
Pagination: All labels are translated: “Rows per page” (pagination.rowsPerPage), the “Page X of Y” text (pagination.showing, with {page} and {total}), and the first/previous/next/last button labels (pagination.first, pagination.previous, etc.). Both the default pagination and the button-style pagination (SafePagination) use these keys.
Footer calculations: Footer menu labels and results use calculations.* keys. The options-menu toggle uses menu.footer_calculations, menu.footer_calculations_on, and menu.footer_calculations_off.
When using getFormConfig and the built-in create/edit form (catalog form), the form resolves all labels, placeholders, and button text from the same DataTableTranslations object you pass to the provider. Add a form and value section to that object.
form – Field labels (use labelKey in your form config, e.g. form.name), form buttons (cancel, submit, create, update), and success/error messages. The catalog form also uses createForm.title and createForm.description for the dialog/drawer header. For select fields, use form.valueType_options.boolean etc. if you use optionKeys.
value – Used by the value-type field: value.string_placeholder, value.json_placeholder, value.number_placeholder, and for the boolean switch value.enabled / value.disabled.
In your form config, set labelKey (and optionally placeholderKey, optionKeys) on each field so that the form builder replaces labels/options with t(labelKey).
Merge this into the DataTableTranslations object you pass to the table (e.g. next to actions, columns, filters, etc.):
const myTableTranslations = {
// ... actions, columns, filters, etc. ...
form: {
cancel: "Cancel" ,
create: "Create" ,
createError: "Failed to create" ,
createForm: {
description: "Add a new item." ,
title: "Create item" ,
},
created: "Created successfully" ,
name: "Name" ,
slug: "Slug" ,
category: "Category" ,
description: "Description" ,
enabled: "Enabled" ,
valueType: "Value type" ,
value: "Value" ,
submit: "Save" ,
update: "Update" ,
updateError: "Failed to update" ,
updated: "Updated successfully" ,
valueType_options: {
boolean: "Boolean" ,
number: "Number" ,
string: "String" ,
json: "JSON" ,
},
},
value: {
string_placeholder: "Default string value" ,
json_placeholder: "{}" ,
number_placeholder: "0" ,
enabled: "Enabled" ,
disabled: "Disabled" ,
},
};
Form config example using labelKey and optionKeys so these keys are used:
defineFormConfig ({
id: "my-entity" ,
defaultValues: { name: "" , slug: "" , valueType: "string" , value: null , enabled: false },
fields: [
{ name: "name" , type: "text" , label: "Name" , labelKey: "form.name" , required: true },
{ name: "slug" , type: "text" , label: "Slug" , labelKey: "form.slug" , required: true },
{
name: "valueType" ,
type: "select" ,
label: "Value type" ,
labelKey: "form.valueType" ,
optionKeys: [
"form.valueType_options.boolean" ,
"form.valueType_options.number" ,
"form.valueType_options.string" ,
"form.valueType_options.json" ,
],
options: [
{ label: "boolean" , value: "boolean" },
{ label: "number" , value: "number" },
{ label: "string" , value: "string" },
{ label: "json" , value: "json" },
],
},
{
name: "value" ,
type: "value-type" ,
label: "Value" ,
labelKey: "form.value" ,
valueTypeField: "valueType" ,
supportedTypes: [ "boolean" , "json" , "number" , "string" ],
},
],
schema: mySchema,
translations: {
namespace: "my.namespace" ,
keys: {
cancel: "form.cancel" ,
submit: "form.submit" ,
create: "form.create" ,
update: "form.update" ,
created: "form.created" ,
updated: "form.updated" ,
createError: "form.createError" ,
updateError: "form.updateError" ,
"createForm.title" : "form.createForm.title" ,
"createForm.description" : "form.createForm.description" ,
},
},
});
See also:
Use the following keys to construct your translations object. All values are strings.
Used by row actions, toolbar export button, and by the bulk actions menu (Edit, Copy, Export, Delete tabs and dialog buttons).
Key Type actions.delete string actions.edit string actions.copy string actions.export string actions.save string actions.cancel string actions.confirm string actions.title string actions.view string
Strings for the bulk actions overlay (shown when one or more rows are selected). Supports {action}, {count} and ICU plural: {count, plural, one {item} other {items}}.
Key Type bulk.close_menu string bulk.confirm_copy_description string bulk.confirm_delete_description string bulk.confirm_title string
Key Type columns.title string columns.hide string columns.show string columns.visible string columns.hidden string columns.drag string columns.resetOrder string columns.toggleVisibility string columns.hideAll string columns.showAll string columns.edit_property string columns.filter string columns.hide_in_view string columns.reorder string columns.sort_ascending string columns.sort_descending string
Key Type common.true string common.false string common.loading string common.error string common.success string common.reset string common.search string
Key Type filters.title string filters.add string filters.remove string filters.apply string filters.clear string filters.select_all string filters.noResults string filters.noFilters string filters.search string filters.selectedCount string filters.active_count string filters.column string filters.value string filters.value_to string filters.select_operator string filters.error string
Key Type filters.operators.contains string filters.operators.equals string filters.operators.starts_with string filters.operators.ends_with string filters.operators.not_contains string filters.operators.empty string filters.operators.not_empty string filters.operators.greater_than string filters.operators.less_than string filters.operators.greater_than_or_equal string filters.operators.less_than_or_equal string filters.operators.between string filters.operators.not_equals string filters.operators.is string filters.operators.is_not string filters.operators.is_any_of string filters.operators.is_none_of string filters.operators.contains_all string filters.operators.contains_none string filters.operators.before string filters.operators.after string filters.operators.on_or_before string filters.operators.on_or_after string
Key Type filters.types.text string filters.types.number string filters.types.date string filters.types.option string filters.types.multiOption string
Key Type filters.date_shortcuts.today string filters.date_shortcuts.yesterday string filters.date_shortcuts.last_7_days string filters.date_shortcuts.last_30_days string filters.date_shortcuts.this_month string
Key Type filters.advanced.title string filters.advanced.basic_title string filters.advanced.convert_to_advanced string filters.advanced.filter_options string filters.advanced.edit_filter string filters.advanced.enable_filter string filters.advanced.disable_filter string filters.advanced.edit_filter_for string filters.advanced.editing string filters.advanced.done string filters.advanced.reset_filters string filters.advanced.empty_description string filters.advanced.add_first_filter string filters.advanced.quick_start string filters.advanced.quick_start_search string filters.advanced.quick_start_status string filters.advanced.quick_start_date string filters.advanced.load_error_title string filters.advanced.load_error_description string filters.advanced.retry string filters.advanced.results_count string filters.advanced.no_results_with_search string filters.advanced.no_results_description string filters.advanced.adjust_filters_hint string filters.advanced.modify_filters string filters.advanced.filtered_in string filters.advanced.search_columns string filters.advanced.no_columns_found string filters.advanced.no_columns_available string filters.advanced.no_popular_filters string filters.advanced.no_recent_filters string filters.advanced.try_different_search string filters.advanced.add_column string filters.advanced.active string filters.advanced.activate string filters.advanced.off string
Key Type filters.faceted.sort_by_label string filters.faceted.sort_by_count string filters.faceted.sort_by_value string filters.faceted.sort_by_trending string filters.faceted.selected_of_total string filters.faceted.options_count string filters.faceted.select_all string filters.faceted.select_none string filters.faceted.top_5 string filters.faceted.trending string filters.faceted.no_options_found string filters.faceted.no_options_available string filters.faceted.try_different_search string filters.faceted.no_data_for_filter string filters.faceted.statistics string filters.faceted.options string filters.faceted.records string filters.faceted.coverage string
Key Type filters.add_menu.all string filters.add_menu.popular string filters.add_menu.recent string filters.add_menu.clear_search_hint string filters.add_menu.navigate_hint string filters.add_menu.categories.recent string filters.add_menu.categories.popular string filters.add_menu.categories.text string filters.add_menu.categories.number string filters.add_menu.categories.date string filters.add_menu.categories.option string
Key Type filters.presets.title string filters.presets.panel_title string filters.presets.share string filters.presets.duplicate string filters.presets.load string filters.presets.used_times string filters.presets.last_used string filters.presets.save_dialog_title string filters.presets.save_dialog_description string filters.presets.name_label string filters.presets.name_placeholder string filters.presets.description_label string filters.presets.description_placeholder string filters.presets.tags_label string filters.presets.tags_placeholder string filters.presets.make_public string filters.presets.no_active_filters_to_save string filters.presets.save_preset string filters.presets.saving string filters.presets.delete_title string filters.presets.delete_description string filters.presets.save_current string filters.presets.import string filters.presets.export_all string filters.presets.search_placeholder string filters.presets.no_presets_found string filters.presets.try_different_search string filters.presets.create_first_hint string filters.presets.save_first string filters.presets.tabs.all string filters.presets.tabs.recent string filters.presets.tabs.popular string filters.presets.tabs.system string
Used by both the default pagination and the button-style pagination (e.g. “Lignes par page”, “Page 1 of 2”). pagination.showing is used for the “Page X of Y” text and supports {page} and {total}. Default English value: "Page {page} of {total}" (example French: "Page {page} sur {total}").
Key Type pagination.first string pagination.last string pagination.next string pagination.previous string pagination.of string pagination.page string pagination.rowsPerPage string pagination.showing string (supports {page}, {total}) pagination.selectedCount string
Key Type search.placeholder string
Used for the selection column header and the bulk actions menu count (e.g. “3 rows selected”). Supports {count} and ICU plural.
Key Type selection.rows string
Key Type sorting.ascending string sorting.descending string sorting.choose_column string sorting.current string
Key Type views.title string views.current string views.save string views.saveAs string views.update string views.delete string views.rename string views.setDefault string views.defaultView string views.default_system_view string views.systemView string views.custom_view string views.temporary_view string views.viewName string views.noViews string views.confirmDelete string views.confirmDeleteWithName string views.manage string views.saveChanges string views.saveChangesTooltip string views.add_view string views.view_options string views.view_name string views.cannot_delete_system_view string views.cannot_update_system_view string views.view_created_successfully string views.view_updated_successfully string views.view_deleted_successfully string views.error_saving_view string views.error_updating_view string views.error_deleting_view string views.error_loading_views string views.history.undo string views.history.redo string views.history.nothing_to_undo string views.history.nothing_to_redo string views.notifications.created string views.notifications.updated string views.notifications.deleted string views.notifications.setAsDefault string views.notifications.error.create string views.notifications.error.update string views.notifications.error.delete string views.notifications.error.setDefault string views.dialog.save.title string views.dialog.save.description string views.dialog.save.name string views.dialog.save.namePlaceholder string views.dialog.save.default string views.dialog.save.global string views.dialog.save.save string views.dialog.save.saving string views.dialog.manage.title string views.dialog.manage.description string views.dialog.manage.name string views.dialog.manage.type string views.dialog.manage.created string views.dialog.manage.actions string views.dialog.manage.rename string views.dialog.manage.delete string views.dialog.manage.setDefault string views.dialog.manage.editColumns string views.dialog.manage.stopEdit string views.dialog.manage.editSystemViewWarning string
Key Type state.loading string state.noData string state.error string state.error_description string
Key Type url_state.copy_link string url_state.link_copied string url_state.reset string url_state.share string url_state.auto_save string url_state.save_success string
Key Type demo.title string demo.copy_url string demo.save_view string demo.reset string demo.view string demo.sort_by string demo.select_view string demo.select_sort string demo.view_name_placeholder string demo.save string demo.current_state string demo.data string demo.loading string demo.name_asc string demo.name_desc string demo.date_asc string demo.date_desc string
Key Type table.no_results string table.no_results_description string table.hide_column string table.show_column string table.toggle_columns string table.selected_rows string table.sort_ascending string table.sort_descending string table.drag_column string
Key Type calculations.none string calculations.count string calculations.percent string calculations.more string calculations.count_all string calculations.count_values string calculations.count_unique string calculations.count_empty string calculations.count_not_empty string calculations.count_true string calculations.count_false string calculations.percent_empty string calculations.percent_not_empty string calculations.percent_true string calculations.percent_false string calculations.sum string calculations.average string calculations.median string calculations.min string calculations.max string calculations.range string calculations.calculate string
Key Type menu.back string menu.columns string menu.columns_visible string menu.filter string menu.filters string menu.group string menu.select_column string menu.current_groups string menu.active_groups string menu.options string menu.properties string menu.sort string menu.subgroup string menu.title string menu.footer_calculations string menu.footer_calculations_on string menu.footer_calculations_off string
Include these when using create/edit forms so labels, placeholders, and buttons resolve. Use labelKey / optionKeys in your form config to point to these keys.
Key Type form.cancel string form.create string form.createError string form.createForm.title string form.createForm.description string form.created string form.name string form.slug string form.category string form.description string form.enabled string form.valueType string form.value string form.submit string form.update string form.updateError string form.updated string form.valueType_options.boolean string form.valueType_options.number string form.valueType_options.string string form.valueType_options.json string
Used by the value-type form field for placeholders and boolean labels.
Key Type value.string_placeholder string value.json_placeholder string value.number_placeholder string value.enabled string value.disabled string