Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Возможно ли
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Mon Sep 20, 2004 2:00 pm    Post subject: Возможно ли Reply with quote

попросить админа web-сервера положить в папочку русскоязычного форума файлик ".htaccess" следующего содержания:
Code:
AddDefaultCharset KOI8-R
и сказать
Code:
# /etc/init.d/apache2 reload
Ибо выставлять постоянно в каждом окне кодировку утомляет.
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Mon Sep 20, 2004 7:56 pm    Post subject: Reply with quote

Судя по URL'ам, это невозможно. Думаю, что форумы храняться целиком в базе в виде поля с признаком "форум".

Как ни странно, Mozilla показывает все хорошо. Autodetect выключен, версия 1.7.2.
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Tue Sep 21, 2004 4:48 am    Post subject: Re: Возможно ли Reply with quote

GreenDragon wrote:
положить в папочку русскоязычного форума файлик ".htaccess"

Простите, а где вы увидели эту самую "папочку русскоязычного форума"? Назовите админу эту "папочку" и он положит, я уверен.

viy wrote:
форумы храняться целиком в базе в виде поля с признаком "форум"

Ой.. это уже "непередаваемые ощчущчения..."...
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Tue Sep 21, 2004 6:37 am    Post subject: Reply with quote

А что вызвало "непередаваемые ощчущчения..."?
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Tue Sep 21, 2004 8:59 am    Post subject: Reply with quote

viy wrote:
А что вызвало "непередаваемые ощчущчения..."?

То что в квоте ;)
Точнее - не совсем я понял, причём тут база вообще. Даже если предположить, что база и "при чём", то что за "поля с признаком "форум""?
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Tue Sep 21, 2004 11:10 am    Post subject: Re: Возможно ли Reply with quote

chernousov wrote:
GreenDragon wrote:
положить в папочку русскоязычного форума файлик ".htaccess"

Простите, а где вы увидели эту самую "папочку русскоязычного форума"? Назовите админу эту "папочку" и он положит, я уверен.

Ну не знаю как они там хранятся, но то что страница одается через, извините" жопу, так это уж точно. Некоторое время назад все было нормально (с пол-года примерно). А выключать автодетект, ну извините, мне за день приходится бывать на полтора десятках сайтов в различных кодировках и каждый раз выбирать кодовою страницу не то что напрягает, а вызывает неприятные ощущения.
Что там у Мозилы - не знаю, она меня не интересует, но, к примеру, тот же IE ее так же неправильно отображает. Если уже что-то желать, так не через одно известное место, а вообще это похоже на рассовую дискриминацию :-)))
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Tue Sep 21, 2004 11:21 am    Post subject: Reply with quote

К сожалению phpbb не поддерживает различные кодировки для различных форумов в пределах одного борда. Однако, я в своё время изхитрялся добавлять поле в табличку с форумами, куда клал нужную кодировку, а потом перед отдаванием визитору контента проверял, к какому форуму этот контент относится и выплёвывал браузеру соответствующие хедеры. Но возьмутся ли уважаемые нами веб-мастеры нашего любимого forums.gentoo.org за такую переделку?..
Back to top
View user's profile Send private message
@lexb
Tux's lil' helper
Tux's lil' helper


Joined: 15 Dec 2003
Posts: 79
Location: Chehov

PostPosted: Tue Sep 21, 2004 4:33 pm    Post subject: Reply with quote

может стоит в личных настройках выбрать язык форума?
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Tue Sep 21, 2004 5:13 pm    Post subject: Reply with quote

@lexb wrote:
может стоит в личных настройках выбрать язык форума?


Нет. нефига не помогло.

А что мешает выставить у всех форумов UTF-8 кодировку?

Nickolay
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Tue Sep 21, 2004 5:40 pm    Post subject: Reply with quote

nbkolchin wrote:
@lexb wrote:
может стоит в личных настройках выбрать язык форума?

Нет. нефига не помогло.
И не поможет. Это всего лишь язык интерфейса, то есть язык сообщений, которыми форум с вами "общается".

