Site logo

Писане на кирилица за сайтове 6.0u rc2

Съдържание:
Попаднахте на страницата за програмисти и уебмайстори. Ако трябва да преведете текст от латиница на кирилица, ето тази страница ще ви е по-удобна. Ако имате сайт/форум и ви трябва конвертор за кирилица, четете надолу. --Петко

Здравейте!

Това е примерен файл, който показва как известният Скрипт за писане на кирилица с латинска клавиатура може много лесно да се сложи на всеки сайт, форум, книга за гости, формуляр и т.н.

Примерна употреба

За допълнителни настройки четете по-надолу.

Способности

Ако искате, можете да сложите програмата на Вашия сайт, на Вашия предпочитан форум или за други цели, много е лесно. Пишете на Вашия уебмайстор: ще го направи с удоволствие за нула време.

Има няколко предимства:

Можете да прочетете и помощния файл за потребителите.

За уебмайстори: изтеглете зип-архива (34 kB) с необходимите примерни и помощни файлове. Вижте и условията за ползване.

Бележки:
(1) Официално се поддържа от 6 нагоре. Преди нея, няколко знака не могат да се ползват за ограничители, иначе работи.
(2) Във версиите IE5.01 и по-стари не може да се зададе RegExp израз ".+?", затова има вероятност при команда [quote], [code] или [php], ако е последвана по-надолу от същата, целия текст между двете да се пропусне.
(3) Коства ми прекалено много усилия, за да правя още повече съвместимост, а почти няма нужда, но ако имате добри решения, давайте ги. Например Konqueror за съжаление има два бъга, един при RegExp.replace(кирилица), друг при self.opener.*.

Направил съм скрипта така, че най-лесно да се инсталира на всякакви сайтове и да се адаптира максимално. Приемам с удоволствие всякакви идеи, забележки и предложения.

начало

За дискусионни форуми

Скриптът може лесно да се ползва в/за повечето дискусионни форуми, тъй като разпознава и запазва командите за форматиране (BBcode, vBcode). Следните команди се поддържат (главни или малки букви) и са независими от избраните ограничители за латиница:

Можете да прочетете и помощния файл за потребителите.

начало

Програмата се инсталира светкавично и без проблеми на всички форуми, книги за гости, блогове и формуляри, включително phpBB и InvisionPB, обаче трябва да имате елементарни познания и да знаете в кой файл, подложка (template) или формуляр да направите промените. Ако указанията на страницата не изглеждат кристално ясни, по-добре помолете за помощ някой по-опитен. На мен ми пишете, ако откриете аномалии в самия скрипт.

Инсталиране

Инсталирането е много по-лесно, отколкото при предишните версии - добавя се само 1 (словом "един") ред.

1. Копирайте файла "cyr5ko6p.js" в някоя достъпна за четене директория на сайта ви. Този файл се препоръчва да бъде в директорията, в която се намира страницата, която го вика, или евентуално в по-горна директория, примерно в "/".

2. Във вашия сайт/страница/подложка, в същия формуляр като полетата за превод, там, където трябва да се появи менюто за кирилизация, сложете тази команда:

<script src="../js/cyr5ko6p.js" type="text/javascript" language="javascript1.2"></script>

Това е всичко и ще работи за повечето сайтове ("../js/cyr5ko6p.js" е пътят до скрипта, както е обяснено в точка 1).

Внимание, разлика с предишни версии: ако не са указани полетата за превод, по подразбиране скриптът ще превежда на кирилица текстовете от всички текстови полета във формуляра (text, textarea). Ако желаете да промените това, трябва да зададете полетата, които (не*) се превеждат, вместо горната команда, по следния начин (добавят се още два реда код):

<script type="text/javascript" language="javascript1.2"><!--
var v5_formfields = "komentari"; //--></script>
<script src="../js/cyr5ko6p.js" type="text/javascript" language="javascript1.2"></script>

Където "komentari" е полето, което ще се превежда. Ако има няколко полета за превод, отделете ги със "|": "komentari|zaglavie|grad". Това са всъщност "имената" на полетата в уебстраницата, които са зададени с атрибута name="komentari" (ако не разбирате съвсем какво означава това, по-добре не инсталирайте скрипта сами, ами помолете някой по-опитен).

(*) За други настройки, вижте по-долу.

Ако подновявате предишна версия, обикновено само сменяте файла cyr5ko6p.js (за версии след 6.0u-rc1); вижте по-долу и раздела "промени във версиите".

Ако желаете да ви пращам бележка, като направя нова версия (тестова или официална), пишете ми на 5ko (à) free.fr.

начало

Условия за ползване и публикуване

Това е свободна програма; това означава, че можете да я променяте, публикувате и/или разпространявате при условията на лиценза GNU GPL, публикуван от Фондацията за свободен софтуер: или версия 3, или (по Ваш избор) някоя следваща версия.

