Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 21-04-2005 14:18:35

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

как заставить Textpattern работать на русскоязычных сайтах

для полной русификации надо пройти 3 этапа.

1. русификация административного раздела.
в версии 1 rc3 это уже крайне просто. в административной части переключить селектор языка на русский.
необходимость этого неоднозначна.
столкнулся в 1rc3v168  с тем, что некоторые административные страницы после переключения на русский перестали корректно отображаться. в последних версиях этот момент не проверял.
В принципе, после первого ознакомления, можно совершенно свободно работать в англоязычной административной панели - она очень проста и понятна.
В заключение надо добавить, что русский перевод админки (файл textpattern/lang/ru-ru.txt) сделан и поддерживается Inspired-ом

2. если вы собираетесь использовать так называемые ЧПУ ( Человеко-Понятные Урлы ) для ссылок на статьи.
Тут ситуация такая. в Textpattern ссылки на статьи в урлах формируются с использованием заголовков статей. Т.е.
если статья у Вас называется по русски "Моя Прекрасная Леди", то Textpattern попытается создать урл для такого название, но получится что-то весьма неудобоваримое. Буржуи. Что с них возьмешь. Многие из них, думаю, даже и не догадываются о наличии кириллицы.
Шаг в сторону. В Сети попадалась мне статья, где умные дяди совершенно серьезно излагают проект об упразднении кириллицы, и замены всех кириллических букв латинскими буквами и их сочетаниями. Причем речь шла не о банальной замене кириллицы на латиницу, а введение новых символов для обозначения шипящих и т.п. с соответствующими изменениями правил русского языка.
Утопия, пожалуй, хотя, прецеденты есть. Говорят, Азербайджан у себя заменил кириллицу на латинские буквы, и, вроде, Турция поменяла арабскую вязь на латинский алфавит. Их программистам теперь проще :-)
Возвращаемся к нашей кириллице в названиях статей и преобразованию их во что-то более приемлемое для интернета.
Решение предложил pepelsbey

