Как лучше реализовать многоязычность сайта, работающего без CMS, на голом HTML/CSS?
Я сверстал одностраничник, решил не привязываьт его к движкам, т.к. проект небольшой и контента мало. Требуется сделать еще 2 языковые версии. Правильно ли будет сделать просто еще 2 копии, заменить на них контент и навесить каждой копии переключатель языков? Как быть с URL? Какими они должны быть — site.com/lang1, site.com/lang1, site.com/lang1? Если да, то как сделать, чтобы по дефолту открывался site.com/delault_lang, а не site.com? Через .htaccess?
Если совсем по уму, то нужно определять язык браузера (не IP юзера) и отправлять его на его язык. Но для одностраничника ИМХО это нецелесообразно. Переключатель должен быть в любом случае.
Думаю, автоматического переключения не будет. Дефолтный, скорее всего, будет английский, дополнительные — русский, украинский. Кому нужно, сам переключит. А как бы так сделать, чтобы, если человек переключил язык, то при следующем заходе, этот язык ему подгружался?
site.com может быть язык по дефолту
en.site.com или site.com/en может быть другой язык
вот скрин из моей сборки тоже лэндинг как раз на нескольких языках делаю
Андрей: спасибо! А есть принципиальная разница между en.site.com и site.com/en, кроме того, что в одном случае это домен третьего уровня, а в другом — поддомен?
либо для каждого блока с текстовым контентом создать дубль на втором языке. для всех блоков с текстовым контентом прописать в классах класс для определенного языка (lang-ru, lang-en). и в куках сохранять язык, выбранный пользователям, скриптами скрывать/отображать нужные классы.
но это более геморный вариант. проще разделить языковые версии на директории или на поддомены вынести
Что за глупые ответы про копии сайта для каждого языка?
А если надо будет менять в дизайне что-то?
А если будет 5-10 языков?
Для одной страницы "I am Vasja" подойдет, а для PWA?
Как вариант, для каждого тэга со строковым содержимым устанавливать какой-нибудь lang-string-id атрибут, и javascript'ом после построения DOM дерева вставлять туда нужную строку из ресурса (массива строк для каждого языка)