Skip to content

Instantly share code, notes, and snippets.

@mihailsitnic
Last active February 1, 2019 06:42
Show Gist options
  • Save mihailsitnic/e37902ee8412a283f2fc03e41e2bc542 to your computer and use it in GitHub Desktop.
Save mihailsitnic/e37902ee8412a283f2fc03e41e2bc542 to your computer and use it in GitHub Desktop.

Задачка

  • Загружать сайт на языке браузера пользователя
  • Переключать языки сохраняя текущий язык в localStorage

1

Эта переменная определяет язык браузера в формате "en", "en-US", "zh-CN", "ja-JP"

const browserLang = 
    (navigator.languages &&
    navigator.languages[0]) ||
    navigator.language ||
    navigator.userLanguage

2

при помощи substr обрезать строку до первых двух символов

const userLang = browserLang.substr(0, 2)

3

Записать в localStorage текущее значение

localStorage.setItem('userLang', userLang)

4

Написать проверку

const title = document.getElementById('title')
const lang = localStorage.getItem('userLang')

if (lang === 'md') {
    title.innerHTML = 'Salut. Lume!'
} else if (lang === 'ru') {
    title.innerHTML = 'Привет, Мир!'
} else if (lang === 'en') {
    title.innerHTML = 'Hello. World!'
}

5

Создать переключение языков

const md = document.getElementById('md')
const ru = document.getElementById('ru')
const en = document.getElementById('en')

md.onclick = () => {
    localStorage.setItem('userLang', 'md')
    title.innerHTML = 'Salut. Lume!'
}

ru.onclick = () => {
    localStorage.setItem('userLang', 'ru')
    title.innerHTML = 'Привет, Мир!'
}

en.onclick = () => {
    localStorage.setItem('userLang', 'en')
    title.innerHTML = 'Hello. World!'
}

6

Вынести код в методы

getCurrentLang = () => {}
getCurrentLang()

switchLang = () => {}
switchLang()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment