From 78e220daad36917d65ffae159f7aba99cf60cbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Mon, 3 Feb 2020 20:29:02 +0100 Subject: Fix lang handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/helpers/index.js | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/helpers/index.js b/src/helpers/index.js index 31cf98b4..d473571f 100644 --- a/src/helpers/index.js +++ b/src/helpers/index.js @@ -23,9 +23,30 @@ import { getLanguage, getLocale } from 'nextcloud-l10n' const languageToBCP47 = () => { + let language = getLanguage().replace(/_/g, '-') + let locale = getLocale() + + // German formal should just be treated as 'de' + if (language === 'de-DE') { + language = 'de' + } + // special case where setting the bc47 region depending on the locale setting makes sense + const whitelist = { + de: { + 'de_CH': 'de-CH', + 'gsw': 'de-CH', + 'gsw_CH': 'de-CH' + } + } + const matchingWhitelist = whitelist[language] + if (typeof matchingWhitelist !== 'undefined' && typeof matchingWhitelist[locale] !== 'undefined') { + return matchingWhitelist[locale] + } + // loleaflet expects a BCP47 language tag syntax - return (getLanguage() + '-' + getLocale()) - .replace(/^([a-z]{2}).*_([A-Z]{2})$/, (match, p1, p2) => p1 + '-' + p2.toLowerCase()) + // when a the nextcloud language constist of two parts we sent both + // as the region is then provided by the language setting + return language } const getNextcloudVersion = () => { -- cgit v1.2.3