Това означава също така, че в началото на кода ми трябва да не се маха бележката с информацията за автора и разрешението за ползване (и без това е само като коментар :-). Държа много на това.

Тази програма е създадена с надеждата, че ще бъде полезна, но без никаква гаранция за това, без дори косвена гаранция за пригодност за някаква цел. Вижте лиценза GNU GPL за повече подробности (http://www.gnu.org/copyleft/gpl.html).

Ако я намирате за полезна и Ви върши работа, ще се радвам да го разбера.

Моля пращайте ми вашите коментари и идеи за подобрения на адрес 5ko (à) free.fr.

Поздрави, --Петко

начало

Техническа информация

Следва малко техническа информация, която може да ви спести време, ако искате да правите промени и подобрения. (Ако правите, непременно ми ги пратете.)

Изходен код

Изходният програмен код може да се види във файла cyr5ko6.source.js. Той е "компресиран" до cyr5ko6p.js с версия 2.0.2 на програмата "packer" от Дийн Едуардс, с което се намалява почти наполовина.

начало

Други настройки

Няколко неща още могат да се настроят, като се добавят команди или преди извикването на скрипта (както е показано по-горе), или в началото на самия файл cyr5ko6p.js. Забележете, че ако викате скрипта от различни страници, може би за всяка от тях ще има различни настройки и е по-добре да се поставят в самата страница; друго предимство да не се пипа скрипта е, че при нова версия ще трябва само да копирате новия файл на мястото на стария.

В новата версия 6.0u-rc2 има възможност скриптът да се инсталира многократно в страницата (ако има такава нужда; и то в различните формуляри само по веднъж). Можете да въведете наново командата <script..., която е показана, но по следния начин е много по-бързо и лесно за браузърите:

<script type="text/javascript" language="javascript1.2"><!--
// тук някоя от горните команди, ако има нужда;
cyr5ko_reload(); //--></script>

(без другия код). Това презарежда скрипта (вместо да го сваля наново и да предефинира всичко) и добавя ново падащо меню.

Разните варианти ги има показани тук.

начало

Алгоритъм

Преводът от кирилица към латиница е много прост, затова съществуват доста програми, които се справят добре.

Обратният превод, от латиница към кирилица, е по-голяма играчка. Ето няколкото полезни "хватки", с които се постига това.

Преводът: най-напред се заместват със знака "таб" всички комбинации, които не трябва да се превеждат. Ако в текста има знаци "таб" (което е малко вероятно, но може да се случи при залепване), те се отбелязват. След това текстът се превежда на кирилица, след това всеки знак "таб" се замества обратно със съответната комбинация.

Буквите са сортирани според дължината на латинските съответствия и преводът започва от по-дългите към по-късите. По този начин е възможно да се преведат правилно комбинации като "sht" преди "sh" и преди "s", "iu" преди "i" или "u" и т.н. Първо се превеждат малките букви, а после главните, като SHT, Sht, SHt, или дори shT (понеже се различават от "sht"), ще дадат главна "Щ".

Бисквитката: ако не правите промени в настройките, а ги ползвате така, както са по подразбиране, нямате бисквитки. Ако направите промени, в бисквитка се записват само те, в този формат (това са моите): "..v....j...y..................w...iu/yu.ia/q/ya", тоест буквите са разделени с точки, вариантите с наклонена черта, а тези, които са както по подразбиране, са празни.

Ако имате въпроси по алгоритъма, пишете ми.

начало

Промени във версиите

Настоящата версия е 6.0u-rc2. Промени спрямо 6.0u-rc1:

начало

6.0u-rc1

След повече от година, ето какви промени има в новата версия 6.0u-rc1.

Това е "Release candidate", което означава, че е по-стабилна от бета-версиите, но не е изключено да се скапе. Ще ви помоля да я изпробвате с колкото можете повече браузъри и операционни системи и ако забележите нещо нередно, да ми съобщите.

начало

Предишни версии

Версиите 5.x са в отделен клон, който изоставих и не са публикувани.

Версия 4.84 : няколко подобрения; по-лесна интеграция в "templates" като Smarty и други, които се ползват в някои форуми и сайтове.

Версия 4.8 : поддръжка на повечето от усмивките (:smileys:); козметични промени.

Версия 4.7 : Много подобрения в алгоритмите, стабилност, бързина. Нови възможности за форумите. Нови команди за ограничителите за латиница. Адреси на е-мейл и сайтове се разпознават и не се превеждат. Компактни команди от падащ списък. Руските букви "ы", "э", "ё".

Версия 3.04 : обратният превод от кирилица към латиница вече е възможен, със същите дефиниции.

начало