40 lines
		
	
	
		
			1015 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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}`;
 | 
						|
}
 |