Files
freeCodeCamp/common/app/utils/lang.js
Berkeley Martinez 95aab958aa Feature(langauge): Make client history language aware
Remove need for language aware links
2016-07-28 23:40:01 -07:00

40 lines
1015 B
JavaScript

import
supportedLanguages,
{ langTagRegex }
from '../../utils/supported-languages';
const toLowerCase = String.prototype.toLowerCase;
export function getLangFromPath(path) {
const maybeLang = toLowerCase.call(path.split('/')[1]);
if (supportedLanguages[maybeLang]) {
return maybeLang;
}
return 'en';
}
export function addLang(path, lang, primaryLang) {
// if maybeLang is supported continue
// if maybeLang is unsupported lang, remove and use lang
// if maybeLang is not lang tag, add lang tag.
// if both primary and lang are not lang tags default en
const maybeLang = toLowerCase.call(path.split('/')[1]);
const restUrl = path.split('/').slice(2).join('/');
if (supportedLanguages[maybeLang]) {
return path;
}
if (
langTagRegex.test(maybeLang) &&
!supportedLanguages[maybeLang]
) {
return `/${primaryLang || lang }/${restUrl}`;
}
if (supportedLanguages[primaryLang || lang]) {
return `/${primaryLang || lang}${path}`;
}
return `/en${path}`;
}