Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 28.11.2006, 13:02   #1
Andrey Grey
Senior Member
 
Регистрация: 15.09.2006
Сообщений: 425
По умолчанию locallang.xml, проблемы с utf-8 на примере tt_news

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

Что имеется:
Движок Т3 4.02 Пхп4
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';

Setup:
config {
metaCharset = utf-8
renderCharset = utf-8
notification_email_encoding = quoted-printable
notification_email_charset = koi8-r
language = ru
locale_all = ru_RU
doctype = xhtml_trans
xmlprologue = none
xhtml_cleaning = all
}


Самой полезной веткой в этом плане оказалась :Breaking News
Там увидил самый просто выход из положения. Вместо использования локалланга, просто прописать все необходимые слова в шаблоне.Таким образом все работает, но хотелось бы разобраться, почему не берутся слова из локалланга в нормальной кодировке? И что сделать что бы это проходило нормально? В других расширениях значит будет такая же проблема, а этого в будущем хотелось бы избежать.

Пробовал Русский патч Павла - не помогло.

И еще. При поиске нашел что в localconf.php нужно прописывать

$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;';

В результате все дерево сайта сменило кодировку и стало похоже на отображение win1251 в utf-8 (ОбратнаС? С?РІС?Р·СЊ).
Проверил базу:
Language Info:Russian (ru-utf-8)
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci

Но в таблицах Сравнения (collation) стоит cp1251_general_ci.

1 Может ли это влиять?
2 Необхоодимо ли менять кодировку таблицы?
3 Необходимо ли $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'; или можно обходиться без нее?
Andrey Grey вне форума   Ответить с цитированием
Старый 09.12.2006, 14:30   #2
are
Продвинутый
 
Аватар для are
 
Регистрация: 25.10.2006
Адрес: Новосибирск
Сообщений: 36
Отправить сообщение для are с помощью ICQ
По умолчанию

у меня такая же проблема в ce_gallery

вы нашли решение?
are вне форума   Ответить с цитированием
Старый 09.12.2006, 14:34   #3
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Проблема такая: в расширении tt_news (да наверное и во всех остальных), при импорте локали из файла locallang.xml, слова заменяются на вопросы.
а в locallang.xml все в какой кодировке?
и откуда он у вас взят? закачен из репозитория?

Цитата:
Проверил базу:
Language Info:Russian (ru-utf-8)
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci

Но в таблицах Сравнения (collation) стоит cp1251_general_ci.

1 Может ли это влиять?
не должно.


Цитата:
2 Необхоодимо ли менять кодировку таблицы?
да, конечно. Иначе будет неправильная сортировка и поиск.

Цитата:
3 Необходимо ли $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'; или можно обходиться без нее?
Вообще есть 2 варианта:
1) у вас все остается по умолчанию и работает как-то
при этом скорее всего не будет правильных сортировок и регистронезависимого поиска
2) вы начинаете разбираться с ситуацией и настраиваете себе полностью корректно utf-8 везде (в связке typo3 PHP MySQL). Тогда без SET NAMES utf8 можно обойтись только если у вас дефолтовая кодировка соединения utf8 и прописана она в mysql.cnf


посмотрите, как выглядит база в phpMyAdmin
если там кракозябры вместо русского - значит на самом деле база лежит в неправильной кодировке (т.е. не в utf-8)
__________________
Веб-студия ТТЛАБ
www.ttlab.ru

Последний раз редактировалось Valery Romanchev; 09.12.2006 в 14:45
Valery Romanchev вне форума   Ответить с цитированием
Старый 09.12.2006, 14:35   #4
Andrey Grey
Senior Member
 
Регистрация: 15.09.2006
Сообщений: 425
По умолчанию

На форуме были предложения использовать фиксированные названия в шаблоне, вместо подставных из локалленга. Сделал так.
Andrey Grey вне форума   Ответить с цитированием
Старый 09.12.2006, 14:41   #5
Andrey Grey
Senior Member
 
Регистрация: 15.09.2006
Сообщений: 425
По умолчанию

