Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Локализация проекта (http://forum.typo3.ru/forumdisplay.php?f=14)
-   -   Запоминание выбранного пользователем языка (http://forum.typo3.ru/showthread.php?t=7928)

NiKRON 22.08.2009 16:58

Запоминание выбранного пользователем языка
 
Пользователь зашёл на сайт. Сайт по-умолчанию на английском. Выбрал русский язык. Походил, почитал, ушёл. На следующий день зашёл и язык для этого пользователя по-умолчанию русский. Как так сделать в TYPO3?

Valery Romanchev 23.08.2009 16:57

посмотрите rlmp_language_detection - определения языка по настройкам браузера

NiKRON 23.08.2009 17:03

Смотрел. По настройкам браузера не годится. Нужно по последнему выбранному этим пользователем языку.

void 23.08.2009 18:51

Ну в куки текущий язык записываете, потом редиректите. Пара строк на джаваскрипте.

NiKRON 23.08.2009 19:35

Не хотелось бы раскидывать по куче файлов множество настроек. Тем более в JS. Нельзя всё через TS делать? Или как плагин? Ведь такая вроде простая вещь и как мне кажется востребованная, ни где не реализована, ни в ядре, ни в каком-либо плагине.

void 23.08.2009 19:50

Да ну сделайте плагин... Или весь JS напишите прямо в TS :)

NiKRON 23.08.2009 20:02

Чтоб я ещё представлял как?!
Я могу создать куки, но как в него прописать язык который только что выбрал пользователь? Т.е. отслеживать событие клика по ссылке? Как передать в куки, выбранную ссылку? Могу предположить, например, что в url можно дописать «#ru», но как это сделать для плагина sr_language_menu?

void 24.08.2009 02:09

Если честно, я уже не помню, как работает sr_language_menu.
Однако, я рассуждаю следующим образом. У страницы есть URI. Отображение страницы зависит от этого URI и (опционально) от кук пользователя. Соответственно, язык страницы находится либо в URI, либо в куках. Если язык страницы содержится в её адресе, то я совершенно не понимаю, зачем надо определять язык пользователя. Страница http://site.ru/ru/about.html будет на русском, http://site.ru/en/about.html - на английском. Могу предположить ситуацию, когда есть только http://site.ru/about.html, а английской она становится только если пользователь решил посмотреть её в английской версии (и у него создалась соответствующая кука). Но это ужасный вариант, так же делать не надо. Поэтому единственное место, где я вижу применение тому, что вы хотите - это когда у вас есть, скажем, site.ru, на главной странице которого написано "выберите страну", и вы хотите запомнить этот выбор и делать автоматический редирект. Но это делается в две строчки на JS: 1) выдёргиваем язык пользователя из URL 2) записываем его в куку.

Valery Romanchev 24.08.2009 10:38

я бы делал так:
- если юзер жмет на смену языка, то ему ставится кука с значением этого языка
- если юзер пришел на сайт (т.е. реферром не является страница данного сайта), то мы проверяем эту куку. Если кука есть, то редирект на выбранный юзером язык.

Всю эту кухню можно смотреть в rlmp_language_detection Кода там мало


Часовой пояс GMT +4, время: 14:25.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot