I18n

💡

This documentation covers an older version of Next Admin. If you are using the latest version (>=5.0.0 and above), please refer to the current documentation.

Next Admin supports i18n with the translations prop of the NextAdmin component.

NameTypeDescriptionDefault Value
list.header.add.labelstringThe "Add" button in the list headerAdd
list.header.search.placeholderstringThe placeholder used in the search inputSearch
list.footer.indicator.showingstringThe "Showing from" text in the list indicator, e.g: Showing from 1 to 10 of 25Showing from
list.footer.indicator.tostringThe "to" text in the list indicator, e.g: Showing from 1 to 10 of 25to
list.footer.indicator.ofstringThe "of" text in the list indicator, e.g: Showing from 1 to 10 of 25of
list.row.actions.delete.labelstringThe text in the delete button displayed at the end of each rowDelete
list.row.actions.delete.alertstringThe text in the native alert when the delete action is called in the listAre you sure you want to delete {{count}} element(s)?
list.row.actions.delete.successstringThe text appearing after a successful deletion from the listDeleted successfully
list.row.actions.delete.errorstringThe text appearing after an error during the deletion from the listAn error occured while deleting
list.empty.labelstringThe text displayed when there is no row in the listNo {{resource}} found
list.empty.captionstringThe caption displayed when there is no row in the listGet started by creating a new {{resource}}
form.button.save.labelstringThe text displayed in the form submit buttonSubmit
form.button.delete.labelstringThe text displayed in the form delete buttonDelete
form.delete.alertstringThe text displayed on the alert when the delete button is clickedAre you sure you want to delete this?
form.widgets.file_upload.labelstringThe text displayed in file upload widget to select a fileChoose a file
form.widgets.file_upload.drag_and_dropstringThe text displayed in file upload widget to indicate a drag & drop is possibleor drag and drop
form.widgets.file_upload.deletestringThe text displayed in file upload widget to delete the current fileDelete
form.widgets.multiselect.selectstringThe text displayed in the multiselect widget in list display mode to toggle the select dialogSelect items
actions.labelstringThe text displayed in the dropdown button for the actions listAction
actions.edit.labelstringThe text displayed for the default edit action in the actions dropdownEdit
actions.create.labelstringThe text displayed for the default create action in the actions dropdownCreate
actions.delete.labelstringThe text displayed for the default delete action in the actions dropdownDelete
selector.loadingstringThe text displayed in the selector widget while loading the optionsLoading...
user.logoutstringThe text displayed in the logout buttonLogout
modelobjectObject to custom model and field names. More details{}

Translate model name and fields

There are two ways to translate these default keys, provide a function named getMessages inside the options or provide translations props to NextAdmin component.

Using getMessages allows you to provide an object with a multiple level structure to translate the keys, while the translations props only allow you to provide a flat object (form.widgets.file_upload.delete ex.)

You can also pass your own set of translations. For example you can set a custom action name as a translation key, which will then be translated by the lib.

actions: [
  {
    title: "actions.user.email",
    action: async (...args) => {
      "use server";
      const { submitEmail } = await import("./actions/nextadmin");
      await submitEmail(...args);
    },
    successMessage: "actions.user.email.success",
    errorMessage: "actions.user.email.error",
  },
],

Here, the actions.user.email key will be translated by the lib, and the value will be used as the action title, as well as the success and error messages after the action’s execution.

Currently, you can only translate the following:

  • action title, success and error message
  • field validation error message

Check out the example app for more details on its usage.

Translate model name and fields

By using the model key in the translations object, you can translate the model name and fields.

{
  "model": {
    "User": { // Keep the case sensitive name of the model
      "name": "User",
      "plural": "Users",
      "fields": {
        "email": "Email",
        "password": "Password"
      }
    }
  }
}

If you only use one language for your admin, you should prefer to use the alias system (more details) to customize field names.