1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Архив Автоматический выбор языка для гостей

Тема в разделе "Архив плагинов XF [1.x]", создана пользователем maus, 27.06.2012.

Загрузка
  1. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Набросал небольшой модуль, реализующий автоматический выбор языка в зависимости от установленных в браузере языковых предпочтений пользователя. Русскоязычные браузеры получают интерфейс форума на русском языке, англоязычные - на английском. Коды языков берутся из установленных переводов, так что украинский и белорусский тоже должны работать.

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

    Никаких настроек для работы не требуется, никаких изменений в форум не вносится. Включается и отключается выбор языков только вместе с модулем.

    Код немного неряшливый, я решил пожертвовать точностью ради надежности. Если будет востребовано, то перепишу "как надо".
     

    Вложения:

    Егор67, fly_indiz, CyberAP и 6 другим нравится это.
  2. Anima

    Anima Пользователь

    Регистрация:
    24.06.12
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.1.2
    Да полезная штука.
    Видимо специально писал из-за моей темы))) Благодарю тебя за модуль.

    А вот вопрос вот такой. В каком именно файле и вообще как делать переводы ???
    Например взять модуль МЕДИА, для загрузки видео.

    В нем в основном все по английски, как сделать для него и русский язык при выборе русского ?
     
  3. Anima

    Anima Пользователь

    Регистрация:
    24.06.12
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.1.2
  4. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Это XenMedio? Он неправильно переведен, там прямо английские фразы переписаны. Из-за этого он без дополнительных усилий либо всегда русский, либо всегда английский. А переводы делать известно как, зайдите в панель управления на вкладку "внешний вид", слева пройдите по ссылке "поиск по фразам", вводите куски непереведенных фраз и вам будет показываться список, в котором их можно по одной выбирать и переводить.
    Зашел. У меня все правильно переключает. Но я - не иностранный пользователь, такового я просто имитирую, так что могу и ошибаться.
     
  5. Anima

    Anima Пользователь

    Регистрация:
    24.06.12
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.1.2
    Я тоже проверил браузерами разными при включенном Англе по умоле. Все нормуль робит. Спасибо
     
  6. SeaSoul

    SeaSoul Местный

    Регистрация:
    24.11.11
    Сообщения:
    132
    Симпатии:
    10
    Версия XF:
    1.1.4
    17 августа поставил плагин и он натворил делов, еле разобрался из-за чего:

    527160_484364014909294_2145403066_n.jpg

    + при установленном плагине, темы некорректно вставляются в соц сети
     
  7. fly_indiz

    fly_indiz Местный

    Регистрация:
    20.08.11
    Сообщения:
    460
    Симпатии:
    357
    Версия XF:
    1.4.3
    Ещё как востребовано )))
     
  8. Егор67

    Егор67 Пользователь

    Регистрация:
    03.11.13
    Сообщения:
    97
    Симпатии:
    4
    Версия XF:
    1.4.2
    Спасибо! Отличный мод!
     
  9. elnick

    elnick Местный

    Регистрация:
    25.05.12
    Сообщения:
    7
    Симпатии:
    1
    Версия XF:
    1.1.2
    Добрый день, maus. Подскажите под новую версию XF плагин доработать не собираетесь?
     
  10. fly_indiz

    fly_indiz Местный

    Регистрация:
    20.08.11
    Сообщения:
    460
    Симпатии:
    357
    Версия XF:
    1.4.3
    Проверил - не работает на 1.4.
    Пытаюсь разобраться. Так понимаю обработчик вешается на controller_pre_dispatch и проверяет - если сессия ещё не создана (т.е. в самом начале создания гостевой сессии) то заняться определением языка из заголовков браузера.
    Засада в том что в 1.4 условие проверки на созданность сессии - не работает, т.к. к этому моменту сессия уже в любом случае создана, в таком случае менять язык уже нельзя.

    @maus, выручай :)
    Может кто сможет помочь придумать?
     
    KROOL1980 нравится это.
  11. fly_indiz

    fly_indiz Местный

    Регистрация:
    20.08.11
    Сообщения:
    460
    Симпатии:
    357
    Версия XF:
    1.4.3
    Кстати - первичный разбор HTTP_ACCEPT_LANGUAGE - идёт неверно. Сначала идёт разбивка по ";" на языки (хотя правильно - языки перечисляются по ","), а затем отчленение веса языка "q" по "," (хотя правильно - по ";"). Т.е. сделано наоборот.

    Так же имеет смысл создать внутренний список "родственных" языков для подстановки.
    Например - если считанный предпочтительный список языков с клиента такой (в обратной сортировке по весу):
    -украинский
    -английский
    а на форуме установлены
    -русский
    -английский
    то русский, как родственный - должен быть выбран взамен украинского.
    (ещё например белорусский).
    А вообще - изобрести бы таблицу родственности языковых кодов по коэффициентам и некую формулу соотнесения с весом предпочтения от клиента
     
    Последнее редактирование: 30.11.2014
  12. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Mirovinger нравится это.

Поделиться этой страницей