Понадобилось мне проанглоязычить интерфейс блога. Хотя бы даже не навигацию и виджеты, а всякую служебную информацию типа подсказок и прочая. В общем, по возможности воспользоваться уже имеющимся англоязычным вариантом перевода интерфейса системы. Как лучше всего это сделать?
Я насчитал несколько путей:
- Самый честный и он же самый тернистый. Прописываем язык интерфейса в URL (GET или сегмент), а в коде его парсим и выводим соответствующую страницу. Основная сложность тут, как мне кажется, в изменении ссылок на страницах так, чтобы они указывали на свою же "зону".
- Достаточно легкий способ изменить ссылки "на лету" (как это показалось моему извращенному изощренному разуму) -- переписать их с помощью JavaScript. Время, конечно, отнимет, но зато все культурно и просто.
- Но есть способ и попроще (именно так я и сделал). URL остается прежним, а вся языковая информация хранитя в куках. При загрузке в файле конфига (application/maxsite/mso_config.php) проверяются куки (ветвь elseif оставлена "на будущее") и загружается нужный конфиг. А выставляет куки JavaScript в шаблоне страницы (у меня это application/maxsite/templates/clouds/main-start.php) по клику на ссылку, после чего страница перезагружается.
$ck = mso_get_cookie('lang',NULL);
if ($ck == 'en')
{
$MSO->language = 'en';
} elseif ($ck == 'ru'){
$MSO->language = 'ru';
} else {
$MSO->language = 'ru';
}
Участок кода в шаблоне:
<div id="lang" align="right">
<a href="#" onclick="document.cookie='lang=en; path=/;'; location.reload();">English</a> | <a href="#" onclick="document.cookie='lang=ru; path=/;'; location.reload();">Русский</a>
</div>
Сделал. Работает. Только мне стало казаться, что при такой системе возможна проблема с кэшем (например, увеличивается количество SQL-запросов). Кэш в CodeIgniter я, признаться, подзабыл. Разберусь, конечно, попозже (счас времени нет). Но может кто из моих читателей может навскидку подсказать, чем сие чревато и как проще всего устранить последствия?
Comments: 7 RSS
1 Satisfaction 26-09-2009 11:25
Здравствуйте уважаемый Александр. Могли бы вы рассказать про плагин "Kohana for Wordpress", подключение, практическое применение.
2 Александр Купреев 28-09-2009 13:53
Расскажу. Хотя я не гуру WordPress, этот плагин мне интересен.
3 Валентин 12-05-2013 04:39
А если для каждого языка - свой шаблон? И по-другому никак...
4 Александр Купреев 12-05-2013 16:09
Придется глубже перекапывать код.
5 uvukat 27-11-2016 01:24
kalendarze adwentowe
6 yxilumety 28-11-2016 07:51
kalendarz adwentowy
7 ehihec 30-01-2017 18:52
steroidai