А на счёт UTF, то это целая эпопея. Первое требование, чтобы UTF корректно поддерживала используемая база данных, иначе станет невозможным индексация и поиск. Ну и конечно, до кучи это должен корректно прожёвывать PHP, ибо не всякий PHP по дефолту знает, что такое mbstring, iconv etc....
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Tue Sep 21, 2004 6:03 pm    Post subject: Reply with quote

chernousov wrote:
А на счёт UTF, то это целая эпопея. Первое требование, чтобы UTF корректно поддерживала используемая база данных, иначе станет невозможным индексация и поиск. Ну и конечно, до кучи это должен корректно прожёвывать PHP, ибо не всякий PHP по дефолту знает, что такое mbstring, iconv etc....


База данных: postgresql или нестабильный mysql.

А с PHP действительно жопа. :(

Нереально все это. Интересно, а как проблему решают греки? Может скооперироваться с ними и китайцами, да надавить на админов?

Nickolay
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Tue Sep 21, 2004 7:17 pm    Post subject: Reply with quote

phpBB хранит все данные в базе. Признак "форум" --- поле с данной смысловой нагрузгкой в таблице с сообщениями, участвующее в формировании where-условия при выборке списка сообщений.

В этом вся проблема и есть. Мне кажется, что phpBB не позволяет настраивать что-либо для отдельных форумов (не знаю). Как писал г. Лебедев, все можно решить, добавив кодировку в тэг <meta http-equiv name="Content-type"... />. Сейчас (в исходниках страниц) указан только общий тип, без кодировки. На всех форумах (смотрел греков, а китайцев не нашел) то же.

По моему мнению, про проблему надо разработчикам phpBB писать. А админы forums.gentoo.org могут только грубо спичек в исходники натыкать, типа для форума 43, ставить кодировку koi8-r.

IMHO
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Wed Sep 22, 2004 4:21 am    Post subject: Reply with quote

viy wrote:
phpBB хранит все данные в базе. Признак "форум" --- поле с данной смысловой нагрузгкой в таблице с сообщениями, участвующее в формировании where-условия при выборке списка сообщений.

Звучит устрашающе.. "Непередаваемые ощчущчения", часть вторая :twisted:
Ты наверное хотел сказать "в таблице сообщений есть колонка, где хранится идентификатор форума, которому принадлежит сообщение"? Мы правильно тебя поняли? ;)
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Wed Sep 22, 2004 4:31 am    Post subject: Reply with quote

Мне интересно: а Админы этот форум вообще читают?

Nickolay
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Wed Sep 22, 2004 5:02 am    Post subject: Reply with quote

Вдогонку:

1) phpbb устанавливает кодировку в файле overall_header.tpl. По умолчанию там стоит глобальная кодировка для всей системы S_CONTENT_ENCODING. В Gentoo content-encoding вообще выкинули.

2) Упражнение для желающих: переписать overall_header.tpl таким образом, чтобы content-encoding устанавливался в зависимости от языка выбранного пользователем.

Quote:



To enable compliance with HTML and XHTML specifications as well as enabling browsers to automatically support a users selected language we enable a charset tag to be output to the browser. This identifies the primary character set the user has selected, eg. iso-8859-1 for Western European languages (English, German, French, etc.), windows-1251 for Cyrillic alphabets (Russian, Bulgarian, etc.) and so on. The downside to doing this is that most modern browsers (such as Internet Explorer) convert any character not present in that character set into what are termed Numerical Character References or NCR's. These take the form of &#nnnn; where nnnn is the hexadecimal number of that characters UNICODE reference.



Unfortunately PHP (which effectively supports only iso-8859-1 at this time) does not appear to attempt to process this data back into normal characters. Therefore phpBB treats them as text the user has entered and wishes to see. phpBB enables this by turning the & into &amp;. This results in the characters appearing as they do. Although we could ignore &#nnnn; (there are pro's and of course con's to doing so) at present we don't.



If you are finding this to be problem the solution is to remove the

