summaryrefslogtreecommitdiff
path: root/web-ui/src/common
diff options
context:
space:
mode:
authorAnike Arni <aarni@thoughtworks.com>2017-02-23 17:50:56 -0300
committerAnike Arni <aarni@thoughtworks.com>2017-02-23 17:50:56 -0300
commitfb4630207d86d39ea05dd679b2724be87597c518 (patch)
tree0573b4e7c18c88742a6cbecfceba009c3dbb4c34 /web-ui/src/common
parentde14bb0376d5b0ed511e52251a7c0e6cc38c39eb (diff)
[#907] Moves i18n and util files to common directory
with @thaissiqueira
Diffstat (limited to 'web-ui/src/common')
-rw-r--r--web-ui/src/common/app.js2
-rw-r--r--web-ui/src/common/i18n.js40
-rw-r--r--web-ui/src/common/util.js8
3 files changed, 49 insertions, 1 deletions
diff --git a/web-ui/src/common/app.js b/web-ui/src/common/app.js
index f6594557..03a69fc9 100644
--- a/web-ui/src/common/app.js
+++ b/web-ui/src/common/app.js
@@ -18,7 +18,7 @@
import React from 'react';
import { I18nextProvider } from 'react-i18next';
-import internationalization from '../i18n';
+import internationalization from 'src/common/i18n';
const App = ({ i18n = internationalization, child }) => (
<I18nextProvider i18n={i18n}>
diff --git a/web-ui/src/common/i18n.js b/web-ui/src/common/i18n.js
new file mode 100644
index 00000000..db107dc7
--- /dev/null
+++ b/web-ui/src/common/i18n.js
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2017 ThoughtWorks, Inc.
+ *
+ * Pixelated is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Pixelated is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+ */
+import i18n from 'i18next';
+import i18nBackend from 'i18nextXHRBackend';
+import I18nDetector from 'i18nextBrowserLanguageDetector';
+
+const detector = new I18nDetector();
+const detect = detector.detect.bind(detector);
+
+detector.detect = (detectionOrder) => {
+ const result = detect(detectionOrder);
+ return result.replace('-', '_');
+};
+
+i18n
+ .use(i18nBackend)
+ .use(detector)
+ .init({
+ fallbackLng: 'en_US',
+ parseMissingKeyHandler: key => (`"${key} untranslated"`),
+ backend: {
+ loadPath: 'public/locales/{{lng}}/{{ns}}.json'
+ }
+ });
+
+export default i18n;
diff --git a/web-ui/src/common/util.js b/web-ui/src/common/util.js
new file mode 100644
index 00000000..effb3d9c
--- /dev/null
+++ b/web-ui/src/common/util.js
@@ -0,0 +1,8 @@
+export const hasQueryParameter = (param) => {
+ const decodedUri = decodeURIComponent(window.location.search.substring(1));
+ return !(decodedUri.split('&').indexOf(param) < 0);
+};
+
+export default {
+ hasQueryParameter
+};