mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 21:48:20 +02:00
Allow locale and language being set via URL param
With the hash-url `locale=en-US` or `locale=de-DE` one can force a locale and language regardless of the given language from the osm-website-settings.
This commit is contained in:
+21
-14
@@ -59,24 +59,31 @@ 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.language || navigator.userLanguage || 'en-US');
|
||||
detected.language = detected.locale.split('-')[0];
|
||||
// Set locale based on url param (format 'en-US') or browser lang (default)
|
||||
var q = utilStringQs(window.location.hash.substring(1));
|
||||
if (q.hasOwnProperty('locale')) {
|
||||
detected.locale = q.locale;
|
||||
detected.language = q.locale.split('-')[0];
|
||||
} else {
|
||||
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('-');
|
||||
// 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];
|
||||
detected.locale = code0;
|
||||
detected.language = parts0[0];
|
||||
|
||||
if (navigator.languages.length > 1 && parts0.length === 1) {
|
||||
var code1 = navigator.languages[1],
|
||||
parts1 = code1.split('-');
|
||||
if (navigator.languages.length > 1 && parts0.length === 1) {
|
||||
var code1 = navigator.languages[1],
|
||||
parts1 = code1.split('-');
|
||||
|
||||
if (parts1[0] === parts0[0]) {
|
||||
detected.locale = code1;
|
||||
if (parts1[0] === parts0[0]) {
|
||||
detected.locale = code1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user