charset={S_CONTENT_ENCODING}
text from all the _header.tpl template files in all templates. The downside to this is a users browser will not automatically switch its charset to that selected by the user (however this is unlikely to be a big problem since users typically run their browser by default in the language they wish to use). Alternatively you can modify the $lang['ENCODING'] entry in the appropriate language file. Until PHP (and all browsers!) trully support UNICODE these problems will persist across all boards.


Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
<meta http-equiv="Content-Style-Type" content="text/css"></head><body bgcolor="{T_BODY_BGCOLOR}" text="{T_BODY_TEXT}" link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}" />
{META}
{NAV_LINKS}
<title>{SITENAME} :: {PAGE_TITLE}</title>
<!-- link rel="stylesheet" href="templates/subSilver/{T_HEAD_STYLESHEET}" type="text/css" -->


Nickolay
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Wed Sep 22, 2004 6:41 am    Post subject: Reply with quote

nbkolchin wrote:
2) Упражнение для желающих: переписать overall_header.tpl

Увы, но, упражнение не приведёт к желаемому результату. Ни <html dir="..."> ни <meta http-equiv="Content-Type" content="text/html; charset=..."> не влияют на автодетект кодировки в браузере.

Но решение есть, и вот оно: header("Content-Type: text/html; charset=$our_charset");

Это можно всунуть например в common.php (если речь идёт о phpBB), ибо этот файл включается во все остальные .php форума.

P.S. Я опускаю детали, откуда выдернуть $our_charset ;). Думаю, это не требует комментариев.
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Wed Sep 22, 2004 7:07 am    Post subject: Reply with quote

chernousov wrote:
Увы, но, упражнение не приведёт к желаемому результату. Ни <html dir="..."> ни <meta http-equiv="Content-Type" content="text/html; charset=..."> не влияют на автодетект кодировки в браузере.


Как так?! Всю жизнь броузеры опираются на наличие либо HTTP заголовка Content-type, либо на наличие тэга <meta http-equiv="Content-type" ... Причем второе --- аналог первого.
Так что нужный результат --- будет!
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Wed Sep 22, 2004 9:08 am    Post subject: Reply with quote

На самом деле, все зависит от браузера. Причем (на днях) konqueror, выдал совершенно чудовищный глюк: кодировка на странице и в форме была разной. :)

ИМХО, единственно верный способ борьбы с кодировками это выставление всех трех полей в нужную:
- header(...)
- <?xml version="1.0" encoding="..."?>
- <meta http-equiv="Content-Type" content="text/html; charset=.../>

В любом случае, как я понял, ничего невозможного в автоматическом выставлении кодировки в зависимости от языка пользователя нет. Правильно?

Народ, кто разбирается в phpbb: напишите конкретные места куда воткнуть кодировку и будет давить админов. Напишем багрепорт с конкретным списком необходимых изменений в phpbb.

Nickolay
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Wed Sep 22, 2004 12:09 pm    Post subject: Reply with quote

phpbb говорите не может, а как же здесь он может http://www.linuxshop.ru/forum/ ? Вроде там тот же phpbb, может ошибаюсь конечно
Единственное если только глобально выставлен
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Wed Sep 22, 2004 1:47 pm    Post subject: Reply with quote

GreenDragon wrote:
phpbb говорите не может, а как же здесь он может http://www.linuxshop.ru/forum/ ? Вроде там тот же phpbb, может ошибаюсь конечно
Единственное если только глобально выставлен


