From 62280147d195e41d3cacfd7204cd86676cae2a56 Mon Sep 17 00:00:00 2001 From: Emanuel Date: Thu, 18 Jun 2020 14:22:27 +0200 Subject: [PATCH] Add option to only detect language on root url #761 --- src/helpers/constants.js | 3 ++- src/templates/plugin.main.js | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/helpers/constants.js b/src/helpers/constants.js index 07e4c7c54..e9f66fc1e 100644 --- a/src/helpers/constants.js +++ b/src/helpers/constants.js @@ -35,7 +35,8 @@ exports.DEFAULT_OPTIONS = { cookieDomain: null, cookieKey: 'i18n_redirected', alwaysRedirect: false, - fallbackLocale: '' + fallbackLocale: '', + onlyRedirectFromRoot: false }, differentDomains: false, seo: false, diff --git a/src/templates/plugin.main.js b/src/templates/plugin.main.js index a55c1f36d..96a507a3c 100644 --- a/src/templates/plugin.main.js +++ b/src/templates/plugin.main.js @@ -132,12 +132,14 @@ export default async (context) => { return false } - const { alwaysRedirect, fallbackLocale } = detectBrowserLanguage + const { alwaysRedirect, fallbackLocale, onlyRedirectFromRoot } = detectBrowserLanguage let matchedLocale if (useCookie && (matchedLocale = app.i18n.getLocaleCookie())) { // Get preferred language from cookie if present and enabled + } else if (onlyRedirectFromRoot && route.path !== '/') { + // Skip detection if not in root path } else if (process.client && typeof navigator !== 'undefined' && navigator.languages) { // Get browser language either from navigator if running on client side, or from the headers matchedLocale = matchBrowserLocale(localeCodes, navigator.languages)