kopia lustrzana https://github.com/elk-zone/elk
				
				
				
			
		
			
				
	
	
		
			31 wiersze
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			31 wiersze
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| export function matchLanguages(languages: string[], acceptLanguages: readonly string[]): string | null {
 | |
|   {
 | |
|     // const lang = acceptLanguages.map(userLang => languages.find(lang => lang.startsWith(userLang))).filter(v => !!v)[0]
 | |
|     // TODO: Support es-419, remove this code if we include spanish country variants
 | |
|     const lang = acceptLanguages.map(userLang => languages.find((currentLang) => {
 | |
|       if (currentLang === userLang)
 | |
|         return currentLang
 | |
| 
 | |
|       // Edge browser: case for ca-valencia
 | |
|       if (currentLang === 'ca-valencia' && userLang === 'ca-Es-VALENCIA')
 | |
|         return currentLang
 | |
| 
 | |
|       if (userLang.startsWith('es-') && userLang !== 'es-ES' && currentLang === 'es-419')
 | |
|         return currentLang
 | |
| 
 | |
|       return currentLang.startsWith(userLang) ? currentLang : undefined
 | |
|     })).filter(v => !!v)?.[0]
 | |
|     if (lang)
 | |
|       return lang
 | |
|   }
 | |
| 
 | |
|   const lang = acceptLanguages.map((userLang) => {
 | |
|     userLang = userLang.split('-')[0]!
 | |
|     return languages.find(lang => lang.startsWith(userLang))
 | |
|   }).filter(v => !!v)[0]
 | |
|   if (lang)
 | |
|     return lang
 | |
| 
 | |
|   return null
 | |
| }
 |