Forums / National / Russian / Бета -впечатления.

<<<1...5...1011121314151617>>>

NovoKain
#196 2008-12-24 12:27
Trustmaster, почему бы и нет. Полноценные скины можно пересчитать по пальцам (есть куча скинов которые надо доделывать самостоятельно, например форумную часть к которой как раз по большей части аватары и относятся). И раз уш разговор зашёл на тему "красивости" и удобности для дизайнеров то решение кинуть аватар по умолчанию в папку скина будет верным.
Trustmaster
#197 2008-12-24 13:39
OK, мы сделаем так: если аватар-заглушка найден в папке скина, используется он; если нет, то используется datas/defaultav/blank.png.
May the Source be with you!
Sergeich
#198 2008-12-24 13:41
о, вот это правильно :)
Ratibor
#199 2008-12-25 04:21
Вставлю свои 5 коп. по поводу тэгов :)
С анлийскими тэгами вроде все нормально,
русские вроде тоже работают, но вот как выглядят ссылки :(
plug.php?e=tags&a=pages&t=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82
ИМХО не есть гуд.
Может стоит применять к русским тэгам транслитерацию ?

Вот к примеру как в MemHT зделано:
function mem_urlencode($str) {
	global $langdata;
	
	if (isset($langdata['url_pat']) AND @sizeof($langdata['url_pat']) == @sizeof($langdata['url_rep'])) {
		$str = preg_replace($langdata['url_pat'],$langdata['url_rep'],$str);
	}	
	 $alias = preg_replace('/&#x([0-9a-f]{1,7});/ei', 'chr(hexdec("\\1"))', $str);
 $alias = preg_replace('/&#([0-9]{1,7});/e', 'chr("\\1")', $alias);

if (preg_match("/[а-яё]+/i",$alias)) {

 static $replace_array = array(
 
 'а' => 'a',   'б' => 'b',   'в' => 'v',
  'г' => 'g',   'д' => 'd',   'е' => 'e',
  'ё' => '2',   'ж' => '9',  'з' => 'z',
  'и' => 'i',   'й' => 'y',   'к' => 'k',
  'л' => 'l',   'м' => 'm',   'н' => 'n',
  'о' => 'o',   'п' => 'p',   'р' => 'r',
  'с' => 's',   'т' => 't',   'у' => 'u',
  'ф' => 'f',   'х' => 'h',   'ц' => 'c',
  'ч' => '4',  'ш' => '3',  'щ' => '6',
  'ь' => 'w',  'ы' => '7',   'ъ' => 'q',
  'э' => '5',   'ю' => '0',  'я' => '8',
  
  'А' => 'A',   'Б' => 'B',   'В' => 'V',
  'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
  'Ё' => '2-',   'Ж' => '9-',  'З' => 'Z',
  'И' => 'I',   'Й' => 'Y',   'К' => 'K',
  'Л' => 'L',   'М' => 'M',   'Н' => 'N',
  'О' => 'O',   'П' => 'P',   'Р' => 'R',
  'С' => 'S',   'Т' => 'T',   'У' => 'U',
  'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
  'Ч' => '4-',  'Ш' => '3-',  'Щ' => '6-',
  'Ь' => 'W',  'Ы' => '7-',   'Ъ' => 'Q',
  'Э' => '5-',   'Ю' => '0-',  'Я' => '8-',
 
  '&' => 'and','\'' => ''
 );
 $alias = strtr($alias, $replace_array);

 $alias = strip_tags($alias); // strip HTML
 $alias = preg_replace('/[^\.%A-Za-z0-9 _-]/', '', $alias); // strip non-alphanumeric characters
 $alias = preg_replace('/\s+/', '-', $alias); // convert white-space to dash
 $alias = preg_replace('/-+/', '-', $alias);  // convert multiple dashes to one
 $alias = trim($alias, '-'); // trim excess
  $str = 'ru-'.$alias;}
	return urlencode($str);

}
function mem_deurlencode($str) {
	global $langdata;
	
	if (isset($langdata['url_pat']) AND @sizeof($langdata['url_pat']) == @sizeof($langdata['url_rep'])) {
		$str = preg_replace($langdata['url_pat'],$langdata['url_rep'],$str);
	}	
 // Convert all numeric entities to their actual character
 $alias = preg_replace('/&#x([0-9a-f]{1,7});/ei', 'chr(hexdec("\\1"))', $str);
 $alias = preg_replace('/&#([0-9]{1,7});/e', 'chr("\\1")', $alias);

if (preg_match ("/\bru-\b/", $alias)) {
 static $replace_array = array(
  'ru-'=>'',
  'a'=>'а' ,   'b'=>'б' ,   'v'=>'в',
  'g'=>'г',   'd'=>'д' ,   'e'=>'е'  ,
  '2'=>'ё' ,   '9'=>'ж' ,  'z'=>'з' ,
  'i'=>'и' ,   'y'=>'й' ,   'k'=>'к'  ,
  'l'=>'л' ,   'm'=>'м' ,   'n'=>'н'  ,
  'o'=>'о' ,   'p'=>'п'  ,   'r'=>'р'  ,
  's'=>'с' ,   't'=>'т'  ,   'u'=>'у' ,
  'f'=>'ф' ,   'h'=>'х' ,   'c'=>'ц'  ,
  '4'=>'ч' ,  '3'=>'ш'  ,  '6'=>'щ' ,
  'w'=>'ь' ,  '7'=>'ы'  ,   'q'=>'ъ' ,
  '5'=>'э' ,   '0'=>'ю' ,  '8'=>'я' ,
  
  'A'=>'А' ,   'B'=>'Б' ,   'V'=>'В' ,
  'G'=>'Г' ,   'D'=>'Д' ,   'E'=>'Е' ,
  '2-'=>'Ё' ,   '9'=>'Ж' ,  'Z'=>'З' ,
  'I'=>'И'  ,   'Y'=>'Й' ,   'K'=>'К'  ,
  'L'=>'Л'  ,   'M'=>'М' ,   'N'=>'Н' ,
  'O'=>'О'  ,   'P'=>'П' ,   'R'=>'Р'  ,
  'S'=>'С'  ,   'T'=>'Т' ,   'U'=>'У'  ,
  'F'=>'Ф'  ,   'H'=>'Х' ,   'C'=>'Ц'  ,
  '4-'=>'Ч' ,  '3-'=>'Ш' ,  '6-'=>'Щ'  ,
  'W'=>'Ь' ,  '7-'=>'Ы' ,   'Q'=>'Ъ'  ,
  '5-'=>'Э'  ,   '0-'=>'Ю' ,  '8-'=>'Я'  ,
  
 
 
 
 
  '&' => 'and','\'' => ''
 );
 $alias = strtr($alias, $replace_array);

 $str = trim($alias, '-'); // trim excess
} 

	return $str;
}
Не задавай глупых вопросов, не услышишь вранья.
Trustmaster
#200 2008-12-25 04:36
С кириллицей в URL'ах я экспериментирую уже не первый год (! ужас, самому страшно стало). И не в восторге от гладкости в этом вопросе. В тэгах я решил отказаться от транслитерации по следующим причинам:
[list=1]
  • Транслитерация не является взаимно-однозначным преобразованием.
  • Транслитерационные таблицы необходимо грамотно составлять для каждого языка.
  • FireFox и некоторые другие браузеры неплохо умеют работать с ссылками, содежащими кириллицу, и отображают их в виде текста, а не url-кодированной строки.
  • May the Source be with you!
    Ratibor
    #201 2008-12-25 04:39
    # Trustmaster :
  • Транслитерация не является взаимно-однозначным преобразованием.
  • А по русски можно ? :)
    # Trustmaster :
  • Транслитерационные таблицы необходимо грамотно составлять для каждого языка.
  • Ну для английского это не надо, а дря русского уж как нибудь составим :)
    А для других языков если кто не сможет составить, хуже то не будет,
    ссылки будут как сейчас :)

    P.S. А как к таким (не транслитерированным) ссылкам поисковики относятся ?
    Не задавай глупых вопросов, не услышишь вранья.
    Trustmaster
    #202 2008-12-25 05:11
    Преобразования F(x) и F^-1(x) называются взаимно-однозначным, если F^-1(F(x)) == x, где F^-1(x) - обратное преобразование. Проще говоря, по транслитерированному тексту не всегда точно восстанавливается исходное значение, а для тэгов это жизненно необходимо.

    Гугл с кириллическими символами в ссылках замечательно работает и даже подсвечивает ключевики в ссылках, если регистр символов совпадает (если не совпадает, то он их обрабатывает, но подсвечивать не может - надо гуглу баг репорт послать). Насчет других не знаю.
    May the Source be with you!
    Ratibor
    #203 2008-12-25 05:19
    # Trustmaster : Проще говоря, по транслитерированному тексту не всегда точно восстанавливается исходное значение, а для тэгов это жизненно необходимо.
    Назови хоть один пример.

    Из приведенного выше примера все отлично получается.
    Можно конечно некоторые символы заменить, а так впринципе все отлично работает.

    Если тэг английский, то выводится:
    tags_Digital.html
    а если русский, то к нему добавляется ru:
    tags_ru-Login.html

    Неправильно преобразовать впринципе не получится.
    Не задавай глупых вопросов, не услышишь вранья.
    This post was edited by Ratibor (2008-12-25 05:32, 15 years ago)
    Trustmaster
    #204 2008-12-25 05:32
    # Ratibor : Назови хоть один пример.
    Слово "мышцы".
    May the Source be with you!
    Trustmaster
    #205 2008-12-25 05:35
    Выше (из MemHT) приведена однозначная, но лингвистически неверная таблица транслитерации. Ценность такой транслитерации сомнительна.
    May the Source be with you!
    Ratibor
    #206 2008-12-25 05:36
    # Trustmaster : Слово "мышцы".
    Нормально оно преобразовывается в обе стороны, сейчас проверил на MemHT.
    Ссылка получается tags_ru-m73c7.html

    # Trustmaster : Выше (из MemHT) приведена однозначная, но лингвистически неверная таблица транслитерации. Ценность такой транслитерации сомнительна.
    Ну получается не хуже чем просто набор кракозябр,
    а таблицу я же сказал можно поправить :)
    Главное в ней то, что если русское слово преодразовывается, то в ссылку добавляется ru,
    и потом не возможно ошибится при обратном переводе.
    Да и слов как "мышцы" не так уж и много, вернее еденицы - этоя к тому даже если не переделывать таблицу, то пользы с таблицей больше, чем без нее.
    Не задавай глупых вопросов, не услышишь вранья.
    Trustmaster
    #207 2008-12-25 05:40
    Но и человек (в фоксе, по крайней мере), и гугл, понимают набор кракозябр, а вот этакий шифр - нет. Проще тогда их в base64 передавать, раз смысл не важен.
    May the Source be with you!
    Ratibor
    #208 2008-12-25 05:48
    # Trustmaster : Но и человек (в фоксе, по крайней мере), и гугл, понимают набор кракозябр,
    Не гуглом единым.... :)

    P.S. Кстати вот к примеру ссылка:
    http://ru.wikipedia.org/wiki/Привет,_дуралеи!
    В опере все нормально отображается.
    А по тегу Привет в Cotonti кракозябры выводятся, почему ?

    Посмотрел исходный код страницы, в обоих случаях все вроде одинаково,
    но в википедии все нормально отображается а в Cotonti нет.
    Если уж не хочешь транслитерацию делать, то хотябы сделать чтоб нормально как в википедии выводилось.
    Хотя все же лучше транслитерацию зделать, а то юзеры такого в тэги понапишут,
    что у гугла башню снесет :)
    Не задавай глупых вопросов, не услышишь вранья.
    This post was edited by Ratibor (2008-12-25 06:04, 15 years ago)
    Trustmaster
    #209 2008-12-25 06:03
    Потому что у Оперы для википедии эта фишка реализована эксклюзивно (считается, что для других сайтов она не нужна). В фоксе (во 2-й версии, помнится) тоже было так. Еще, насколько мне не изменяет склероз, отображение русских слов в ссылках есть в Google Chrome (не путать с поисковиком!).
    May the Source be with you!
    Trustmaster
    #210 2008-12-25 06:10
    Аналогичный пример:
    nelfiel.kodigy.com/tags/?t=блог

    Собственно, поэтому я так и борюсь против транслитерации, чтобы можно было вводить нужные слова в адресную строку на русском и получать результат поиска, а не изобретать заново китайский алфавит.
    May the Source be with you!

    <<<1...5...1011121314151617>>>