ესე იგი მინდოდა თუ არ მინდოდა ირაკლი ნადარეიშვილმა მიბიძგა და ქართული კლავიატურის სკრიპტი დავწერე…
სკრიპტი ძალიან მარტივია, და მისი მიბმა შეგიძლიათ ნებისმიერ ტექსტურ ველზე, ასევე მას აქვს ქართული კლავიატურის ჩართვისა და გამორთვის მხარდაჭერა. სიმბოლოების ტრანსლირებისათვის გამოვიყენე ირაკლის მიერ წლების წინ შემუშავებული ალგორითმი (ორიგინალი შეგიძლიათ იხილოთ აქ)
სკრიპტის მუშა მაგალითი შეგიძლიათ იხილოთ ამ მისამართზე
სკრიპტის უახლესი ვერსიის გადმოწერა შეგიძლიათ ამ მისამართიდან
რა უპირატესობები აქვს ამ სკრიპტს? იგი არის პატარა, კოდი არის ძალიან მარტივი და გასაგები, არ აბინძურებს ვებ აპლიკაციის სკოუპს რადგან იგი მთლიანად არის ენკაპსულირებული თავისსავე სკოუპში რაც არის იმის გარანტია რომ მისი გამოყენება შეგიძლია მარტივად და უსაფრთხოდ თუნდაც სხვა ანალოგიური დანიშნულების სკრიპტებთან ერთად.
ასევე საგულისხმოა ის რომ String ობიექტს ემატება ორი მეთოდი ესენია:
- translateToKA() – მეთოდი რომელსაც შეუძლია ნებისმიერი სტრიქონის პირდაპირ გადაყვანა ქართულ უნიკოდში. რაც ნიშნავს იმას რომ ამ მეთოდის გამოყენება თამამად შეგიძლიათ თქვენს სკრიპტებში.
მეთოდის გამოყენება შეგიძლიათ შემდეგნაირად:
var str = "es aris nebismieri teqsti"; alert(str.translateToKA()); //ან პირდაპირ ასე alert("es aris text literali".translateToKA()); - pasteTo([html form element]) – რომელსაც პარამეტრად გადაეცემა ფორმის ელემენტი. ეს მეთოდი ტექსტის კოპირებას ახდენს ან პირდაპირ თუ ელემენტის მნიშვნელობა ცარიელია, ან იმ ადგილას სადაც ზის კურსორი, ან ჩაანაცვლებს მონიშნულ ტექსტს ახალი ტექსტით.
მეთოდის გამოყენება შეგიძლიათ შემდეგნაირად:
var str = "es aris nebismieri teqsti"; str.translateToKA().pasteTo(document.forms['my-form-name']['my-field-name']);
კოდი ვრცელდება MIT ლიცენზიით
/*
* GeoKBD 0.1 - Georgian keyboard and text convertation library
*
* Copyright (c) 2007 Ioseb Dzmanashvili (http://www.code.ge)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
*/
გამოყენების მაგალითი
HTML კოდი:
[html]
[/html]
JavaScript კოდი:
[javascript]
GeoKBD.map(‘my-form’, ‘post’);
GeoKBD.map(‘another-form’, ‘frm’, ‘geo1′);
[/javascript]
ამ კოდის შესრულების შემდეგ ორივე ფორმაში შესაძლებელი იქნება ქართულად ბეჭდვა, კლავიატურის გადართვის გარეშე.
სკრიპტის მუშაობის პრინციპი მარტივია, GeoKBD ობიექტის map მეთოდს გადავცემთ სამ პარამეტრს:
- HTML ფორმის სახელი ან თავად HTML ფორმა
- იმ ველის სახელი რომელშიც შესაძლებელი უნდა იყოს ქართულად ბეჭდვა ან თუ გსურთ რომ ფორმის ყველა ველში იყოს შესაძლებელი ქართულად ბეჭდვა, მაშინ ამ პარამეტრის გადაცემა არ არის აუცილებელი
- კლავიატურის გადამრთველი ველის(checkbox) სახელი (არ არის აუცილებელი პარამეტრი, თუ ამ პარამეტრს არ გადავცმეთ გამოყენებული იქნება სახელი ‘geo’)
პროგრამის სრული კოდი:
[javascript]
(function() {
/*
* GeoKBD 0.1 – Georgian keyboard and text convertation library
*
* Copyright (c) 2007 Ioseb Dzmanashvili (http://www.code.ge)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
*/
String.prototype.pasteTo = function(field) {
field.focus();
if (document.selection) {
var selection = document.selection;
var range = selection.createRange();
range.colapse;
if (range) {
range.text = this;
}
} else if (field.selectionStart || field.selectionEnd) {
var scrollTop = field.scrollTop;
var start = field.selectionStart;
var end = field.selectionEnd;
var value = field.value.substring(0, start) + this + field.value.substring(end, field.value.length);
field.value = value;
field.scrollTop = scrollTop;
field.selectionStart = start + this.length;
field.selectionEnd = start + this.length;
} else {
field.value += this;
}
},
String.prototype.translateToKA = function() {
/**
* Original idea by Irakli Nadareishvili
* http://www.sapikhvno.org/viewtopic.php?t=47&postdays=0&postorder=asc&start=10
*/
var index, chr, text = [], symbols = “abgdevzTiklmnopJrstufqRySCcZwWxjh”;
for (var i = 0; i < this.length; i++) {
chr = this.substr(i, 1);
if ((index = symbols.indexOf(chr)) >= 0) {
text.push(String.fromCharCode(index + 4304));
} else {
text.push(chr);
}
}
return text.join(”);
},
GeoKBD = {
event: {
get: function(e) {
return e || window.event;
},
getKeyCode: function(e) {
e = this.get(e);
return e.keyCode || e.which;
},
targetIs: function(e, tagName) {
e = this.get(e);
var t = e.target || e.srcElement;
return t.tagName.toLowerCase() == tagName ? t : null;
}
},
map: function(form, contentFieldName, switcher) {
var self = this;
form = (typeof form == ‘string’) ? document.forms[form] : form;
switcher = switcher || ‘geo’;
form.onkeypress = function(e) {
e = self.event.get(e);
if (e.altKey || e.ctrlKey) return;
var target, fieldName = contentFieldName, _switcher = switcher, keyCode = self.event.getKeyCode(e);
if (keyCode == 96) {
this[_switcher].checked = !this[_switcher].checked;
return false;
}
if (!this[_switcher].checked) return;
if ((target = (self.event.targetIs(e, ‘textarea’) || self.event.targetIs(e, ‘input’)))) {
if (fieldName && (target.name != fieldName)) return;
text = String.fromCharCode(keyCode);
kaText = text.translateToKA();
if (kaText != text) {
kaText.pasteTo(target);
return false;
}
}
}
form = null;
}
};
window.GeoKBD = GeoKBD;
})();
[/javascript]
ტეგები: GeoKBD, JavaScript, Tools
Mogesalmebi,
vapireb web gverdis gaketebas, samwuxarod ar vici qarTuli SriFtiT rogor unda aisaxos, ikneb gamiwio daxmareba da miTxra raime martivi xerxi saitis qarTulad gakeTebis, rac qarTul inetSi vnaxe kvelaze sufTad da lamazad fontebi am saitzea asaxuli,vapireb WP an DLE – s gamokenebas. winaswar gixdi madlobas.
გამარჯობა ალექს,
ვერ მივხვდი რას ნიშნავს საიტის ქართულად გაკეთება… თუ HTML ფორმაში ქართულად წერაზეა ლაპარაკი, მაშინ თავად ეს პოსტი და ასევე ეს პოსტი: http://www.code.ge/javascript/geokbd-first-update დაგეხმაროს ეგება?
gamarjoba Ioseb,
madloba gamoxmaurebisTvis. HTML is araferi ar mesmis samtsuxarod, makvs dvijoki joomla, sakmaod cnobilia,aseve Sesabamisi skini (skini dasaxvetsia, vgulisxmob vizualurad da funkcionalurad) minda kartuli saitis gakedeba (tematikas shegnebulad ar utiteb), vgulisxmob imas rom, frontendi ikos qartuli, ai rogorc es saitia an tundac gol.ge,avoe.ge da ase shemdeg. mainteresebs aris tu ara HTML – is codnis gareshe amis gaketeba shesadzlebeli, tu ara ikneb gautsio rekomendacia vinmes vinc damexmareba, ra tkma unda garkveuli anazgaurebis safasurad. me am saqmis profesionalebs (saqartveloshi) ar vicnob. tu dainteresdebi ikneb momtsero, ak am dialogis gagrdzeleba ar mimachnia mizanshetsonilad.
ალექს,
ნამდვილად არ მაქვს იმის დრო, რომ რაიმე პროექტით დავინტერესდე ეხლა
რეკომენდაციას რაც შეეხება ამ მომენტისათვის არ მყავს გარშემო არავინ ისეთი ვინც მაგისთვის დროს გამონახავს…
თავად ქართულს რაც შეეხება, მაგისათვის საკმარისია ჩვეულებრივი ქართული კლავიატურის დაყენება ვინდოუსში და შემდეგ უკვე ტექსტების ქართულად აკრეფა… სულ ეს არის და ეს
ხო სკინს რაც შეეხება ჯუმლას აქვს ენების პაკეტი(language pack) და თავისუფლად შესაძლებელია მისი გადათარგმნა. დოკუმენტაცია და დეტალები თავად ჯუმლას საიტზე იქნება.
წარმატებები
didi madloba ioseb, vecdebi gaverkvio
ვბულლეტინ-ის ფორუმზე როგორ გავაკეთო ეგეთი რომ ქართულად ვწერო?
1) ადმინ პანელში მარცხენა მენიუში აირჩიე Styles & Templates
2) მერე Search in Templates
3) გვერდზე Search in Style მიუთითე სასურველი სტილი, “Search for Text” ველში ჩაწერე textarea და Find
4)მოგიძებნის ყველა შაბლონს სადაცაა textarea
თუ გინდა რომ WYSIWYG ედიტორშ ჩართო ქართულად წერა
აირჩიე editor_ toolbar_on შაბლოდნი და კოდს რომ გამოგიტანს ბოლოში ჩაამატე ეს:
<script type="text/javascript" src="geokbd.js"></script> <script type="text/javascript"> GeoKBD.mapIFrame('{$editorid}_iframe'); </script>geokbd.js შეგიძლია გადმოწერო აქედან: http://geokbd.googlecode.com/svn/trunk/geokbd/geokbd.js
თუ უბრალოდ ნებისმიერი ფორმაში გინდა რომ იწერებოდეს ქართულად, მაშინ საკმარისია მხოლოდ ასეთი რამ:
თუმცა WYSIWYG ედიტორისთვის ცალკე მაინც საჭირო იქნება ის კოდი რაც პირველად დავწერე…
წარმატებით ვიყენებ მთელს საითზე — ფორმით GeoKBD.map(); — მაგრამ ვერ მივხვდი როგორ შეიძლება გამოვიყენო DotNetNuke-ს FCK WYSIWIG რედაქტორში.
თუ არსებობს გამოცდილი გზა FCK-თვის?
ბპგ,
სამწუხაროდ რაიმე სპეციფიური FckEditor – ისთვის არაფერი გამიკეთებია
ნამდვილად ძალიან მიჭირს დროის მხრივ… მაგრამ გარკვეული ცდა ჩატარებული მაქვს აი ამ პოსტში შეგიძლიათ ნახოთ:
http://www.code.ge/geokbd/geokbd-022-rich-editor-support-improvements
კოდი ასე გამოიყურება:
GeoKBD.mapIFrame(function() { var _el = null; if (_el = document.getElementById('FCKeditor1___Frame')) { return _el.contentDocument.getElementsByTagName('iframe')[0]; } });FckEditor – ში ოდნავ განსხვავებულად არის რეალიზაცია და ასეთი შემოვლითი გზა არის საჭირო…
FCKeditor1___Frame ამ იდენტიფიკატორის ნაცვლად, საჭირო იქნება თქვენი ედიტორის კონკრეტული იდენტიფიკატორის მითითება… სხვა გზა ამ ეტაპისთვის სამწუხაროდ არ არის…
კარგი რამე აღმოვაჩინე თქვენი საიტის სახით.
ჰო, გამოვწერე სკრიპტი გუგლის რეპოზიტორიდან. რომლის ზომა იყო 10054. ასევე სადემონსტაციო მაგალითის მიხედვით გადავაკეთე ჩემს ფორუმზე ფორმა. მიუხედავად იმისა, ჩეკბოქსი ჩართული იყო თუ გამორთული მხოლოდ ქართულად ხდებოდა აკრეფვა. საცდელად თქვენივე საცდელის კოდი გადავიტასე ჩემს სერვერზე და იმანაც იგივე შედეგი მომცა, ანუ არ აქცევდა ჩეკბოქსს ყურადღებას. ამიტომ ავდექი და გადმოწერე სკრიპიტი დემოს მისამართიდან http://www.code.ge/samples/geokbd.js რომლის ზომაა 8537, ესკრიტი ავტვირთე საიტზე და ყველაფერი ამუშავდა. მადლობა სკრიპტისათვის.
ბერო,
დიდი მადლობა
ძალიან უყურადღებოდ დამრჩა ეს სკრიპტი სამწუყხაროდ
და ვერ ვუთმობ შესაბამის დროს… თუმცა მაქვს ახალი ვერსია რომელსაც პატარა დახვეწა სჭირდება და გამოვაქვეყნებ უახლოვეს მომავალში
გამარჯობათ. ვიცი ახლა ამ ქართული კლავიატურის გარჩევის დრო არ არის მაგრამ აქადმე ვიყენებდი ამ ქართულ კლავიატურის სკრიპტს:
http://www.code.ge/geokbd
დღეს კი სასწაული აღმოვაჩინე opera და IE6 ში არ მუსაობს იმ შემთხვევაში თუ ნაიმში გაქვს პარამეტრი length ანუ
length-ს მაგივრად სხვა სახელი რომ მივანიჭოთ მუშაობს ვირივით ხოლო ეგრე არა და არ უნდა მუშაობა … ნეტავ რაშია საქმე
გამარჯობათ. ვიცი ახლა ამ ქართული კლავიატურის გარჩევის დრო არ არის მაგრამ აქადმე ვიყენებდი ამ ქართულ კლავიატურის სკრიპტს:
http://www.code.ge/geokbd
დღეს კი სასწაული აღმოვაჩინე opera და IE6 ში არ მუსაობს იმ შემთხვევაში თუ ნაიმში გაქვს პარამეტრი length ანუ
length-ს მაგივრად სხვა სახელი რომ მივანიჭოთ მუშაობს ვირივით ხოლო ეგრე არა და არ უნდა მუშაობა … ნეტავ რაშია საქმე
შეგიძლიათ მითხრათ ეს ქართული კლავიატურის სკრიპტი როგორ გადავიტანო IPB 2.2.2. ფორუმში ??? ipb_geo.js რომ დავაყენე და ყველაფერი იდეალური სიზუსტით გადავამოწმე მაინც არ წერდა ეგება თქვენმა სკრიპტმა დამეხმაროს ამ საკითხში. წინასწარ დიდი მადლობა.
მეც ძალიან მაინტერესებს IP.Board-ში როგორ ხდება ამის ინტეგრაცია, ვერანაირად ვერ გავაქართულე.
v2.3.6
Ucoz-ზე შეიძლება ქართული კლავიატურის დაყენება?
@SNooPI
თვალით არ მინახავს Ucoz ვერაფერს გეტყვი.. თუ სკრიპტების ატვირთვა და HTML კოდის მოდიფიკაცია დაშვებულია რატომაც არა?
HTML-ი აქვს მარტო PHP-ი არ ჯდება იმიტო რომ Ucoz-ს თავისი კოდები აქ! და მაგითო ვერ ვსვავ
და მარტო HTML-ი ვერაფერს გახდება ? რამე სქრიპტი ან რამე რო მომცე იქნებ ჩაჯდეს
დიდი მადლობა წინასწარ!
@SNooPI
PHP რა შუაშია საერთოდ აქ?
არის მხოლოდ ჯავასკრიპტი, და ნახე თუ შეგიძლია ჯავასკრიპტის ატვირთვა და თუ არა მაშინ html-ით ვერაფერს გახდები სამწუხაროდ
საუბარია ჯავასცრიპტზე, გადახედე ზემოთ პოსტს, კაცმა ამდენი წერა
ალეკო
და მე იმიტო მოეგონა PHP-ი და იქნებ რამეში დამეხმაროთ….
ჯავასკრიფტი მიდის მარა ეხა არ გაუშვა იქ რო ვსვავ ნაწერებათ აჩვენებს
მაიინერესებს DLE დაყენება როგორ გავაკეთო თავიდან ბოლომდე თუკი შეგილიათ რომ დამეხმაროთ
ძალიან გთხოვთ როგორმე მასწავლეთ dle-ს სიახლის დამატებისას ქართულად წერა. ან addnews.tpl-ში რა კოდი უნდა ჩავაგდო http://up.jeje.ge/download.php?id=90A0CBC720 წინასწარ მადლობა
@თორნიკე
2
3
fields: ['title','short_story','full_story']
});
ეს გაუწერე მაგ ფაილს ბოლოში და წესით უნდა იმუშაოს. ისე მარტივია და ცოტას თუ დააკვირდები თითონაც გაუწერ
ვა -ში ჩავსვი და გამიფუჭა კომენტარი, მოკლედ ეგ უნდა გაუწერო და თავში და ბოლოში < s c r i p t t y p e . . . . და როგორც არის
ხალხო მისმინეთ დლეზე ვერ დავაყენე რა ვერაფრით და იქნებ ამიხსნათ თვითონ geokb.js სად ჩავაგდო?
ადმინ, მოკლედ ეს ქართული წერა მაქვს დაყენებული კომენტარებში DLE ზე და მინდა რომ სიახლის დამატებაშიც მქონდეს და ვერ გავაკეთე და იქნებ დამეხმარო ? გთხოვ სკაიპში დამიმატე: gadmowera.com მადლობა წინასწარ