Делаем мультиязычный сайт c JavaScript

  Рет қаралды 61,486

WebDev с нуля. Канал Алекса Лущенко

WebDev с нуля. Канал Алекса Лущенко

3 жыл бұрын

Курс JS 2.0: itgid.info/course/javascript-2
Курс HTML для JS разработчиков: itgid.info/course/html
Остальные курсы: itgid.info/
Телеграмм канал: t.me/itgid_info
GIT: github.com/itgidinfo/multilang
Как сделать мультиязычный многоязычный сайт на JavaScript

Пікірлер: 112
@Boudybuilder
@Boudybuilder 11 ай бұрын
Еще не досмотрел, но уже ставлю комментарий - Очень приятно рассказывает! Хочется слушать.
@MrVIPKent
@MrVIPKent Жыл бұрын
Олександр, дякую Вам за Ваші відео! Переглядаю поступово весь Ваш канал, лайкаю кожне відео, бо кожне з них це просто чиста інформація по JS, мій рівень та скіл значно виріс. Багато хто чекає, щоб ви створили курс по Ангуляр!
@user-ug1vi3bv1f
@user-ug1vi3bv1f 2 жыл бұрын
Алекс, огромное Вам спасибо за Ваш труд!!! Очень помогаете понять js
@user-pr7pw6sp3u
@user-pr7pw6sp3u Жыл бұрын
подача материала на супер высоком уровне! спасибо
@Vladimir-yh2dl
@Vladimir-yh2dl 2 жыл бұрын
Александр, как и всегда прекрасно и полезно ! Спасибо
@Anatoli-bq1pe
@Anatoli-bq1pe Жыл бұрын
Огромная благодарность вам за ваши труды!
@alien2364
@alien2364 3 жыл бұрын
Супер! Неделю назад думал над этим вопросом)
@arseniac681
@arseniac681 2 жыл бұрын
Очень полезное видео. Спасибо, Алекс!
@user-vg5zk5vx2n
@user-vg5zk5vx2n 3 жыл бұрын
Группировку нужно делать по языкам, отдельный файл для каждого языка. Это позволит нескольким людям работать над разными переводами одновременно.
@theteochanel
@theteochanel Жыл бұрын
для первого раза сойдёт СУПЕР! спасибо
@nefed-L
@nefed-L 5 ай бұрын
Как всегда урок -- супер!
@galinaslesareva7114
@galinaslesareva7114 Жыл бұрын
Делала по видео с небольшими изменениями (без перезагрузки, document.title = langArr.unit[hash] и проч.). Работает. Спасибо !
@Pavel_Kirillov
@Pavel_Kirillov 2 жыл бұрын
Спасибо! Ваше видео было полезно.
@seoonlyRU
@seoonlyRU 2 жыл бұрын
хорошее чоткое видео!!! лайк за него от вебмастера-легенды СЕООНЛИ
@nodirayakubova6395
@nodirayakubova6395 3 жыл бұрын
Супер большое спасибо 👍👍👍
@Lemoonbird
@Lemoonbird 5 ай бұрын
Спасибо за видео! Вопрос: будут ли страницы с hash en и ua индексироваться поисковиками по соответствующим языкам?
@MrColins710
@MrColins710 3 жыл бұрын
класний урок, дякую
@artemsmirnoff9821
@artemsmirnoff9821 3 жыл бұрын
Супер!
@maksimpkyjv
@maksimpkyjv 2 жыл бұрын
Просто і зрозуміло. Дяка!
@user-ed8eb6cx7o
@user-ed8eb6cx7o 2 жыл бұрын
Пушка, бомба, петарда!
@denysivashchenko2080
@denysivashchenko2080 3 жыл бұрын
Супер 👍🏻
@user-os8yr7mi2u
@user-os8yr7mi2u 3 жыл бұрын
Добрый день. Спасибо за видео-урок. Подскажите пожалуйста, сделал все точно так же но но после выбора языка в адресной строке есть изменения а сам язык не переключается (при выборе любого языка страница перезагружается но остается"ua")?
@nikitasalnikov5507
@nikitasalnikov5507 Жыл бұрын
Здравствуйте. Видео зачетное, но не подскажете как сделать такое для многостраничного сайта? классы также копирую, но у меня перестает меняться с языка на язык
@AlexDanilenko
@AlexDanilenko 3 жыл бұрын
Отличная идея с переключением языков. Один вопрос - в чём смысл замены URL и перезагрузки страницы? Разве нельзя подменять элементы исходя из select.value? И во всём коде вместо переменной hash использовать переменную lang? Для чего дополнительные реверансы?
@user-wi7ku4hu2p
@user-wi7ku4hu2p 3 жыл бұрын
Классная идея реализации. Очень интересно увидеть ваше решение с использованием контекста, чтобы выполнять смену языка без перезагрузки страницы (на случаи, если с сервера подгружается много данных, чтобы не загружать их по-новой каждый раз)
@rpnXN
@rpnXN 3 жыл бұрын
это в реакт тогда ) а там это в 3 функции
@andreykravchenko2657
@andreykravchenko2657 3 жыл бұрын
Добрый день, подскажите пожалуйста в каком уроке по верстке есть о dl, dt тегах ?
@romanchernyshov2632
@romanchernyshov2632 Жыл бұрын
Спасибо большое!
@hamidullonematullayev7634
@hamidullonematullayev7634 2 жыл бұрын
Thank you for video very good👍👍
@kiosikee
@kiosikee 11 ай бұрын
spasibo vam bolshoe
@michaelkamko
@michaelkamko 2 жыл бұрын
Очень крутой видос и подача материала. Было бы круто, если бы было без перезагрузки страницы и без смены адреса (ищу именно это, но видос все равно посмотрел). Спасибо!
@VIJana79
@VIJana79 2 жыл бұрын
так у него и так язык меняется без перезагрузки страницы, разве нет?
@redwalkie3552
@redwalkie3552 2 жыл бұрын
@@VIJana79 все правильно.
@user-sz7pu7qj3z
@user-sz7pu7qj3z Жыл бұрын
Чудовий контент, як то кажуть, просто про складне.
@user-id4bw3tf5g
@user-id4bw3tf5g 2 жыл бұрын
спасибо за видео, вы не хотели бы тоже самое но с фреймворк i18next ?
@exploringtheworld8780
@exploringtheworld8780 3 жыл бұрын
Спасибо
@alexandrlupa
@alexandrlupa 3 жыл бұрын
В чем разница в браузере между location и window.location? Вы уверенны что она(разница) есть? Или это зацепка для комментариев?
@en_li_85
@en_li_85 9 ай бұрын
а можно через css стили подключить разные языки? типа div { content: "english";}.и переподключать link через java script?
@toughguy867
@toughguy867 Жыл бұрын
А такую реализацию можно использовать в вордпресс? Есть причины, по которым не использ плагины ВП.
@mendelandriy2791
@mendelandriy2791 Жыл бұрын
спасибо очень помогли
@profidev_js
@profidev_js 2 жыл бұрын
А как сделать локализацию? если человек зашел из Англии, что-бы сразу английская версия вылезла
@user-bx7ly2th3b
@user-bx7ly2th3b 2 жыл бұрын
я, как-то предпочитаю, такую модель реализовывать на стороне сервера, чтобы не грузить клиента лишними данными в виде языков, которые не будут использованы (т.к. одновременно может отображаться только 1 язык же)
@StarkElessar
@StarkElessar Жыл бұрын
Александр, спасибо за идею, как это сделать вообще возможно, я решил делать почти, как вы но только через data-атрибуты, data-lang="name" и так далее..
@user-hj9nt5ne2r
@user-hj9nt5ne2r Жыл бұрын
еще бы написал как это сделать )
@sergei-sabitov
@sergei-sabitov 3 жыл бұрын
А не лучше класс на какой-нибудь data-атрибут заменить?
@itgid
@itgid 3 жыл бұрын
В этом видео показа идея кода. С кучей ограничений по возможности применения. А реализовать можно как угодно.
@jamesmay5088
@jamesmay5088 2 жыл бұрын
Здраствуйте, можете помочь с реализацией через дата-атрибут? Я в html прописал дата-атрибути для каждого нужного для перевода елемента, и сделал отдельний файл с переводом для двух язиков и группировал сначало по язику, а не так как сделал автор видео. Одно не могу сделать подходящий js-код для етого, попробовал реализовать как автор видео, но все-равно не работает( И для своего сайта я не делал селект, как автор видео, а просто сделал две ссилки (en, ru). Может у вас есть готовий js-код для перевода через дата-атрибути?
@user-hm4pv5ou7j
@user-hm4pv5ou7j Жыл бұрын
Супер
@VinneyDub
@VinneyDub 2 жыл бұрын
Допустим есть на сайте селектор как в нем переводить значения?
@ConstantineKa
@ConstantineKa 3 жыл бұрын
Объясните кто-нибудь почему массив из объектов в фигурных скобках, а не объекты внутри объекта?
@user-tc7si5iv1q
@user-tc7si5iv1q 3 жыл бұрын
Так как этот файл - имитация JSON формата. А в JSON всё пишется через кавычки, иначе будут ошибки
@_fulgrim_9865
@_fulgrim_9865 6 ай бұрын
Uncaught ReferenceError: Cannot access 'langArr' before initialization Ошибка, подскажите как устранить?
@romanrudyy9335
@romanrudyy9335 10 ай бұрын
Дякую!
@mrakov
@mrakov 3 жыл бұрын
Я привык уже что пишется код не бэст, главное идея для реализации и все ок и, но querySelector в цикле это "некст лвл плей"... Вроде можно 1 querySelectorAll и циклом по нему уменьшить количество запросов в дом.
@itgid
@itgid 3 жыл бұрын
конечно можно. Это затравка. Главные преимущества я рассмотрю в коде реакт курса.
@wake378
@wake378 2 жыл бұрын
а можешь подробнее рассказать, как в этом случае использовать querySelectorAll?
@mrakov
@mrakov Жыл бұрын
@@wake378 можно было все элементы получить заранее по селектору, и хранить их по ключу этому которому в цикле ищем, или как хеш таблицу или сет какой-нибудь. У нас ведь контент страницы(структура) не меняется. Зато доступ будет по сложности n(1)
@kommersant5822
@kommersant5822 Жыл бұрын
Здравствуйте, можете помочь? перевод работает, а на попапе нет, подскажите что может быть не так?
@LuciferAngelos
@LuciferAngelos 3 жыл бұрын
Чтобы VSCode переносил строки новую строку, когда она вылезает за границы редактора - нужно нажать Alt+Z.
@indigosay
@indigosay 3 жыл бұрын
Там в настройках wrap поставить галочу и всё автоматически будет
@bvivg19
@bvivg19 Жыл бұрын
Если есть плагин на px to em rem то это не будет работать
@user-uf4hz9uv3h
@user-uf4hz9uv3h Жыл бұрын
Нкгкгугвнсшкга
@dolllarox8681
@dolllarox8681 2 жыл бұрын
Например у тебя есть соц сеть, и ты хочешь, чтобы люди со всего мира, могли общаться друг с другом без знания языка. Можно ли в чат добавить функцию перевода на язык который ты хочешь ? То есть при включении данной функции, все сообщения которые будут тебе писать иностранцы, они будут переводиться
@pschPvl
@pschPvl 2 жыл бұрын
китайцы уже давно этим пользуются в своей соцсети, WeChat называется
@eugenetkv
@eugenetkv Жыл бұрын
Повторно не переводит тот же самый текст, у меня допустим есть энное количество карточек одинаковых, первую переводит дальше нет
@teamitsystem2114
@teamitsystem2114 2 жыл бұрын
Добрый день, Александр. Смена языка в хроме в самом select не происходит, так же как и в телефоне. Подскажите пожалуйста почему.
@itgid
@itgid 2 жыл бұрын
Увы без кода
@coolbooy9990
@coolbooy9990 Жыл бұрын
Дякую, що поставили переклад й на українську мову)
@amoriblain3655
@amoriblain3655 2 жыл бұрын
Может быть, раз так правильно делать мультиязычный сайт через бекэнд, сделать видео про это?
@Wyraxx
@Wyraxx 3 жыл бұрын
Класне відео, від себе хочу додати, що UA це код країни, а код мов визначаеться стандартом ISO-639 наступним чином: 639-1 639-2 639-3 Назва мови Оригінальна назва uk ukr ukr Українська Українська en eng eng Англійська English
@danunah12
@danunah12 4 ай бұрын
Будут ли поисковики трех разных языков выводить на эту страницу или только один, или никто? В HTML файле нет текста для поисковиков, будут ли поисковики находить запрашиваемый текст?
@itgid
@itgid 4 ай бұрын
Если правильно реализовать пути - то поисковик будет видеть разные страницы и для разных языков будет корректно искать.
@danunah12
@danunah12 4 ай бұрын
@@itgidНа Вашем примере правильно реализованы пути или нужен другой подход для реализации правильного пути для поисковиков на разных языках?
@helgi_trxnv
@helgi_trxnv 3 жыл бұрын
Почему автор всё время называет JS объект из lang.js массивом?
@Victor90056
@Victor90056 3 жыл бұрын
Не согласен, что нужно делать один файл с разными языками. Удобнее сделать 1 файл - 1 язык.
@user-pr7pw6sp3u
@user-pr7pw6sp3u Жыл бұрын
подскажите, подогнал ваш код на сайт, проблема есть в том что когда переходишь на другую страницу на доли секунды мелькает перевод другого языка. Как можно исправить?
@jaymelanister548
@jaymelanister548 Ай бұрын
Разобрались как? Сам вот только столкнулся с этим.
@Levchenski
@Levchenski 3 жыл бұрын
Вы сказали что это массив но скобки объекта 3:35
@ksawl
@ksawl 3 жыл бұрын
самое интересное начнется когда надо будет этот сайт проиндексировать)))
@WebDev_51
@WebDev_51 3 жыл бұрын
что начнётся?
@richardwong4613
@richardwong4613 3 жыл бұрын
Поисковики уже давно могут читать контент из js файлов.
@ksawl
@ksawl 3 жыл бұрын
@@richardwong4613 вероятно для этого и придумали SSR, потому что поисковики отлично индексируют js))
@richardwong4613
@richardwong4613 3 жыл бұрын
@@ksawl SSR для создания ссылок на отдельные страницы. А текстовое содержимое уже загруженного JS скрипт поисковики видят.
@anetkaf2558
@anetkaf2558 Жыл бұрын
Скажите, как назначить placeholder класс, на сайте много полей ввода и не понятно как их переводить, мы же не можем ему назначить класс? И если есть слайдер на сайте, то видимый экрану текст переводится, а тот текст на который нужно нажать на слайдер нет (в слайдере 10 отзывов, первые 3 всегда видимы, остальный чтоб увидеть нужно нажать на стрелку в стороны, тобиш продлистать слайд, и вот этот текст который мы видем при пролистывании он не переводится), как решить эту проблему?
@FA1F.W
@FA1F.W Жыл бұрын
со слайдерами я пока не разбирался. А что касается placeholder, то я делал так: if (langSwitcher.checked) { lang = "ru" username.setAttribute("placeholder", "Ваше имя"); email.setAttribute("placeholder", "Ваша почта"); } else { lang = "en" username.setAttribute("placeholder", "Your name"); email.setAttribute("placeholder", "Email"); } Незнаю насколько это колхоз. Если у Вас 4-5 полей для ввода, то получается 10 строк кода, если будет какая-то гигантская форма для заполнения - то конечно holyCrap. Если кто знает как менять placeholder, title, validityMessage and customValidity у форм - то буду рад ссылочке где про это почитать
@anetkaf2558
@anetkaf2558 Жыл бұрын
@@FA1F.W у меня не работает этот код ( ставлю этот код в файл lang, и после этого на всей странице сбрасывается перевод, ставлю этот код в отдельный файл js -ничкго не происходит. Может я делаю что-то не то?
@FA1F.W
@FA1F.W Жыл бұрын
@@anetkaf2558 у меня реализовано только 2 языка: англ и рус. Поэтому переключатель я сделал из checkbox. Блин, я только что компьютер выключил😅. Мне бы проще или ваш код увидеть или просто скинуть свой
@anetkaf2558
@anetkaf2558 Жыл бұрын
@@FA1F.W У меня тоже на 2х языках. Отправить Вот HTML, а перевод сделала по видео. Просто JS я только начинаю учить и не понимаю что там
@Firzj
@Firzj Жыл бұрын
Отличный гайд, но я столкнулся с проблемой. Добавил абсолютно идентичный код (строка 25+ queryselector innerhtml) но при выборе языка язык не меняется. Все классы из html и js для перевода указал правильно. В консоли выдает ReferenceError: langArr is not defined
@Firzj
@Firzj Жыл бұрын
@@Blueris_In_Galaxy спасибо за наводку 👍,действительно помогло. Долго ломал голову, а все оказалось так просто 😅
@Blueris_In_Galaxy
@Blueris_In_Galaxy Жыл бұрын
@@Firzj очень рад что помогло. Сам тоже на этом гайде построил сайт
@maksimbadu7696
@maksimbadu7696 Жыл бұрын
В мене та сама помилка, можите підсказати, яким чином її усунули, дякую!
@Blueris_In_Galaxy
@Blueris_In_Galaxy Жыл бұрын
@@maksimbadu7696 извините, никакого расизма, но я не понимаю по украински
@Blueris_In_Galaxy
@Blueris_In_Galaxy Жыл бұрын
або навпаки
@dzysyak
@dzysyak 3 жыл бұрын
Лучше мультиязычность делать на CSS ;) Это веселее :)
@dzysyak
@dzysyak 3 жыл бұрын
@@Makaler Более того, еще удобно картинки с языком менять :)
@toxatime3330
@toxatime3330 3 жыл бұрын
Не понял, зачем нужна 25 строка кода? Объясните , пожалуйста, какую функцию она выполняет
@LuciferAngelos
@LuciferAngelos 3 жыл бұрын
Достаёт из DOM'а title документа и присваивает ему значение ключа unit из массива langArr, в котором есть другой ассоциативный массив, в котором есть совпадение со значением hash. Т.е., ранее по коду ты получаешь значение hash из адресной строки, как en u\ua. К примеру, получил значение ru. Джаваскрипт лезет в ассоциативный массив langArr, находит там ключ unit, видит, что там 3 ключа - 'en', 'ru' и 'ua'. Т.к. ранее из hash ты получил значение 'ru', то он берёт значение ключа буквально arrLang['unit']['ru'], что равно "создаем многоязычный сайт". Если бы в хэше было бы другое значение ('en', к примеру), то данные брались бы из arrLang['unit']['ua']
@richardwong4613
@richardwong4613 3 жыл бұрын
@@LuciferAngelos подскажите, пожалуйста, как правильно реализовать данный подход на многостраничном сайте?
@aleksandrmykalo439
@aleksandrmykalo439 Жыл бұрын
у меня: key is not definde :(
@ViktorWhite-xp4mg
@ViktorWhite-xp4mg Ай бұрын
Чому немає дде глянути код?
@user-tw6ic8lq6z
@user-tw6ic8lq6z 3 жыл бұрын
i18n ?
@indigosay
@indigosay 3 жыл бұрын
Да есть i18njs специально для ванильного js
@DrakeUA
@DrakeUA 3 жыл бұрын
реально флаги стран вставить както ?
@Wyraxx
@Wyraxx 3 жыл бұрын
Прапори країн не зовсім логічно перегукуються з мовами, адже можна поставити, наприклад, прапор Німеччини для німецької мови, але тоді Австрійці, Швейцарці, та громадяни інших країн (наприклад в Італії є германоязичні люди) не будуть бачити в цьому логіки, інший приклад - іспанська мова: поставити прапор Іспанії, а як же уся Латинська Америка? Вони теж говорять іспанською. Але не є громадянами Іспанії і її прапор їм, по суті, не важливий. А ще більш відверто говорячи - такий підхід буде харити багато користувачів. 😎 Тому на переважній більшості сайтів великих міжнародних компаній ви не побачите прапорці біля вибору мов.
@neon-music5530
@neon-music5530 3 жыл бұрын
Пж создай группу в телеге где мы сможем общаться и задавать вопросы
@itgid
@itgid 3 жыл бұрын
Я держал и вел такую группу 3 года, где с утра до вечера помогал и отвечал людям в любое время. И ночью и в час ночи и в два и в три. Еще и недовольство выслушивал, когда просил уточнить вопрос или код закинуть на codepen.io - чтобы помочь. С прошлого года решил - хватит.
@neon-music5530
@neon-music5530 3 жыл бұрын
@@itgid понятно, как хотите
@alanproduction910
@alanproduction910 Жыл бұрын
a few speaking , more practice please , and make video by english version i dont know what should i do
Просто o async, await. Без циклов и таймеров. JavaScript
15:55
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 95 М.
Адаптивный слайдер на JavaScript
23:24
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 69 М.
Can you beat this impossible game?
00:13
LOL
Рет қаралды 62 МЛН
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 26 МЛН
Creating Language Switcher (Dropdown) HTML + CSS with Flexbox
22:40
BlueBits Academy
Рет қаралды 118 М.
Как сделать мультиязычный сайт на Tilda
19:24
How To Make Toggle Button Using HTML & CSS
5:27
MakeTechStuff
Рет қаралды 64 М.
Загрузка файлов с фронтенда
18:49
Михаил Непомнящий
Рет қаралды 48 М.
What is the difference between Float, Flexbox and Grid CSS?
10:06
Анна Блок
Рет қаралды 217 М.
React multi-language tutorial
4:32
Gael Beltran
Рет қаралды 35 М.
Практика JavaScript с нуля за 2 часа. Сделаем целый сайт!
2:03:50