Я реализую многоязычную поддержку на своей веб-странице. Я хотел бы минимизировать мигание страницы, вызванное перезагрузкой страницы, и я пришел к идее изменить язык страницы, не заставляя всю страницу перезагружать. Для достижения этой цели, единственно возможный путь, который приходит на мой взгляд, с использованием JavaScript:JavaScript: изменение языка без страницы Перезагрузка
- Я динамически загружать соответствующий язык .js файл с соответствующими переводами
- я вручную пройти через каждый текстовый объект на странице и обновить его, повторно отправив соответствующее новое текстовое значение
Чтобы предоставить вам пример кода, я вставляю код, который будет обновлять только кнопки отправки. При изменении языка я вызываю функцию, которая динамически загружает соответствующий языковой файл .js.
var fileRef = LoadJsCssFile("Language/svk.js", "js", UpdateLanguage);
После полной загрузки файла средства языка .js, я вызываю функцию, которая обновляет каждый элемент, содержащий текст на веб-странице:
function UpdateLanguage()
{
var buttons = document.getElementsByClassName("submit_button");
for (buttonID in buttons)
{
buttons[buttonID].innerHTML = lang.SUBMIT;
}
};
вручную обновляя каждый текстовый объект в веб-страницы является сложной и ошибок склонный. Поскольку я еще не очень разбираюсь в JavaScript, я думал, если есть способ просто обновить все ключевые элементы веб-страницы с помощью одной команды JavaScript без обтекания веб-страницы?
Если у вас есть какая-либо другая идея, как эффективно реализовать изменение языка без мигания страницы, мне интересно узнать. :-)
Лучше использовать AJAX, чтобы просто загрузить новую страницу, а затем заменить HTML в текущем теле документа. – diolemo
Возможно, вы захотите заменить текст «предложение по предложению» вместо использования одного слова в качестве единицы, поскольку переводы чаще всего касаются всего контекста предложения, а не просто замены отдельных слов, иначе смысл может быть потерян , –
@mattb В противном случае значение * будет * потеряно. – Hassan