В этом и проблема. Тут глобально выставить кодировку нельзя. :(

Nickolay
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Thu Sep 23, 2004 10:37 am    Post subject: Reply with quote

nbkolchin wrote:
Народ, кто разбирается в phpbb: напишите конкретные места куда воткнуть кодировку и будет давить админов.
Ну ок, вполне реально. Однако, я вижу как минимум четыре варианта реализации, у каждого есть свои минусы:

1. Encoding per-forum. Страницы, принадлежащие какому-то форуму, будут показаны в правильной кодировке. Русский - в русской кодировке, греческий - в греческой. Минус - страницы, явно не принадлежащие конкретному форуму будут показываться в дефолтной кодировке (напр., faq, profile, memberlist etc.). Плюс - относительная простота вносимых изменений. Подразумевается также, что я не буду вносить изменения в интерфейс админа, а кодировку админ ручками в базе сам пропишет (update phpbb_forums set encoding='KOI8-r' where forum_name='Russian' или forum_id=43)

2. Encoding per-user. Юзер сам себе выбирает кодировку с своём профиле (не путать с языком!!). Минус - греческий форум у русского пользователя будет отображаться тоже в KOI8 8O. Ещё один минус - придётся-таки лезть в интерфейс - надо в профиле юзера добавлять поле encoding, реализовывать select и update этого поля в базе.

3. Encoding per-forum feat. per-user. Пожалуй, идеальное, но самое сложное решение, объединяющее предыдущие два. Страницы, не принадлежащие конкретным форумам будут показываться в per-user кодировке, русский форум будет показываться в русской кодировке, а греческий форум всё-таки будет показываться в греческой кодировке.

4. Encoding=Language. Самое лёгкое, быстрое и примитивное решение - если у вас язык интерфейса - русский, значит вам насильно повсюду впендюрим KOI8-R. Никаких дополнительных полей в базе, никаких селектов и апдейтов. Греческий форум по-прежнему будет показан в KOI8-R. Ну и ещё один минус - у меня вот язык интерфейса стоит английский... и у меня нет никакого желания переключать его на русский. Значит, такие любители английского интерфейса, как я, будут по-прежнему иметь проблему кодировки с русским форумом.

Господа, жду ваших комментариев. Только, плиз, аргументированно.
Back to top
View user's profile Send private message
nbkolchin
Apprentice
Apprentice


Joined: 07 Feb 2004
Posts: 290
Location: Russia, Saint-Petersburg

PostPosted: Thu Sep 23, 2004 12:11 pm    Post subject: Reply with quote

chernousov wrote:
4. Encoding=Language. Самое лёгкое, быстрое и примитивное решение - если у вас язык интерфейса - русский, значит вам насильно повсюду впендюрим KOI8-R. Никаких дополнительных полей в базе, никаких селектов и апдейтов. Греческий форум по-прежнему будет показан в KOI8-R. Ну и ещё один минус - у меня вот язык интерфейса стоит английский... и у меня нет никакого желания переключать его на русский. Значит, такие любители английского интерфейса, как я, будут по-прежнему иметь проблему кодировки с русским форумом.


Я за четвертое решение. Причины: Минимальный геморрой у администраторов сайта. С чем-то более сложным они пошлют сразу и навсегда. Все таки 99% посетителей сайта, проблемы русского форума не трогают.

Я попробовал включить русский --- оно совсем не страшно, и практически незаметно в англоязычных форумах.

Nickolay
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Thu Sep 23, 2004 12:55 pm    Post subject: Reply with quote

Забыл уточнить: 2й, 4й и частично 3й варианты будут работать только если пользователь залогинен! Все ли незалогиненые читатели форума будут иметь дефолтную кодировку.

Однако, 4й вариант реализуется следующим образом:

0. Идём в директорию, где лежит наш phpbb.

1. Открываем includes/auth.php и делаем вставляем туда одну строку в ф-цию auth() так, чтобы всё выглядело примерно так:
Code:
function auth($type, $forum_id, $userdata, $f_access = '')
{
    global $db, $lang;

    header("Content-Type: text/html; charset=".$lang['ENCODING']); // эту строку мы вставили

    switch( $type )

2. Идём в language/lang_russian/lang_main.php и убеждаемся в наличии строки
Code:
$lang['ENCODING'] = 'koi8-r';
Аналогично, повторить этот пункт для других языков.

3. Надо вернуть строку
Code:
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
в соответствующее место файла templates/{ИМЯ_ТЕМПЛЕЙТА}/overall_header.tpl.

4. Всё! ;)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum