я бы сделал так :
Чтобы различать языки, необходимо создать таблицу(-ы), в которой для каждого ID
([lang12345]) будет храниться значение языка
(ru,en), которому соответствует фраза, и сама фраза.
примерная структура таблицы. с типами уже разобрались.
Код:
|
|ID | фраза | язык|
|123|"hello"|"en" |
|123|"прива"|"ru" | |
теперь надо разобраться, какой язык использовать
я предлагаю с помозью скрипта проверять, поддерживает ли текущий браузер Cookies
, или localStorage, и использовать их по вохможности.
Если же браузер - старый осёл с выключенными куками, то придётся использовать базу.
При желании можно использовать хранилище Flash
Приоритет использования такой :
Цитата:
|
localStorage -> Cookies -> Data Base
|
в стораге всё просто, у кукисов тоже. рассмотрим базу :
конечно, должна быть ещё одна таблица.
Перед обсуждением её структуры необходимо знать, как идентифицировать пользователя, если у него нет кук.
это домашнее задание. Но как МНЕ кажется, это можно делать через IP и юзерагента.
В таблице будет чуть колонок.
у меня кончается фантазия
Код:
|
| IP | lang |
| 127.0.0.1 | "ru" | |
Если IP не совпадает - исп-ся язык по-умолчанию
______________
это насчёт сервака.
а чо делать с модальными окнами на сайте, сособенно, если они создаются динамически ?
В модальных окнах ставить тайтл такого вида
modal({ title : *!*lang[ 123 ]*/!* });
то бишь, тайтл выбирается из объекта lang
а вот БД для скрипта %)
lang = { "123" : "Hello, user" }
Теперь надо определиться, какой файл где брать.
пусть в папке будет лежать 2 файла - lang-ru.js и lang-en.js
в зависимости от запомненного языка будет загружаться или ru, или en.
если текст внутри модалей делается так, то беспокоиться о том, "чо там, прогрузилось или нет" не надо - каждый файл языка заменит свойства у объекта на свои.
как запоминать ? Так как мы решили не использовать хранилище
, потому что значение языка в хранилище надо передать php скрипту, а это - запрос, а это - время., то используем "продуманную" схему про куки и БД, описанную выше.
т.е. если есть кука - используем куку, иначе - бд. Если эже ни там, ни там нету - используем язык по умолчанию.
___________________
насчёт запоминания. При клике на кнопку "поменять язык" скрипт будет устанавливать значение в куке (
то бишь одновременно запоминает для себя и для php )и перезагружать страницу ( т
о бишь применять изменения. перезагрузка страницы нужна для локализации через php. можно в принципе только часть страницы перезагрузить. )