Мёртвый Babel и глючащий испанский контекст.
Коллеги, выручайте. Может у кого похожее было.
Делаю мультиязычность на сайте, нужно добавить к русскому английский и испанский. Мультиязычность настроил, спасибо Василию, его метод самый простой, контексты переключаются, однако столкнулся с двумя глобальными проблемами.
Первая. Не запускается Babel. Вообще никак. В админке не появляются кнопки для связывания переводов, и BabelLinks ничего не выводит. Переставлял несколько раз — глухо. Версия Revo 2.2.9 досталась.
Вторая проблема. При выводе документа из испанского контекста происходит непонятный расколбас содержимого (и в хроме и в фф и в опере). Инструментарий хрома показывает, что в head попали только 3 последних линка, а все остальные метатеги, скрипты и прочее отображаются в body. При том, что при просмотре полного кода страницы всё на своих местах. При этом визуально код страницы испанского и английского контекста не отличается. И если скопировать этот код в пустой файл а потом его запустить то всё отображается нормально. И что ещё веселее, при смене cultureKey контекста с «es» на «pt» (португальский) или даже финнский, расколбас исчезает.
Отсюда вопрос — шо это за фигня такая и чем может грозить использование неверного cultureKey? Даты идут в цифровом формате, так что в переводе не нуждаются.
Со вчерашнего дня экспериментирую и не вылезаю из гугла, выхлоп нулевой…
Сайт — www.us-trans.ru
Делаю мультиязычность на сайте, нужно добавить к русскому английский и испанский. Мультиязычность настроил, спасибо Василию, его метод самый простой, контексты переключаются, однако столкнулся с двумя глобальными проблемами.
Первая. Не запускается Babel. Вообще никак. В админке не появляются кнопки для связывания переводов, и BabelLinks ничего не выводит. Переставлял несколько раз — глухо. Версия Revo 2.2.9 досталась.
Вторая проблема. При выводе документа из испанского контекста происходит непонятный расколбас содержимого (и в хроме и в фф и в опере). Инструментарий хрома показывает, что в head попали только 3 последних линка, а все остальные метатеги, скрипты и прочее отображаются в body. При том, что при просмотре полного кода страницы всё на своих местах. При этом визуально код страницы испанского и английского контекста не отличается. И если скопировать этот код в пустой файл а потом его запустить то всё отображается нормально. И что ещё веселее, при смене cultureKey контекста с «es» на «pt» (португальский) или даже финнский, расколбас исчезает.
Отсюда вопрос — шо это за фигня такая и чем может грозить использование неверного cultureKey? Даты идут в цифровом формате, так что в переводе не нуждаются.
Со вчерашнего дня экспериментирую и не вылезаю из гугла, выхлоп нулевой…
Сайт — www.us-trans.ru
Комментарии: 22
Обновился до 2.2.11 и Babel заработал! Ещё зафигачил все таблички в базе в utf8 (<сарказм>большое спасибо предыдущему разработчику за cp1254<.сарказм>) и теперь умляуты нормально сохраняются.
Однако вторую проблему эти действия не решили и мне совершенно непонятно где, как и куда копать.
Однако вторую проблему эти действия не решили и мне совершенно непонятно где, как и куда копать.
Чекай базу данных на правильную кодировку. И права доступа к файлам.
В базе вроде всё нормально теперь — везде utf-8 да general_ci. Но проблемы с расфигачиванием вёрстки при cultureKey=es это не решило :( Самое поганое, что даже при cultureKey=pt всё работает нормально. Вот в чём, скажите мне, принципиальная разница испанского и португальского? Загадка…
Где то посмотреть на это можно?)
Если на расколбас, то вот — www.us-trans.ru/?lang=es. Буду признателен.
У тебя шаблоны разные я так понимаю для разных языков?
Я скачал оба шаблона в 2 текстовых файла. И я сравнил их программой WinMerge и он говорит что у es Половина символов в шаблоне разной кодировки. Отсюда и проблемы.
Я скачал оба шаблона в 2 текстовых файла. И я сравнил их программой WinMerge и он говорит что у es Половина символов в шаблоне разной кодировки. Отсюда и проблемы.
Планируются разные, пока просто копии, но это роли не имеет и значения не играет, как я выяснил. Сейчас, например подключил шаблон для русской главной — глянь что выходит.
У тебя шаблоны в разной кодировке,
P.S Кодировку то ты изменил, а вот битые символы остались.
P.P.S Верстка ползет потому что браузер думает что не указан DOCTYPE.
Ух ты, прикольно! Спасибо за наводку на WinMerge.
Сохранил сейчас в хроме оба варианта главной как «страницу целиком» о потом заглянул унутырь — в испанском варианте нет доктайпа вообще. Куда он девается и почему это может происходить? Ведь используется один и тот же шаблон… Я этот доктайп вручную перебил — ноль эффекта.
Сохранил сейчас в хроме оба варианта главной как «страницу целиком» о потом заглянул унутырь — в испанском варианте нет доктайпа вообще. Куда он девается и почему это может происходить? Ведь используется один и тот же шаблон… Я этот доктайп вручную перебил — ноль эффекта.
У тебя шаблон состоит из разных кодировок.
В нормальном шаблоне строка с доктайпом на utf-8 а в проблемном Я думаю тоже utf-8 Но С BOM! То есть это 4 дополнительных символа в начале. Отсюда доктайп в исходном коде есть view-source:http://www.us-trans.ru/?lang=es Но вот браузер его не понимает и рендрит страницу без доктайпа.
Отключи текстовый редактор (или открой шаблон в быстром редактировании) и перепиши проблемный кусок, и сохранись. Если не выйдет то скорее придется залезть в бд и там исправить.
В нормальном шаблоне строка с доктайпом на utf-8 а в проблемном Я думаю тоже utf-8 Но С BOM! То есть это 4 дополнительных символа в начале. Отсюда доктайп в исходном коде есть view-source:http://www.us-trans.ru/?lang=es Но вот браузер его не понимает и рендрит страницу без доктайпа.
Отключи текстовый редактор (или открой шаблон в быстром редактировании) и перепиши проблемный кусок, и сохранись. Если не выйдет то скорее придется залезть в бд и там исправить.
Редакторы все давно отключены. А вот что лежит в таблице шаблонов
Попробуй очистить поле content у проблемного шаблона из БД и собрать его заного? Или прямо в БД заменить начало шаблонов.
Ты где Админер скачивал? А то я брал с сорсфореджа а он у меня без шрифтов и js работал:( А у тебя смотрю нормально как надо) Может поделишься?))
Ты где Админер скачивал? А то я брал с сорсфореджа а он у меня без шрифтов и js работал:( А у тебя смотрю нормально как надо) Может поделишься?))
Создал новый шаблон
И опять же, не даёт покоя мысль — почему при смене cultureKey на португальский эта фигня пропадает… Я в недоумении, короче. ))
Ещё вариант — развернуть этот сайт на другом хостинге и там посмотреть что будет там…
Я тож оттуда качал. 4.0.3 версия — yadi.sk/d/sw8LbEc_HPUbR
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
Тест
</body>
</html>
Доктайп пока на месте. Придётся поэтапно выискиваь злодея…И опять же, не даёт покоя мысль — почему при смене cultureKey на португальский эта фигня пропадает… Я в недоумении, короче. ))
Ещё вариант — развернуть этот сайт на другом хостинге и там посмотреть что будет там…
Я тож оттуда качал. 4.0.3 версия — yadi.sk/d/sw8LbEc_HPUbR
Вычислил я где собака зарыта, однако причины для меня остаются загадкой. В оригинале, в head есть следующие строчки
Спасибо за помощь по поддержку!
<title>[[*seo-title:is=``:then=`[[*pagetitle]]`:else=`[[*seo-title]]`]]</title>
<meta name="keywords" content="[[*seo-keywords]]" />
<meta name="description" content="[[*seo-description]]" />
В этом варианте пропадает доктайп с соответствующими последствиями. Однако если убрать две ТВшки, вот так<title>[[*pagetitle]]</title>
<meta name="keywords" content="" />
<meta name="description" content="[[*seo-description]]" />
то всё работает. *seo-title и *seo-keywords имеют тип ввода Текст, а *seo-description — Текстовая область. Это единственное их различие. Однако замена типа у первых двух ничего не дала. Они продолжают всё портить, даже если эти поля в ресурсе пустые. Видимо на этом придётся остановиться. Я думаю испанцы переживут отсутствие ключевиков, которые всё равно поисковиками давно игнорятся…Спасибо за помощь по поддержку!
1. Фильтр лучше переделать:
<title>[[*seo-title:default=`[[*pagetitle]]`]]</title>
2. Содержимое тегов можно попробовать «обезопасить»:<meta name="keywords" content="[[*seo-keywords:striptags:escape]]" />
<meta name="description" content="[[*seo-description:striptags:escape]]" />
Так конечно же красивее и правильнее. Но результат, к сожалению, прежний. Какая-то необъяснимая идиосинкразия у испанского контекста к этим двум полям…
Беда.
Отож.
Ну так ты по цепочке следуй?) Теперь лезь в таблицу переменных шаблона и смотри все ли строки в нужной кодировке отдаются.
Проблема в том, что эти поля пустые и, соответсвенно, значения в базе у них отсутствуют — нет записей вообще и смотреть не на что. :(
А вдруг там пробел стоит в 1251 кодировке? и все ломает? Я тебе говорю что нужно по цепочке искать битые символы.
Попробуй сделать дамп базы данных в sql файл, потом открыть его через notepad++ и посмотри в какой он кодировке, потом преобразуй ее в utf-8 принудительно и залей обратно.
Я уверен что проблема исчезнет.
Попробуй сделать дамп базы данных в sql файл, потом открыть его через notepad++ и посмотри в какой он кодировке, потом преобразуй ее в utf-8 принудительно и залей обратно.
Я уверен что проблема исчезнет.
Сконвертировал, но… нет, не исчезает. Да и негде там пробелу взяться — в базе нет соответствующих записей для этих страниц. Не то, что там содержимое пустое, а их просто нет. Совсем. Вписывал в эти ТВшки в ресурсе слово на испанском (матерное), записи в таблице появляются, результат всё тот же — расколбас…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.