Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   locallang.xml, проблемы с utf-8 на примере tt_news (http://forum.typo3.ru/showthread.php?t=2184)

Andrey Grey 28.11.2006 13:02

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;'; или можно обходиться без нее?

are 09.12.2006 14:30

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

вы нашли решение?

Valery Romanchev 09.12.2006 14:34

Цитата:

Проблема такая: в расширении 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)

Andrey Grey 09.12.2006 14:35

На форуме были предложения использовать фиксированные названия в шаблоне, вместо подставных из локалленга. Сделал так.

Andrey Grey 09.12.2006 14:41

а можно ли вот это как то переконвертить? или уже неконвертируемо?
ОбратнаС? С?РІС?Р·СЊ

Tod 12.12.2006 02:01

Цитата:

Сообщение от tonnazh (Сообщение 8294)
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 связано было - точно не помню...
проясните ситуацию) интересно все таки.;)

void 12.12.2006 04:03

Цитата:

Сообщение от Tod (Сообщение 8511)
У меня вопрос по этим настройкам. Обязательны ли они все? Следует ли их добавлять для каждого сайта, это стандарт типа?
Особенно интересны 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, но, я думаю, это будет сильно замедлять генерацию страниц.

Valery Romanchev 12.12.2006 12:42

Цитата:

Это - кодировка бекенда. Если не указаны config.renderCharset и config.metaCharset - то они копируются отсюда.
renderCharset вполне может быть win-1251 при кодировке базы utf-8, в этом случае у вас фронтэнд будет в win-1251, а бекенд - в utf-8.
как ни странно, если
forceCharset utf-8
то чтобы была win-1251 в FE надо ставить именно
config.metaCharset = winвdows-1251
иначе кракозябры

filippoff 12.12.2006 22:40

заметил такую штуку:
при $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
попытка сохранять некоторые шблоны для расширений в utf-8 приводит к отображению кракозябр при том, что весь сайт в utf-8. сохранение шаблонов в windows-1251 приводит к нормальному отображению в utf-8 на сайте.

Pavel Antonov 13.12.2006 14:50

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

Либо не ставьте для себя русский язык при работе с шаблонами и помоему с TSConfig... Либо патч примените, я его выкладывал на форум (поиск поможет)


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

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