@IartanisI

Смена языка на сайте?

Извините за возможно глупый вопрос, а как организовать смену языка на сайте? Буду точней вот у меня есть сайт на javascript, и надо сделать английскую и русскую версию. Понятно что можно просто продублировать страницы, или можно по другому, более эффективно?
  • Вопрос задан
  • 5993 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Определяем язык:
var language = window.navigator.userLanguage || window.navigator.language;

2. Грузим динамически нужный js, содержащий ассоциативный массив строковых констант для текущего языка. Используем для простоты: www.javascriptkit.com/javatutors/loadjavascriptcss...
3. Используем элементы массива на странице.

UPD: 4. Можно сделать замену строк DOM-контейнера через функцию с использованием Regex-шаблона, чтобы не использовать элементы шаблона в исходном "теле" страницы, а сохранить обычные текстовые строки "домашнего" языка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Ну тут есть несколько тонкостей. В общем случае вам нужен шаблон разметки, где текстовые зоны будут помечены некими переменными, а при отрисовке страницы клиенту эти переменные заменяются из неких ресурсов нужным текстом. На разных платформах это реализуется по разному - уточните ваш стэк технологий и возможно совет будет более конкретным. Касательно тонкостей.
1) Разные языки имеют разную среднюю длинну слов, в связи с чем верстка текстового контейнера может стать весьма занятным процессом.
2) Существуют языки, имеющие другое направление письма, в сравнении с Русским. Это требует серьезных доработок шаблона, вплоть до второго шаблона под подобные языки.
3) Помимо самих слов - в разных регионах мира по разному отображаются финансы, даты и некоторые другие несловесные данные. К примеру десятичная запятая в цифрах, разделители даты, 07/08/09 - Скажете какую дату имею в виду?
Надеюсь коллеги дополнят список тонкостей своим личным опытом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы