Исправление раскладки клавиатуры в заданной области textarea
Подскажите, пожалуйста, как вызвать функцию (исправление раскладки Ru->En) в заданной области <textarea>?
Граница области задаётся окаймляющей парой: [math],[/math]. То есть нужно, чтобы функция вызывалась только, когда курсор находится между [math] и [/math]. С исправлением раскладки во всей <textarea> почти нет проблем (не пашет в IE)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=content-type content="text/html; charset=utf-8">
<script type=text/javascript>
String.prototype.reverseRuEnLayout = (function()
{
var L = {'А':'F','а':'f','Б':'<','б':'\,','В':'D','в':'d','Г':'U','г':'u',
'Д':'L','д':'l','Е':'T','е':'t','Ё':'~','ё':'`','Ж':';','ж':';',
'З':'P','з':'p','И':'B','и':'b','Й':'Q','й':'q','К':'R','к':'r',
'Л':'K','л':'k','М':'V','м':'v','Н':'Y','н':'y','О':'J','о':'j',
'П':'G','п':'g','Р':'H','р':'h','С':'C','с':'c','Т':'N','т':'n',
'У':'E','у':'e','Ф':'A','ф':'a','Х':'{','х':'[','Ц':'W','ц':'w',
'Ч':'X','ч':'x','Ш':'I','ш':'i','Щ':'O','щ':'o','Ъ':'}','ъ':']',
'Ы':'S','ы':'s','Ь':'M','ь':'m','Э':'\'','э':'\'','Ю':'>','ю':'\.',
'Я':'Z','я':'z','/':'|',':':'^','?':'&' //некоторые символы специально не учтены
},
r = '', k;
for (k in L) r += k;
r = new RegExp('[' + r + ']', 'g');
k = function(a){return a in L ? L[a] : '';};
return function() {return this.replace(r, k);
onpropertychange="document.getElementById('abcd').value = this.value.reverseRuEnLayout()"
};
})();
</script>
</head>
<body>
<textarea style="margin-left: 50px; width: 400px; height: 100px;" id="abcd"
oninput="document.getElementById('abcd').value = this.value.reverseRuEnLayout()">
</textarea>
</body>
</html>
Нашел на этом форуме, как получить курсор в textarea, но использовать это не получается. |
Demath,
Воть тут функция для textarea => http://javascript.ru/forum/css-html-...tml#post185394 пост 2 |
Deff, спасибо. Пока не догнал, как использовать.
Также у немцев нашёл кроссбраузерный скрипт по отловли курсора в textarea вставки ббкодов, но тоже не разберусь, как подогнать для своего :(
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Einfügen von Inhalten in eine Textarea</title>
<script type="text/javascript">
function insert(aTag, eTag) {
var input = document.forms['formular'].elements['eingabe'];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
</script>
</head>
<body>
<form name="formular" action="">
<input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')">
<textarea name="eingabe" cols="30" rows="5">Ihre Nachricht</textarea>
</form>
<p>Positionieren Sie einfach den Cursor innerhalb der textarea oder markieren Sie Text darin. Wählen Sie dann "Einfügen", um <code>[link]...[/link]</code> an dieser Stelle einfügen zu lassen, sofern es der Browser ermöglicht.</p>
</body>
</html>
|
Demath,
Читайте пояснения в топике 0 там и спрашивайте 0 просто ставите функцию - прописываете в скрипте свой теxtarea, по вызову функции bbcode(bbopen, bbclose) (из onclick какой нидь кнопки) обрамляется текущий выделенный текст в bbopen, bbclose bbopen - тег начального обрамления ( к примеру [Demath] ) bbclose - тег конечного обрамления ( к примеру [/Demath] ) парся value теxtarea - (к примеру indexOf) получаете начальное по концу первого тега , а по началу второго - конечные точки выделения Или если нужно вставить ток в текущее положение используем функцию function smile(code, popup) в таком виде smile(code) - она вставит только тег в текущее положение курсора - далее парсим - определяем номер символа по концу тега - удаляем вставку |
Цитата:
А, вообще, спасибо, пригодится! Цитата:
__________________________________________________ _____________ P.S. Нашел кроссбраузерную (?) функцию для автокоррекции раскладки клавиатуры.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-ru" xml:lang="ru-ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Перевод в транслит</title>
<script type="text/javascript">
function correctRuEnlayout(){
var text=document.getElementById('abcd').value;
var transl=new Array();
transl['А']='F'; transl['а']='f';
transl['Б']='<'; transl['б']='\,';
transl['В']='D'; transl['в']='d';
transl['Г']='U'; transl['г']='u';
transl['Д']='L'; transl['д']='l';
transl['Е']='T'; transl['е']='t';
transl['Ё']='~'; transl['ё']='`';
transl['Ж']=';'; transl['ж']=';';
transl['З']='P'; transl['з']='p';
transl['И']='B'; transl['и']='b';
transl['Й']='Q'; transl['й']='q';
transl['К']='R'; transl['к']='r';
transl['Л']='K'; transl['л']='k';
transl['М']='V'; transl['м']='v';
transl['Н']='Y'; transl['н']='y';
transl['О']='J'; transl['о']='j';
transl['П']='G'; transl['п']='g';
transl['Р']='H'; transl['р']='h';
transl['С']='C'; transl['с']='c';
transl['Т']='N'; transl['т']='n';
transl['У']='E'; transl['у']='e';
transl['Ф']='A'; transl['ф']='a';
transl['Х']='{'; transl['х']='[';
transl['Ц']='W'; transl['ц']='w';
transl['Ч']='X'; transl['ч']='x';
transl['Ш']='I'; transl['ш']='i';
transl['Щ']='O'; transl['щ']='o';
transl['Ъ']='}'; transl['ъ']=']';
transl['Ы']='S'; transl['ы']='s';
transl['Ь']='M'; transl['ь']='m';
transl['Э']='\"'; transl['э']='\'';
transl['Ю']='>'; transl['ю']='\.';
transl['Я']='Z'; transl['я']='z';
transl['/']='|'; transl['\\']='\\';
transl[':']='^'; transl['?']='&';
//некоторые символы не учтены специально
var result='';
for(i=0;i<text.length;i++) {
if(transl[text[i]]!=undefined) { result+=transl[text[i]]; }
else { result+=text[i]; }
}
document.getElementById('abcd').value=result;
}
</script>
</head>
<body style="padding-left: 100px;">
<textarea id="abcd" style="width:300px; height:100px;" onkeyup="correctRuEnlayout()" ></textarea>
</body>
</html>
|
Цитата:
|
Цитата:
|
Спасибо, хороший и нужный скрипт, пригодится, но не совсем подходит под текущую нужду.
Например, чтобы пользователю набрать этот абзац с формулам (см. рис.), нужно 24 раза переключить раскладку клавиатуры, так как LaTex-код формул набирается на латинице. ![]() Нужно чтобы функция вызывалась (автокоррекция раскладки клавиатуры во время ввода) только когда русская буква появляется между [math]здесь[/math], а не во всей textarea. Думаю, не обязательно отлавливать позицию курсора. Сама функция
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-ru" xml:lang="ru-ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Перевод в транслит</title>
<script type="text/javascript">
function correctRuEnlayout(){
var text=document.getElementById('abcd').value;
var transl=new Array();
transl['А']='F'; transl['а']='f';
transl['Б']='<'; transl['б']='\,';
transl['В']='D'; transl['в']='d';
transl['Г']='U'; transl['г']='u';
transl['Д']='L'; transl['д']='l';
transl['Е']='T'; transl['е']='t';
transl['Ё']='~'; transl['ё']='`';
transl['Ж']=';'; transl['ж']=';';
transl['З']='P'; transl['з']='p';
transl['И']='B'; transl['и']='b';
transl['Й']='Q'; transl['й']='q';
transl['К']='R'; transl['к']='r';
transl['Л']='K'; transl['л']='k';
transl['М']='V'; transl['м']='v';
transl['Н']='Y'; transl['н']='y';
transl['О']='J'; transl['о']='j';
transl['П']='G'; transl['п']='g';
transl['Р']='H'; transl['р']='h';
transl['С']='C'; transl['с']='c';
transl['Т']='N'; transl['т']='n';
transl['У']='E'; transl['у']='e';
transl['Ф']='A'; transl['ф']='a';
transl['Х']='{'; transl['х']='[';
transl['Ц']='W'; transl['ц']='w';
transl['Ч']='X'; transl['ч']='x';
transl['Ш']='I'; transl['ш']='i';
transl['Щ']='O'; transl['щ']='o';
transl['Ъ']='}'; transl['ъ']=']';
transl['Ы']='S'; transl['ы']='s';
transl['Ь']='M'; transl['ь']='m';
transl['Э']='\"'; transl['э']='\'';
transl['Ю']='>'; transl['ю']='\.';
transl['Я']='Z'; transl['я']='z';
transl['/']='|'; transl['\\']='\\';
transl[':']='^'; transl['?']='&';
//некоторые символы не учтены специально
var result='';
for(i=0;i<text.length;i++) {
if(transl[text[i]]!=undefined) { result+=transl[text[i]]; }
else { result+=text[i]; }
}
document.getElementById('abcd').value=result;
}
</script>
</head>
<body style="padding-left: 100px;">
<textarea id="abcd" style="width:300px; height:100px;" onkeyup="correctRuEnlayout()" ></textarea>
</body>
</html>
|
Получилось только с помощью регулярных выражений
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-ru" xml:lang="ru-ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Перевод в транслит</title>
<script type="text/javascript">
function correctLayout(text){
if (typeof(text)=="undefined") return null;
var transl=new Array();
transl['А']='F'; transl['а']='f';
transl['Б']='<'; transl['б']='\,';
transl['В']='D'; transl['в']='d';
transl['Г']='U'; transl['г']='u';
transl['Д']='L'; transl['д']='l';
transl['Е']='T'; transl['е']='t';
transl['Ё']='~'; transl['ё']='`';
transl['Ж']=';'; transl['ж']=';';
transl['З']='P'; transl['з']='p';
transl['И']='B'; transl['и']='b';
transl['Й']='Q'; transl['й']='q';
transl['К']='R'; transl['к']='r';
transl['Л']='K'; transl['л']='k';
transl['М']='V'; transl['м']='v';
transl['Н']='Y'; transl['н']='y';
transl['О']='J'; transl['о']='j';
transl['П']='G'; transl['п']='g';
transl['Р']='H'; transl['р']='h';
transl['С']='C'; transl['с']='c';
transl['Т']='N'; transl['т']='n';
transl['У']='E'; transl['у']='e';
transl['Ф']='A'; transl['ф']='a';
transl['Х']='{'; transl['х']='[';
transl['Ц']='W'; transl['ц']='w';
transl['Ч']='X'; transl['ч']='x';
transl['Ш']='I'; transl['ш']='i';
transl['Щ']='O'; transl['щ']='o';
transl['Ъ']='}'; transl['ъ']=']';
transl['Ы']='S'; transl['ы']='s';
transl['Ь']='M'; transl['ь']='m';
transl['Э']='\"'; transl['э']='\'';
transl['Ю']='>'; transl['ю']='\.';
transl['Я']='Z'; transl['я']='z';
//некоторые символы не учтены специально
var result='';
for(i=0;i<text.length;i++) {
if(transl[text[i]]!=undefined) { result+=transl[text[i]]; }
else { result+=text[i]; }
}
return result;
};
function correctInPsevdoTag(text){
re= /\[math\]((.(?!\[\/math\]))*.)\[\/math\]/ig;
translit= function(text, group1) {
return correctLayout('[math]'+group1+'[/math]');
};
return text.replace(re, translit);
}
</script>
</head>
<body style="padding-left: 100px;">
<textarea id="abcd" style="width:300px; height:100px;" onkeyup="this.value=correctInPsevdoTag(this.value);"></textarea>
</body>
</html>
Но после каждого нажатия клавиши внутри [math][/math] курсор перебрасывает в конец строки :( Как это можно исправить? |
Цитата:
|
Цитата:
С выделением не легче (может чуть-чуть), чем с переключением раскладки. К тому же, пользователю нужно видеть в процессе ввода, что он вводит. Я так понимаю, что проблема связана с событием onKeyUp? |
Вот получилось (не без помощи) исправлять раскладку клавиатуры с Ru на En внутри тегов [ math][/math ] в textarea во время ввода (событие OnKeyUp), при этом каретка не переносится в конец строки после каждого нажатия клавиши внутри [ math][/math ].
Но раскладка клавиатуры корректируется только в первом вхождении [ math][/math ], в последующих не изменяется :( Подскажите, как это исправить.
<textarea style="width: 450px; height: 140px" id="abcd" onkeyup="correctInTag (this)">
Наберите что-либо на русском внутри [ math][/math ].
Но внутри второй пары [ math][/math ] и всех последующих раскладка не корректируется.
</textarea>
<script type="text/javascript">
function correctInTag (t)
{
if ((/[а-я]/i).exec (t.value.split ('[ math]') [1].split ('[/math ]') [0]) == null) return;
var cyr = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя',
klv = 'F<DULT~:PBQRKVYJGHCNEA{WXIOMS}">Zf,dult`;pbqrkvyjghcnea[wxioms]\'.z';
if (document.selection)
{t.focus ();
var rng = document.selection.createRange ();
rng.moveEnd ('character', -1); rng.moveEnd ('character', 1);
rng.text = klv.charAt (cyr.indexOf (rng.text));
}
else if (t.selectionStart >= 0)
{var s = t.selectionStart - 1;
t.value = t.value.substr (0, s)
+ klv.charAt (cyr.indexOf (t.value.substr (s, 1)))
+ t.value.substr (s + 1);
t.selectionStart = t.selectionEnd = s + 1;
}
}
</script>
|
Цитата:
тогда у Вас массив - его и обрабатываете через свою функцию correctInTag |
Цитата:
|
Demath,
Занчит рекурсия через replace http://javascript.ru/basic/regular-e...herez-funkciyu Делаете парс с помощью replace и вызываемой функцией и делаете замену - подстановку каждого вхождения |
Цитата:
Пытаюсь по всякому, но не получается :( |
Demath,
Выложите чисто считанную полную строку вместе с тегами вставленного обрамления [match] и восклицалом отметьте место текущего положения курсора |
Спасибо за подсказки! Кажется, получилось во всех вхождениях тега [math].[/math] корректировать раскладку клавиатуры.
<script type="text/javascript">
function correctInTag(t)
{
for (var z = t.value.split('[math]'), f = 0, j = 1, lj = z.length; j < lj; j++)
{ if (new RegExp('[а-яё]', 'i').exec(z[j].split('[/math]')[0]) != null) {f = 1; break} }
if (!f) return;
var cyr = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя',
klv = 'F<DULT~:PBQRKVYJGHCNEA{WXIOMS}">Zf,dult`;pbqrkvyjghcnea[wxioms]\'.z';
if (document.selection)
{ t.focus();
var rng = document.selection.createRange();
rng.moveEnd('character', -1);
rng.moveEnd('character', 1);
rng.text = klv.charAt(cyr.indexOf(rng.text));
}
else if (t.selectionStart >= 0)
{ var s = t.selectionStart - 1;
t.value = t.value.substr(0, s)
+ klv.charAt(cyr.indexOf(t.value.substr(s, 1)))
+ t.value.substr(s + 1);
t.selectionStart = t.selectionEnd = s + 1;
}
}
</script>
<textarea id="abcd" onkeyup="correctInTag(this)" style="width: 300px; height: 100px">
Наберите что-либо на русском внутри [math].[/math].
И в этом [math].[/math].
</textarea>
|
Demath,
:-E криво работает в опере еще и селект строк добавляет - приходится гасить... и рекурсия медленная - при большой скорости набора - убивает теги обрамлений Всё нун делать несколько иначе |
Цитата:
Цитата:
|
<script type="text/javascript">
function LatRus(TxtTrans1,a){TxtTrans1=='lat'? TxtTrans1='rus':TxtTrans1='lat';
lat0='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~[].'.split('');
lat='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~'.split('');
lat.push('\\[');lat.push('\\]');lat.push('\\.');
rus=('йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю').split('');
function transF(p){ar1=lat;ar2=rus;if(TxtTrans1=='lat'){ar2=lat0;ar1=rus}for(var i=0; i<ar1.length; i++){trans='/'+ar1[i]+'/gm';p=p.replace(eval(trans), ar2[i])}return p;} return transF(a);
}
var is_chrome = false, chrome_version = false;
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
is_chrome = true;
}
function getSelectionStart(o) {
if (o.createTextRange) {
// IE, Opera
var r = document.selection.createRange().duplicate();
r.moveEnd('character', o.value.length);
if (r.text == '') {
return o.value.length;
}
return o.value.lastIndexOf(r.text);
} else { if(is_chrome)return o.selectionStart+1;
// FF
return o.selectionStart;
}
return true;
}
function setSelectionStart(o,n) {
if(!document.all)
{
var end = o.value.length;
o.setSelectionRange(n,n);
o.focus();
}
else
{
var r = o.createTextRange();
r.collapse(true);
r.moveStart("character", n);
r.moveEnd("character", 0);
r.select();
}
return true;
}
function correctInTag (tx) {
var Thistext = tx.value;
var CaretPos = getSelectionStart(tx);
var rega = /\[math\]([\s\S]*?)\[\/math\]/gm;
function replacer (str, p1, offset, s) {
var a = '[math]'; var b = '[/math]';
var St = offset + a.length;
var End = offset + str.length - b.length;
if(CaretPos >= St &&CaretPos<=End){
var Sstr = s.substring(St,End)
if(Sstr.indexOf(a)!=-1) return str;
var S = LatRus('rus',Sstr);/*alert(S)*/;
return a+S+b;
} else return str;
}
var str2 = Thistext.replace(rega,replacer)
tx.value = str2;
setSelectionStart(tx,CaretPos);
}
</script>
<textarea oninput="correctInTag (this)" id="abcd" style="width: 300px; height: 100px">
Наберите что-либо на русском внутри
Наберите что-либо
на русском внутри [math].
[/math].
И в этом [math].
[/math]
</textarea>
Можно вставлять даже копированием -осталось запретить позицию курсора наезда на теги и запрет их удаления или порчи |
Deff, спасибо! Буду разбираться.
Цитата:
Вроде бы, с этим нет проблем. Во всяком случае, у меня не получилось наехать на теги. Или Вы имеете ввиду запретить умышленные наезд, удаление, порчу? Возможно ли ещё учесть случай, когда открывающий и закрывающий теги [math],[/math] на разных строках? А что делать с IE? Он же не вызывает по событию oninput. Но это не очень важно: в случае чего, сделаю костыль для IE из своего варианта и предупрежу пользователей, чтобы сильно не гнали лошадей. |
Цитата:
Цитата:
|
Цитата:
А скрипт случайно не продублировался? Вроде, два скрипта с одинаковым количеством строк. |
Цитата:
|
Цитата:
Нужно добавить для корректировки ещё три символа: ':', '?', '/'. Проверьте, пожалуйста, верно дописал?
lat0 = 'qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL;"ZXCVBNM<>`~[].^&|'.split('');
lat = 'qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL;"ZXCVBNM<>`~'.split('');
lat.push('\\['); lat.push('\\]'); lat.push('\\.');
lat.push('\\^'); lat.push('\\&'); lat.push('\\|');
rus = ('йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю').split('');
rus.push('\:'); rus.push('\\?'); rus.push('\\/');
|
Demath,
Это символы на русской раскладке ? ':', '?', '/'. И чему они соответствуют на латинице ? Я не вижу их на буквенной клаве в русской раскладке |
Цитата:
Символы ':' и '?', когда включена русская раскладка, набираются с Shift+6 и Shift+7 соответственно, а символ '/' с помощью Shift + клавиша правее 'ъ'. В моей клаве такое расположение, но и чуть с другим. |
Demath,
Суть в том - что если вставлять спец символы - будут проблемы при надобности их добавить и в самом деле - экспериментируйте сами |
http://habrahabr.ru/post/149083/
Автор сего творения, интересно, зарегистрирован на форуме? P.S. лучше было бы так (min). P.S.S. devote, :) |
melky,
Цитата:
Ксать тут, на форе Выкладывал и транслитерацию, (Да там devote на habrе всё ниже поправил ... чо тады переживать Гы - статья то сегодняшняя 5 августа 2012 в 21:26 |
Цитата:
UPD : учитывает слова в верхнем регистре. http://jsbin.com/akaxeg/5 |
melky, я спокойно уже отношусь к грехам и своим и чужим - ценности все временныя - то что седни ставишь на пьедестал - завтра -говно и старье... а чо тады упрекать кого то - чо он плохо вяжет лапти?
|
Цитата:
|
| Часовой пояс GMT +3, время: 04:37. |