Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Локализация проекта (http://forum.typo3.ru/forumdisplay.php?f=14)
-   -   tt_news: Перевод для "backToList" (http://forum.typo3.ru/showthread.php?t=8021)

Игорь Ф. 30.09.2009 00:08

tt_news: Перевод для "backToList"
 
Мне надо локализовать tt_news. Для этого я вставляю следующий код в TS:

Код:

plugin.tt_news {

_LOCAL_LANG.ru{
pi_list_browseresults_prev = < Предыдущая
pi_list_browseresults_page =
pi_list_browseresults_next = Следующая >
pi_list_browseresults_first = <-первая
pi_list_browseresults_last = последняя->
textCat = Тематические разделы:
#pi_list_browseresults_displays = Displaying results ###SPAN_BEGIN###%s to %s</span> out of ###SPAN_BEGIN###%s</span>
pi_list_browseresults_displays = Отображено с ###SPAN_BEGIN###%s по %s</span>, всего ###SPAN_BEGIN###%s</span>
pi_list_searchBox_search = Найти
preAuthor =
# archiveHeader =
archiveItems =
backToList = Вернуться к списку
#noNewsToListMsg = no_news_items
#noNewsToListMsg =

}
}

Но при отображении SINGLE у меня элемент backToList (ссылка назад, на ленту новостей) переводится некорректно.
Почему-то все знаки & заменяются на &amp;
И вместо "Вернуться к списку" я получаю: "&#x412;&#x435;&#x440;&#x43d;&#x443;&#x442;&#x44c; &#x441;&#x44f; &#x43a; &#x441;&#x43f;&#x438;&#x441;&#x43a;&#x443;"

Все остальное переводится вроде нормально.

Как можно отключить эту замену (или обойти ее), чтобы нормально отображались буквы?

Игорь Ф. 30.09.2009 16:42

Вот нашел некую функцию - t3lib_div::deHSCentities, которая может реконвертировать "&amp;" в "&"
Но не знаю, как ей воспользоваться.

Да и должно же быть другое решение. У остальных ведь работает...

Игорь Ф. 30.09.2009 17:12

Сейчас убрал строчку, относящуюся к backToList.

Выдает:
<- &#x43d;&#x430;&#x437;&#x430;&#x434; &#x432;: Новости

То есть почему-то в половину (назад в) вставляет &amp; а в половину (Новости) нет.

Alex Podusov 01.10.2009 14:10

tt_news\pi1\locallang.xml
- все переводы правь тут ручками, в блоке
Код:

                <languageKey index="ru" type="array">
                ...............
                </languageKey>

, или через Locallang-XML Translation Tool

Игорь Ф. 01.10.2009 21:40

Спасибо. Я нашел эту страницу. Там нормально написано - "&lt;- назад в: %s"
Вот именно эта часть "назад в", у меня отображается неверно - туда вставляются &amp;

Не понимаю, что я могу с этим сделать...

Игорь Ф. 20.10.2009 21:53

Вначале сразу не сообразил: у меня перевод находится в /l10n/ru/tt_news/pi/ru.locallang.xml

Но пока так и не могу понять в чем дело...

Игорь Ф. 20.10.2009 22:05

Очевидно, что причина лежит где-то глубже, в способе обработки label "backToList". Потому что я на этой же странице (SINGLE) могу отображать фразу "<- назад в: %s", если, например, вставляю её в label "more" и отображаю этот label через шаблон.

Игорь Ф. 21.10.2009 00:15

В общем, обнаружил нужную строчку в файле tt_news/pi/class.tx_ttnews.php:
Код:

$markerArray['###BACK_TO_LIST###'] = sprintf($this->pi_getLL('backToList', '', $this->conf['hscBackLink']), $backP['title']);
Если я положим меняю её на
Код:

$markerArray['###BACK_TO_LIST###'] = $this->pi_getLL('backToList');
то всё выдается по-русски.

Но не работает предустановленная опция с отображением имени страницы, на которую нужно вернуться. В принципе, так как я собирался использовать TS, мне это не критично. Единственная проблема - вдруг это еще где-то используется? Может кто знает? И вообще в чем причина такого поведения функции sprintf?

Игорь Ф. 21.10.2009 00:37

Всё, разобрался. Добавил в TS вот эту строчку:
Код:

plugin.tt_news.hscBackLink = 0
Теперь все работает без изменения исходников. Почему нельзя было не прописать это нормально в документации?!

В мануале написано только вот это:
Цитата:

hscBackLink - If this is enabled the “Back to list” link in the SINGLE view will be parsed through the PHP function htmlspecialchars().


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

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