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}`;
							 | 
						||
| 
								 | 
							
								}
							 |