mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-14 13:18:15 +02:00
Better detection of culture-specific locale in language list
(closes #3842)
This commit is contained in:
+22
-2
@@ -59,14 +59,34 @@ export function utilDetect(force) {
|
||||
// Added due to incomplete svg style support. See #715
|
||||
detected.opera = (detected.browser.toLowerCase() === 'opera' && parseFloat(detected.version) < 15 );
|
||||
|
||||
detected.locale = (navigator.languages && navigator.languages.length)
|
||||
? navigator.languages[0] : (navigator.language || navigator.userLanguage || 'en-US');
|
||||
detected.locale = (navigator.language || navigator.userLanguage || 'en-US');
|
||||
detected.language = detected.locale.split('-')[0];
|
||||
|
||||
// Search `navigator.languages` for a better locale.. Prefer the first language,
|
||||
// unless the second language is a culture-specific version of the first one, see #3842
|
||||
if (navigator.languages && navigator.languages.length > 0) {
|
||||
var code0 = navigator.languages[0],
|
||||
parts0 = code0.split('-');
|
||||
|
||||
detected.locale = code0;
|
||||
detected.language = parts0[0];
|
||||
|
||||
if (navigator.languages.length > 1 && parts0.length === 1) {
|
||||
var code1 = navigator.languages[1],
|
||||
parts1 = code1.split('-');
|
||||
|
||||
if (parts1[0] === parts0[0]) {
|
||||
detected.locale = code1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Loaded locale is stored in currentLocale
|
||||
// return that instead (except in the situation where 'en' might override 'en-US')
|
||||
var loadedLocale = currentLocale || 'en';
|
||||
if (loadedLocale !== 'en') {
|
||||
detected.locale = loadedLocale;
|
||||
detected.language = detected.locale.split('-')[0];
|
||||
}
|
||||
|
||||
// detect text direction
|
||||
|
||||
Reference in New Issue
Block a user