а можно ли вот это как то переконвертить? или уже неконвертируемо?
ОбратнаС? С?РІС?Р·СЊ
Andrey Grey вне форума   Ответить с цитированием
Старый 12.12.2006, 02:01   #6
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

Цитата:
Сообщение от tonnazh Посмотреть сообщение
Setup:
config {
metaCharset = utf-8
renderCharset = utf-8
notification_email_encoding = quoted-printable
notification_email_charset = koi8-r
language = ru
locale_all = ru_RU
doctype = xhtml_trans
xmlprologue = none
xhtml_cleaning = all
}
У меня вопрос по этим настройкам. Обязательны ли они все? Следует ли их добавлять для каждого сайта, это стандарт типа?
Особенно интересны metaCharset,renderCharset - в какой-то доке вроде по мультиязычности читал, что они проставляются автоматом в той же кодировке, что и база хранится. или что-то там с forcecharset связано было - точно не помню...
проясните ситуацию) интересно все таки.
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 12.12.2006, 04:03   #7
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Цитата:
Сообщение от Tod Посмотреть сообщение
У меня вопрос по этим настройкам. Обязательны ли они все? Следует ли их добавлять для каждого сайта, это стандарт типа?
Особенно интересны metaCharset,renderCharset - в какой-то доке вроде по мультиязычности читал, что они проставляются автоматом в той же кодировке, что и база хранится. или что-то там с forcecharset связано было - точно не помню...
проясните ситуацию) интересно все таки.
Код:
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
Это - кодировка бекенда. Если не указаны config.renderCharset и config.metaCharset - то они копируются отсюда.
renderCharset вполне может быть win-1251 при кодировке базы utf-8, в этом случае у вас фронтэнд будет в win-1251, а бекенд - в utf-8. Для бекенда utf-8 настоятельно рекомендуется.

Также, если не указана config.metaCharset - то она копируется из config.renderCharset.
Код:
notification_email_encoding = quoted-printable
notification_email_charset = koi8-r
Эти настройки - для почты.
Код:
config.language = ru
Эта - главная настройка языка, определяющая, например, язык локализации плагинов...
Код:
locale_all = ru_RU
Это - настройка локали PHP. Определяет в осноном вывод функций даты-времени. Чтобы было не Janutember, а Мартобрь.
Код:
doctype = xhtml_trans
Это - ваш доктайп. Совершенно необязательно - xhtml_trans. Смотрите по вёрстке, что у вас.
Код:
xmlprologue = none
Опять же, нужно не всегда.
Код:
xhtml_cleaning = all
Очистка html и преобразование в xhtml силами тайпы. Вообще, можно подключить tidy, но, я думаю, это будет сильно замедлять генерацию страниц.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 12.12.2006, 12:42   #8
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Это - кодировка бекенда. Если не указаны config.renderCharset и config.metaCharset - то они копируются отсюда.
renderCharset вполне может быть win-1251 при кодировке базы utf-8, в этом случае у вас фронтэнд будет в win-1251, а бекенд - в utf-8.
как ни странно, если
forceCharset utf-8
то чтобы была win-1251 в FE надо ставить именно
config.metaCharset = winвdows-1251
иначе кракозябры
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 12.12.2006, 22:40   #9
filippoff
Senior Member
 
Аватар для filippoff
 
Регистрация: 22.01.2006
Адрес: Санкт-Петербург
Сообщений: 285
Отправить сообщение для filippoff с помощью ICQ Отправить сообщение для filippoff с помощью Skype™
По умолчанию

заметил такую штуку:
при $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
попытка сохранять некоторые шблоны для расширений в utf-8 приводит к отображению кракозябр при том, что весь сайт в utf-8. сохранение шаблонов в windows-1251 приводит к нормальному отображению в utf-8 на сайте.
filippoff вне форума   Ответить с цитированием
Старый 13.12.2006, 14:50   #10
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Я писал про это... при установке русского языка, Typo3 подразумевает что некоторые поля должны быть в win-1251, как результат неправильное перекодирования с учетом forceCharset.

Либо не ставьте для себя русский язык при работе с шаблонами и помоему с TSConfig... Либо патч примените, я его выкладывал на форум (поиск поможет)
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория