Custom component internationalization

AdminJS can be used in multiple languages as described in this tutorial. Creating an international version of our custom components is also possible.

Assume we have created a custom React component as described here. We can utilize a generic AdminJS hook called useTranslations.

// ... 
import { useTranslations } from "adminjs"
// ...

const CustomComponent = (props) => {
    const {translateComponent} = useTranslations()
    return <div> {translateComponent('CustomComponent.textToTranslate')} </div>
}

We should also add translations to the component's namespace in our locale config to make this work.

const options = {
  // ...
  locale: {
    translations: {
      en: {
        components: {
          CustomComponent: {
            textToTranslate: 'This is text to translate'
          }
        }
      }
    }
  }
  // ...
}

If we would like to create custom messages to be handled by useNotice hook we have to add our component section to the messages namespace.

Usage:

Last updated