Транслит URL постов для BlogEngine.NET

Как я и обещал в посте о том, как создавался этот блог, хочу поделиться плагином для BlogEngine.NET, который переводит заголовок поста в транслит.

Так как BlogEngine.NET не поддерживает транслитерацию URL постов, я решил написать плагин, который сделает это. Вернее не написать, а переписать уже готовый Slug Transliterator от Alan Mendelevich. Его плагин поддерживает замену одной буквы только на одну другую. А мне надо было, например, "Ж" превратить в "ZH" и так далее...

Все, что делает мой плагин, это преобразует заголовок поста написанный кириллицей в транслит по средствам сканирования массива "Original" и замены на соответствующий стринг в массиве "Substitute". Для примера можете посмотреть как выглядит URL этого поста.

Если Вас не устраивают дефольные значения замены букв, их всегда можно изменить в настройках. 

Скачать: TranslitPostTitle.cs (7,79 kb)

Поместите это файл в папку /App_Code/Extensions/ и включите этот extension в настройках BlogEngine.NET.

P.S.
Todo: Переписать для BlogEngine.Net v1.4 и выше.

Дата 07.08.2008 Тэги
Комментарии (8)

Комментарии

Blush

Blush Дата 30.11.2008

ЗдОрово! Как раз подумывал, как бы это дело реализовать Smile
Верчу сейчас в руках этот движок - смотрю, что с ним сделать можно.
Спасибо в общем!

PS: кстати, чекбокс уведомления о новых коментах у тебя тут не нажимается.

PoiSoN

PoiSoN Дата 30.11.2008

Blush, да не за что..
А ты в Opere сидишь?

Blush

Blush Дата 08.12.2008

Ага, в опере , а у тебя тоже не работают почтовые оповещения? Я коментарий случайно увидел Smile хотя может галочку поставить забыл.

PoiSoN

PoiSoN Дата 09.12.2008

Как-то они очень выборочно приходят..

Blush

Blush Дата 10.12.2008

А как выборочно?
Там вообще 2 разные функции на отсылку хозяину и коментаторам.
При чём оповещение о коментариях для предыдущих коментаторов, сработает только в процессе одобрения коментария модератором, соответственно если блог немодерируемый...  
Я на днях это описывал у себя, но видать забыл кнопочку сохранения нажать Frown - ночь уж была.
Придётся сегодня снова смотреть и писать.

Ailexey

Ailexey Дата 24.02.2009

Так и не понял, чего автор хотел сказать этим кодом (см.последняя строчка)?
    foreach (char c in title)
    {
        if (dic.ContainsKey(c.ToString()))
            result += c.ToString().Replace(c.ToString(), dic[c.ToString()]);
а что вот так мешает? может в оригинальном коде есть скртый для меня смысл?
            result += dic[c.ToString()];

PoiSoN

PoiSoN Дата 24.02.2009

Честно говоря уже не помню..

Alexander86

Alexander86 Дата 08.09.2009

Давно подумывал о такой возможности для своего Blog Engine. Беру на вооружение Smile

 

Последние комментарии

Мои Фотографии