3.12.2 • Published 1 day ago

use-intl v3.12.2

Weekly downloads
418
License
MIT
Repository
github
Last release
1 day ago

🌐 use-intl

Internationalization for React

Features

Internationalization (i18n) is an essential part of the user experience, therefore use-intl gives you all the parts you need to get language nuances right.

  • 🌟 ICU message syntax: Localize your messages with interpolation, cardinal & ordinal plurals, enum-based label selection and rich text.
  • 📅 Dates, times & numbers: Apply appropriate formatting without worrying about server/client differences like time zones.
  • Type-safe: Speed up development with autocompletion for message keys and catch typos early with compile-time checks.
  • 💡 Hooks-based API: Learn a single API that can be used across your code base to turn translations into plain strings or rich text.
  • ⚔️ Standards-based: Use the best parts of built-in JavaScript APIs and supplemental lower-level APIs from Format.JS.

What does it look like?

// UserProfile.tsx
import {useTranslations} from 'use-intl';
 
export default function UserProfile({user}) {
  const t = useTranslations('UserProfile');
 
  return (
    <section>
      <h1>{t('title', {firstName: user.firstName})}</h1>
      <p>{t('membership', {memberSince: user.memberSince})}</p>
      <p>{t('followers', {count: user.numFollowers})}</p>
    </section>
  );
}
// en.json
{
  "UserProfile": {
    "title": "{username}'s profile",
    "membership": "Member since {memberSince, date, short}",
    "followers": "{count, plural, ↵
                    =0 {No followers yet} ↵
                    =1 {One follower} ↵
                    other {# followers} ↵
                  }"
  }
}

Installation

  1. npm install use-intl
  2. Add the provider
  3. Use internationalization in components
import {IntlProvider, useTranslations} from 'use-intl';

// You can get the messages from anywhere you like. You can also
// fetch them from within a component and then render the provider 
// along with your app once you have the messages.
const messages = {
  "App": {
    "hello": 'Hello {username}!'
  }
};

function Root() {
  return (
    <IntlProvider messages={messages} locale="en">
      <App user={{name: 'Jane'}} />
    </IntlProvider>
  );
}

function App({user}) {
  const t = useTranslations('App');
  return <h1>{t('hello', {username: user.name})}</h1>;
}

Have a look at the minimal setup example to explore a working app.

→ Read the docs

3.12.1

2 days ago

3.12.2

1 day ago

3.12.0

8 days ago

3.11.3

17 days ago

3.11.2

17 days ago

3.11.1

30 days ago

3.11.0

1 month ago

3.10.0

1 month ago

3.9.5

2 months ago

3.9.4

2 months ago

3.9.3

2 months ago

3.9.2

2 months ago

3.9.1

2 months ago

3.9.0

2 months ago

3.8.0

3 months ago

3.7.0

3 months ago

3.6.0

3 months ago

3.6.0-alpha.1

3 months ago

3.5.4

3 months ago

3.5.3

3 months ago

3.5.2

3 months ago

3.5.1

3 months ago

3.5.0

3 months ago

3.4.5

4 months ago

3.4.4

4 months ago

3.4.3

4 months ago

3.4.2

4 months ago

3.4.1

4 months ago

3.4.0

5 months ago

3.3.3

5 months ago

3.3.2

5 months ago

3.3.1

5 months ago

3.2.2

5 months ago

3.2.1

5 months ago

3.2.0

5 months ago

3.2.5

5 months ago

3.2.4

5 months ago

3.2.3

5 months ago

2.22.1

6 months ago

2.22.0

6 months ago

2.22.3

6 months ago

2.22.2

6 months ago

3.1.3

5 months ago

3.1.2

6 months ago

3.1.1

6 months ago

3.1.0

6 months ago

3.1.4

5 months ago

2.21.0

7 months ago

3.0.3

6 months ago

3.0.2

6 months ago

3.0.1

6 months ago

3.0.0

6 months ago

3.3.0

5 months ago

3.0.0-rc.6

7 months ago

3.0.0-rc.5

7 months ago

2.17.4-alpha.1

10 months ago

2.19.4

9 months ago

2.19.2

9 months ago

2.19.3

9 months ago

2.19.0

10 months ago

2.19.1

9 months ago

2.15.0

11 months ago

2.15.1

11 months ago

3.0.0-beta.1

9 months ago

3.0.0-beta.3

8 months ago

3.0.0-beta.2

8 months ago

2.17.5-alpha.1

10 months ago

2.14.6

12 months ago

2.14.3

12 months ago

2.18.0

10 months ago

2.17.2-alpha.1

10 months ago

2.17.2-alpha.2

10 months ago

2.17.2-alpha.3

10 months ago

2.17.4

10 months ago

2.17.5

10 months ago

2.17.2

10 months ago

2.17.3

10 months ago

2.17.0

10 months ago

2.17.1

10 months ago

2.20.2

8 months ago

2.20.0

9 months ago

2.20.1

8 months ago

2.16.0

10 months ago

2.11.0

1 year ago

2.13.0-beta.1

1 year ago

2.13.0-beta.2

1 year ago

2.13.4

1 year ago

2.13.2

1 year ago

2.13.0

1 year ago

2.13.1

1 year ago

2.12.0-alpha.1

1 year ago

2.12.0

1 year ago

2.14.1

12 months ago

2.14.2

12 months ago

2.10.3

1 year ago

2.14.0

12 months ago

2.10.4

1 year ago

2.8.0

2 years ago

2.9.2

1 year ago

2.9.1

2 years ago

2.7.7-alpha.0

2 years ago

2.11.0-alpha.2

1 year ago

2.11.0-alpha.1

1 year ago

2.10.1

1 year ago

2.10.2

1 year ago

2.10.0

1 year ago

2.9.0

2 years ago

2.9.2-alpha.0

1 year ago

2.10.0-alpha.3

1 year ago

2.10.0-alpha.4

1 year ago

2.7.6

2 years ago

2.7.5

2 years ago

2.7.4-alpha.2

2 years ago

2.7.4

2 years ago

2.7.3

2 years ago

2.7.3-alpha.0

2 years ago

2.7.2-alpha.1

2 years ago

2.7.1-alpha.5

2 years ago

2.7.1-alpha.4

2 years ago

2.7.1-alpha.2

2 years ago

2.7.1-alpha.1

2 years ago

2.7.1-alpha.0

2 years ago

2.7.0

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.4.1

2 years ago

2.6.0

2 years ago

2.4.1-alpha.1

2 years ago

2.5.0

2 years ago

2.4.1-alpha.3

2 years ago

2.4.1-alpha.2

2 years ago

2.4.1-alpha.5

2 years ago

2.4.1-alpha.4

2 years ago

2.3.2

2 years ago

2.4.0

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.5

2 years ago

2.3.0

2 years ago

2.2.1

2 years ago

2.2.0

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0-alpha.1

3 years ago

2.0.0

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.6

3 years ago

1.4.7

3 years ago

1.4.5

3 years ago

1.4.4

3 years ago

1.4.3

3 years ago

1.4.3-alpha.5

3 years ago

1.4.3-alpha.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.1-alpha.0

3 years ago

0.1.1-alpha.31

3 years ago

1.2.0

3 years ago

1.3.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago

0.0.1

3 years ago