Вот тут Вам придется почуствовать себя юным хакером.
в файле textpattern/lib/txplib_misc.php найдите строки

    function dumbDown($str)
    {
        $array = array(


и сразу же за этой строкой надо вставить следующее:

               ’а’=>‘a’,
               ’б’=>‘b’,
               ’в’=>‘v’,
               ’г’=>‘g’,
               ’д’=>‘d’,
               ’е’=>‘e’,
               ’ё’=>‘jo’,
               ’ж’=>‘zh’,
               ’з’=>‘z’,
               ’и’=>‘i’,
               ’й’=>‘jj’,
               ’к’=>‘k’,
               ’л’=>‘l’,
               ’м’=>‘m’,
               ’н’=>‘n’,
               ’о’=>‘o’,
               ’п’=>‘p’,
               ’р’=>‘r’,
               ’с’=>’s’,
               ’т’=>‘t’,
               ’у’=>‘u’,
               ’ф’=>‘f’,
               ’х’=>‘kh’,
               ’ц’=>‘c’,
               ’ч’=>‘ch’,
               ’ш’=>‘sh’,
               ’щ’=>‘sh’,
               ’ъ’=>‘’,
               ’ы’=>‘y’,
               ’ь’=>‘’,
               ’э’=>‘eh’,
               ’ю’=>‘ju’,
               ’я’=>‘ja’,
               ’А’=>‘a’,
               ’Б’=>‘b’,
               ’В’=>‘v’,
               ’Г’=>‘g’,
               ’Д’=>‘d’,
               ’Е’=>‘e’,
               ’Ё’=>‘jo’,
               ’Ж’=>‘zh’,
               ’З’=>‘z’,
               ’И’=>‘i’,
               ’Й’=>‘jj’,
               ’К’=>‘k’,
               ’Л’=>‘l’,
               ’М’=>‘m’,
               ’Н’=>‘n’,
               ’О’=>‘o’,
               ’П’=>‘p’,
               ’Р’=>‘r’,
               ’С’=>’s’,
               ’Т’=>‘t’,
               ’У’=>‘u’,
               ’Ф’=>‘f’,
               ’Х’=>‘kh’,
               ’Ц’=>‘c’,
               ’Ч’=>‘ch’,
               ’Ш’=>‘sh’,
               ’Щ’=>‘sh’,
               ’Ъ’=>‘’,
               ’Ы’=>‘y’,
               ’Ь’=>‘’,
               ’Э’=>‘eh’,
               ’Ю’=>‘ju’,
               ’Я’=>‘ja’,

Вы, наверно уже догадались, для чего мы это делаем?
Делаем для того, чтобы все русские буквы кириллицы в названиях статей, которые затем используются для формирования ЧПУ,
конвертировались в латиницу. Т.е. теперь ссылка на статью "Моя Прекрасная Леди" будет выглядеть как ссылка
на страницу moja-prekrasnaja-ledi

Важный момент! Не забываем, что вышеприведенные манипуляции делаем в UTF-8 кодировке!!!
Pepelsbey великодушно выложил вышеуказанный кусок кода уже в UTF-8 здесь.
Скачиваем и наслаждаемся.

Если наслаждение неполное - попробуйте покопаться в коде и предложите другое решение - будем признательны.

примечание, сделанное позднее:
Дополнительную информацию по транслиту можно посмотреть здесь.
В русской сборке ТП используется таблица BSI-ISA. Данные в этом стандарте для хака, описанного выше, в UTF-8, вы можете взять здесь.




3. Последнии этап.
Для ссылок на секции-разделы (section) сайта используется принцип формирования ссылок, аналогичный предыдущему, для статей.
Если Вы не планируете использовать секции, то этот этап Вас не должен интересовать.
Если же используете, то придется еще немного пошаманить.

решение предложил так же, Pepelsbey.
Инструкцию на английском написал Gobbr.

устанавливается плагин stw_category_tree.
затем идем в административную панель по пунктам:

admin >> plugins >> stw_category_tree >> edit,

находим строку:

return tag($cat,’a’,’ href=”’.$path.’c=’.urlencode($cat).’”’);

и меняем ее на:

return tag(gTxt($cat),’a’,’ href=”’.$path.’c=’.urlencode($cat).’”’);

не забываем сохраниться.

После этого, называем свои секции по английски, например: games, music и т.п.
Теперь открываем наш языковой файл ( если у нас в админ панели установлен русский, то это файл textpattern/lang/ru-ru.txt ),
и добавляем перевод этих наименований, например:
games => игры
music => музыка

На этом свои танцы с бубнами заканчиваем и смахиваем испарину со лба.

Стоит отметить - что последнее решение не совсем элегантно,
так как:
- приходится периодически залезать в языковой файл(в случае внесения корректив) и
- требует использования определенного плагина.
Но работать уже можно.
Удачи!

Отредактированно Evgeny (06-06-2005 13:33:46)

Неактивен

 

#2 05-05-2005 01:28:50

Gobbr
веди
Откуда: Moscow, Russia
Зарегистрирован: 03-05-2005
Сообщений: 18

Re: как заставить Textpattern работать на русскоязычных сайтах

Внимание!!
Обратите внимание, что форум считает себя умнее нас и вероломно заменяет прямые кавычки и апострофы на косые.. поэтому, чтоб все работало, нужно в приведенном коде произвести обратную замену на правильные кавычки.

А на будущее, было бы неплохо публиковать код, как код {code}, а не обычный текст.
Хотя тег {code}, почему-то, на этом форуме не работает.. =\

Примечание Администратора: Теперь работает.

Отредактированно Admin (12-05-2005 13:04:22)

Неактивен

 

#3 11-05-2005 11:51:16

Dmitry Shvalyov
буки
Откуда: Йошкар-Ола
Зарегистрирован: 11-05-2005
Сообщений: 14

Re: как заставить Textpattern работать на русскоязычных сайтах

создана новая тема и сообщение перенесено туда

Неактивен

 

#4 24-05-2005 19:59:43

untitledds
глаголь
Откуда: Москва
Зарегистрирован: 21-05-2005
Сообщений: 39

Re: как заставить Textpattern работать на русскоязычных сайтах

Notice: Undefined variable: l in z:\home\textpattern.sx\www\textpattern\lib\txplib_db.php on line 257

Notice: Undefined variable: r in z:\home\textpattern.sx\www\textpattern\lib\txplib_db.php on line 257

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in z:\home\textpattern.sx\www\textpattern\lib\txplib_db.php on line 209

Notice: Undefined variable: out in z:\home\textpattern.sx\www\textpattern\lib\txplib_db.php on line 276
даёт такую ошибку после использования хака с  stw_category_tree
т.е. категории не работают, может быть есть ещё какой-нибкдь способ?

Отредактированно untitledds (24-05-2005 20:00:41)

Неактивен

 

#5 25-05-2005 10:09:11

Beginner
земля
Зарегистрирован: 22-04-2005
Сообщений: 104

Re: как заставить Textpattern работать на русскоязычных сайтах

еще предлагается способ, но пока не проверялся sad

In the file textpattern/include/publish/taghandlers.php find this line (436):

Код:

if($a) $out[] = tag(str_replace("NOTE stuff here got scrambled in textile NOTE", $a),’a’,’ href=”’.hu.’?c=’.urlencode($a).’”’);
In str_replace() change $a to gTxt( $a ).

попробуй. расскажи о результатах smile

P.S. в этом случае stw_category устанавливать не надо

Отредактированно Beginner (25-05-2005 10:12:38)

Неактивен

 

#6 25-05-2005 23:52:41

untitledds
глаголь
Откуда: Москва
Зарегистрирован: 21-05-2005
Сообщений: 39

Re: как заставить Textpattern работать на русскоязычных сайтах

попробую, хотя эти пляски с бубном меня не прут:)

Неактивен

 

#7 30-05-2005 20:07:13

Beginner
земля
Зарегистрирован: 22-04-2005
Сообщений: 104

Re: как заставить Textpattern работать на русскоязычных сайтах

меня тоже, но что делать?
решил проверить, что же там насоветовали и увидел - что полная это фигня.
и файл в другой папке, правильный путь
> textpattern/publish/taghandlers.php
и линия не та. и код уже сильно изменен там.
в итоге, приношу извинения, что посоветовал не проверив sad
непонятно почему у тебя не заработал stw_category. но другого варианта пока нет

Неактивен

 

#8 31-05-2005 13:29:31

untitledds
глаголь
Откуда: Москва
Зарегистрирован: 21-05-2005
Сообщений: 39

Re: как заставить Textpattern работать на русскоязычных сайтах

как я понял есть ещё способ с etz_crumbs, только не понимаю как он работает пример вот тут http://www.agitprop.gr/. Если кто разберётся расскажите.
все понял просто он делает title а ЧПУ не делат:(

Отредактированно untitledds (31-05-2005 13:43:57)

Неактивен

 

#9 06-06-2005 13:38:32

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: как заставить Textpattern работать на русскоязычных сайтах

решение есть от самих создателей.
в последних субверсиях введена поддержка дополнительных наименований для категорий и секций.
подробнее - здесь.
Т.е. система меняется в лучшую сторону :-)

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru