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