DEV Community

Margish Patel
Margish Patel

Posted on

Speak Everyone's Language: A Guide to Multilingual React Apps! 🔯

In today's world, speaking everyone's language is super important for websites and apps. React, a cool tool for making websites, has some awesome tricks to help with that! In this blog, we're going to dive into how you can easily make your React app understand many languages. It's going to be fun, simple, and totally doable!

Cool Ways to Make Your App Multilingual:

1. DIY Translations:

We can start by doing it ourselves! Think of it like having a secret decoder ring for each language.
We'll create special files for each language, like having different dictionaries.
Then, when our app starts, we'll pick the right dictionary based on the language someone wants.

Languages folder

2. React-Intl Magic:

React-Intl is a powerful library for internationalization (i18n) in React applications.
It's like having a language wizard in your app. It can do things like change numbers, dates, and words into any language.

import React from 'react';
import { FormattedMessage, IntlProvider } from 'react-intl';

const messages = {
  en: {
    greeting: 'Hello!',
  },
  fr: {
    greeting: 'Bonjour!',
  },
};

function App() {
  const [locale, setLocale] = React.useState('en');

  return (
    <IntlProvider locale={locale} messages={messages[locale]}>
      <div>
        <h1><FormattedMessage id="greeting" /></h1>
        <button onClick={() => setLocale('en')}>English</button>
        <button onClick={() => setLocale('fr')}>French</button>
      </div>
    </IntlProvider>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

Similar way there is also one library named i18next

*Which approach do you use for your project?? 🤔 *

Top comments (2)

Collapse
 
niklasbuchfink profile image
Niklas Buchfink

Great start to kick things off with i18n 👏

Which approach do you use for your project?? 🤔

I'm part of the inlang.com team that builds a whole ecosystem of useful i18n tools and I can highly recommend using ParaglideJS. The VS Code extension and the web editor are also helpful, regardless of the library.

@margish288 Our ecosystem could be worth an article if you are looking for new topics :)

Collapse
 
margish288 profile image
Margish Patel

Great!! 🙌🏻