Skip to content

Instantly share code, notes, and snippets.

@austintackaberry
Created April 23, 2018 06:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save austintackaberry/d9cedcd46b54175d2f069c5d5b692bf4 to your computer and use it in GitHub Desktop.
Save austintackaberry/d9cedcd46b54175d2f069c5d5b692bf4 to your computer and use it in GitHub Desktop.
Final index.js for i18n-example
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import registerServiceWorker from "./registerServiceWorker";
import { BrowserRouter } from "react-router-dom";
import { IntlProvider, addLocaleData } from "react-intl";
import en from "react-intl/locale-data/en";
import es from "react-intl/locale-data/es";
import localeData from "./../build/locales/data.json";
addLocaleData([...en, ...es]);
// Define user's language. Different browsers have the user locale defined
// on different fields on the `navigator` object, so we make sure to account
// for these different by checking all of them
const language =
(navigator.languages && navigator.languages[0]) ||
navigator.language ||
navigator.userLanguage;
// Split locales with a region code
const languageWithoutRegionCode = language.toLowerCase().split(/[_-]+/)[0];
// Try full locale, try locale without region code, fallback to 'en'
const messages =
localeData[languageWithoutRegionCode] ||
localeData[language] ||
localeData.en;
ReactDOM.render(
<IntlProvider locale={language} messages={messages}>
<BrowserRouter>
<App />
</BrowserRouter>
</IntlProvider>,
document.getElementById("root")
);
registerServiceWorker();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment