Ответ, связанный с тем, что IE11 не имеет доступа к свойству navigator.languages.
Необходимо изменить код (все еще можно сделать с рефакторингом!), чтобы проверить, присутствует ли свойство navigator.languages, затем тест для языков и возврат, если условия не были выполнены.
function* setLanguageFromBrowserSettings() {
if (!navigator.languages) {
if ((navigator.language === "en-US") || (navigator.language === "en")) {
console.log("Language set to en-US");
yield put({
type: "Translations/SetLocale",
payload: "en-US"
});
} else if ((navigator.language === "zh") || (navigator.language === "zh-CN") || (navigator.language === "zh-Hans")) {
console.log("Language set to zh-Hans");
yield put({
type: "Translations/SetLocale",
payload: "zh-Hans"
});
}
return 0;
}
if ((navigator.languages[0] === "en-US") || (navigator.languages[0] === "en")) {
console.log("Language set to en-US");
yield put({
type: "Translations/SetLocale",
payload: "en-US"
});
} else if ((navigator.languages[0] === "zh") || (navigator.languages[0] === "zh-CN") || (navigator.languages[0] === "zh-Hans")) {
console.log("Language set to zh-Hans");
yield put({
type: "Translations/SetLocale",
payload: "zh-Hans"
});
}
}
Я думаю, я нашел, почему есть несколько разных ответов на этот вопрос. Когда окно было изменено таким образом, что оно имеет горизонтальную полосу прокрутки (поскольку буфер больше окна) Console.CursorTop, похоже, возвращает неправильную строку. Следующий код работает для меня независимо от размера окна или положения курсора.
public static void ClearLine()
{
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, Console.CursorTop - (Console.WindowWidth >= Console.BufferWidth ? 1 : 0));
}
Без (Console.WindowWidth> = Console.BufferWidth? 1: 0) код может перемещать курсор вверх или вниз, в зависимости от того, какую версию вы используете на этой странице, и состояние окна.