DEV Community

Cover image for How to Add Internationalization to a Tailwind CSS Admin Template
Hitesh Chauhan
Hitesh Chauhan

Posted on

How to Add Internationalization to a Tailwind CSS Admin Template

How to Add Internationalization to a Tailwind CSS Admin Template

Internationalization (i18n) is crucial for making your admin dashboard accessible to users from different regions.

Why Internationalization?

  • Expands your user base
  • Improves accessibility and usability
  • Helps in compliance with regional requirements

Step-by-Step Guide to Adding i18n in a Tailwind CSS Admin Dashboard

1. Choose an i18n Library

For React-based dashboards, you can use react-i18next, a powerful library that integrates smoothly with Next.js and Tailwind CSS.

npm install i18next react-i18next i18next-browser-languagedetector
Enter fullscreen mode Exit fullscreen mode

2. Set Up Translation Files

Create a locales folder and add JSON files for different languages.

locales/en.json

{
  "dashboard": "Dashboard",
  "settings": "Settings",
  "logout": "Logout"
}
Enter fullscreen mode Exit fullscreen mode

locales/es.json (for Spanish)

{
  "dashboard": "Tablero",
  "settings": "Configuraciones",
  "logout": "Cerrar sesión"
}
Enter fullscreen mode Exit fullscreen mode

3. Configure i18n in Your Project

Create an i18n.js file and initialize i18next.

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';

i18n
  .use(initReactI18next)
  .use(LanguageDetector)
  .init({
    resources: {
      en: { translation: require('./locales/en.json') },
      es: { translation: require('./locales/es.json') },
    },
    fallbackLng: 'en',
    detection: { order: ['queryString', 'cookie'] },
    interpolation: { escapeValue: false },
  });

export default i18n;
Enter fullscreen mode Exit fullscreen mode

4. Use Translations in Components

Modify your Tailwind CSS admin template to use the translation function.

import { useTranslation } from 'react-i18next';

export default function Sidebar() {
  const { t } = useTranslation();

  return (
    <nav className="p-4 bg-gray-800 text-white">
      <ul>
        <li>{t('dashboard')}</li>
        <li>{t('settings')}</li>
        <li>{t('logout')}</li>
      </ul>
    </nav>
  );
}
Enter fullscreen mode Exit fullscreen mode

5. Add a Language Switcher

import { useTranslation } from 'react-i18next';

export default function LanguageSwitcher() {
  const { i18n } = useTranslation();

  return (
    <select
      value={i18n.language}
      onChange={(e) => i18n.changeLanguage(e.target.value)}
      className="p-2 border rounded"
    >
      <option value="en">English</option>
      <option value="es">Español</option>
    </select>
  );
}
Enter fullscreen mode Exit fullscreen mode

Recommended Tailwind CSS Admin Templates

You can integrate this i18n setup with the following Tailwind-based admin dashboards:

Free Templates

  1. Spike Free – A lightweight, modern dashboard.

  2. Modernize Tailwind Free – Clean UI with essential dashboard features.

Image description

With this setup, your dashboard will be ready for international users! 🚀

Top comments (0)