From ad3a5f50394fdb8ea0e61b7ac76b1d5661f03027 Mon Sep 17 00:00:00 2001
From: Brian Peiris <brianpeiris@gmail.com>
Date: Thu, 26 Apr 2018 07:09:43 -0700
Subject: [PATCH] fix i18n in all entry points

---
 src/avatar-selector.js            | 11 ++++-------
 src/react-components/home-root.js | 10 ++--------
 src/react-components/ui-root.js   |  8 +-------
 src/utils/i18n.js                 |  6 ++++++
 4 files changed, 13 insertions(+), 22 deletions(-)
 create mode 100644 src/utils/i18n.js

diff --git a/src/avatar-selector.js b/src/avatar-selector.js
index 4879a47f6..45b0a7eed 100644
--- a/src/avatar-selector.js
+++ b/src/avatar-selector.js
@@ -4,6 +4,8 @@ import queryString from "query-string";
 import { IntlProvider, addLocaleData } from "react-intl";
 import en from "react-intl/locale-data/en";
 
+import { lang, messages } from "./utils/i18n";
+
 import { patchWebGLRenderingContext } from "./utils/webgl";
 patchWebGLRenderingContext();
 
@@ -19,7 +21,8 @@ import { avatars } from "./assets/avatars/avatars";
 import registerTelemetry from "./telemetry";
 import { App } from "./App";
 import AvatarSelector from "./react-components/avatar-selector";
-import localeData from "./assets/translations.data.json";
+
+addLocaleData([...en]);
 
 registerTelemetry();
 
@@ -32,12 +35,6 @@ if (hash.quality) {
   window.APP.quality = isMobile ? "low" : "high";
 }
 
-const lang = ((navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage)
-  .toLowerCase()
-  .split(/[_-]+/)[0];
-addLocaleData([...en]);
-const messages = localeData[lang] || localeData.en;
-
 function postAvatarIdToParent(newAvatarId) {
   window.parent.postMessage({ avatarId: newAvatarId }, location.origin);
 }
diff --git a/src/react-components/home-root.js b/src/react-components/home-root.js
index 8422af8d4..82805ed9f 100644
--- a/src/react-components/home-root.js
+++ b/src/react-components/home-root.js
@@ -2,6 +2,8 @@ import React, { Component } from "react";
 import PropTypes from "prop-types";
 import { IntlProvider, FormattedMessage, addLocaleData } from "react-intl";
 import en from "react-intl/locale-data/en";
+
+import { lang, messages } from "../utils/i18n";
 import homeVideoWebM from "../assets/video/home.webm";
 import homeVideoMp4 from "../assets/video/home.mp4";
 import classNames from "classnames";
@@ -10,16 +12,8 @@ import { ENVIRONMENT_URLS } from "../assets/environments/environments";
 import HubCreatePanel from "./hub-create-panel.js";
 import InfoDialog from "./info-dialog.js";
 
-const navigatorLang = ((navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage)
-  .toLowerCase()
-  .split(/[_-]+/)[0];
-
-import localeData from "../assets/translations.data.json";
 addLocaleData([...en]);
 
-const lang = (navigatorLang && localeData[navigatorLang]) || "en";
-const messages = localeData[lang] || localeData.en;
-
 class HomeRoot extends Component {
   static propTypes = {
     intl: PropTypes.object,
diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js
index b9eccdcf1..55f5ca69b 100644
--- a/src/react-components/ui-root.js
+++ b/src/react-components/ui-root.js
@@ -9,6 +9,7 @@ import en from "react-intl/locale-data/en";
 import MovingAverage from "moving-average";
 import screenfull from "screenfull";
 
+import { lang, messages } from "../utils/i18n";
 import AutoExitWarning from "./auto-exit-warning";
 import { TwoDEntryButton, GenericEntryButton, GearVREntryButton, DaydreamEntryButton } from "./entry-buttons.js";
 import { ProfileInfoHeader } from "./profile-info-header.js";
@@ -22,15 +23,8 @@ import faQuestion from "@fortawesome/fontawesome-free-solid/faQuestion";
 
 const mobiledetect = new MobileDetect(navigator.userAgent);
 
-const lang = ((navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage)
-  .toLowerCase()
-  .split(/[_-]+/)[0];
-
-import localeData from "../assets/translations.data.json";
 addLocaleData([...en]);
 
-const messages = localeData[lang] || localeData.en;
-
 const ENTRY_STEPS = {
   start: "start",
   mic_grant: "mic_grant",
diff --git a/src/utils/i18n.js b/src/utils/i18n.js
new file mode 100644
index 000000000..e112bbf33
--- /dev/null
+++ b/src/utils/i18n.js
@@ -0,0 +1,6 @@
+import localeData from "../assets/translations.data.json";
+const navigatorLang = ((navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage)
+  .toLowerCase()
+  .split(/[_-]+/)[0];
+export const lang = (localeData[navigatorLang] && navigatorLang) || "en";
+export const messages = localeData[lang] || localeData.en;
-- 
GitLab