AlefZet
Админы и бюрократы
deñiştirНасколько я знаю, согласно ныне существующей политике бюрократов в маленькие разделы с несколькими участниками не назначают. По крайней мере видел на мете несколько отказов в назначении бюрократа с мотивировкой "раздел слишком маленький, вам бюрократы не нужны". Так что наверное стоит переноминировать меня в админы. Alessandro 13:00, 2008 s. yanvarniñ 12 (UTC)
- Лучше добавлю "...and SysOp", ведь если бюрократ не прокатывает, то формальных причин отказать в админстве и не будет.--AlefZet 13:51, 2008 s. yanvarniñ 12 (UTC)
Скрипты для транслитерации
deñiştirТеперь, когда раздел открыт, хочу вас попросить о помощи с установкой скриптов для транслитерации. То, что лежит вот тут и чем мы занимались год назад уже устарело или нет? Я имею в виду в техническом, так сказать, плане? Если не устарело, то тогда я эти скрипты немного подредактирую (за прошедший год я в своём ЖаваСкриптовском транслитераторе сделал кое-какие усовершенствования), а если устарело, то не могли бы вы сделать новый на основе последней казахской версии?
И ещё вопрос по таблицам исключений. Использовать там регэкспы всё ещё нереально? Мне там фактически только три регэкспа нужно "начало слова", "конец слова" и "любая буква кроме X"
Alessandro 13:11, 2008 s. yanvarniñ 12 (UTC)
- Не совсем понял, что вы имеете в виду под "технческим планом"? Код функций? Если так, то да, были изменения. Но эта часть влёгкую берётся из текущего казахского конвертера. Главное - логика, т.е. регексы, за вами, за вашим сообществом, поскольку крымскотатарская письменность для меня вещь не автоматическая.
- "Таблицы исключений" - здесь тоже нужна ясность. Алгоритм работы конвертора таков: 1) Если существуют, берутся словари исключений из MediaWiki:Conversiontable/xx создаваемых вживую, 2) затем обрабатываются словари исключений из файла, если он существует, CrhConversion.php (он готовится на основе апробированных таблиц из MediaWiki:Conversiontable/xx). Это тупые соответствия слово - слово как у китайцев. 3) Потом уже обрабатываются регексы на буквосочетания (в т.ч. и одиночные буквы) от сложных правил до простых последовательно. Если я правильно понял, вы имеете в виду сложные правила? Третий пункт может тоже иметь несколько слоев, как сделано в казвики (еще не поставлено на сервер) для арабицы: выделяем слова с передними гласными, исключаем слова с еэгғкқ в составе, прикручиваем хамзу и далее обрабатываем как остальные слова.--AlefZet 13:51, 2008 s. yanvarniñ 12 (UTC)
- 1. Да, я имел в виду код функций. Чтобы мне знать, дорабатывать ли тот скрипт, который год лежит в инкубаторе, или сделать новый на основе последней казахской версии.
- 2. Насчёт исключений. Лучше я на примере объясню. Вот я хочу, чтобы köz на конце слова превращалось в козь. Но только на конце слова. Например açköz > ачкозь, qaraköz > къаракозь. Или чтобы буюк превращалось büyük, но только если вслед за к не идёт ъ. Например буюклик > büyüklik, буюкъмакъ > buyuqmaq. В моём JavaCкрипте это достигается за счёт того, что в списке исключений, который идёт перед собственно правилами транслитерации, можно использовать регэкспы. А можно ли здесь так сделать? Alessandro 14:55, 2008 s. yanvarniñ 12 (UTC)
ОК Буду разбираться. У меня ближайшая неделя напряжённая, так что прямо в ближайшие дни скорее всего не будет времени этим заняться. Alessandro 20:29, 2008 s. yanvarniñ 12 (UTC)
Regexes
deñiştirРегексы надо записывать в формате '/Ё/u' => 'YO',
--AlefZet 18:52, 2008 s. yanvarniñ 12 (UTC)
выделение ссылок
deñiştirЕщё вопрос. Что нужно сделать, чтобы ссылки вида Aqmescitniñ нормально выделялись? Я помню вы когда-то писали про это в узбекском разделе, но сейчас не смог найти это обсуждение. Alessandro 11:17, 2008 s. yanvarniñ 13 (UTC)
- Нужно иметь в обоих файлах сообщений объявление вида:
$linkTrail = '/^([a-zâçğıñöşüа-яё“»]+)(.*)$/sDu';
- Если нужен ASCII апостроф, то
$linkTrail = '/^([a-zâçğıñöşüа-яё“»\']+)(.*)$/sDu';
- --AlefZet 12:04, 2008 s. yanvarniñ 13 (UTC)
- Написал об этом несколько дней назад в обсуждение Siebrand'у на БетаВики, но реакции никакой. Он вообще может это добавить или надо где-то ещё запрос написать? Alessandro 18:59, 2008 s. yanvarniñ 19 (UTC)
- Может, конечно, но у него большая и монотонная загрузка по Бетавики, что не удивительно, что забыл. Может, откроете баг или кинете весточку девелоперу, кто в данный момент активен на SVN в разделе messages?--AlefZet 16:52, 2008 s. yanvarniñ 20 (UTC)
- Написал об этом несколько дней назад в обсуждение Siebrand'у на БетаВики, но реакции никакой. Он вообще может это добавить или надо где-то ещё запрос написать? Alessandro 18:59, 2008 s. yanvarniñ 19 (UTC)
Uannis
deñiştir- i dont want to be judged in Crimean Tatar wikipedia because of some events occurred in another wikipedia. when i was contributing to azerian wikipedia, i saw the need here and i came. my block in tr.wiki is from june 2007. That time i was just a 5 month-old wikipedian. now a long time have passed, and i think i understand the philosophy behind wikipedia better now. i want to help you here to creat
i want to help you here to create a solid foundation for future. i just ask you to think again on your votes. i didnot know azerian at th beginning, but i reached 14.000 contributions thanks.--Uannis 19:53, 2008 s. yanvarniñ 14 (UTC)
Таблицы
deñiştirТут у нас с таблицами какая-то ерунда получается. Не работают классы типа prettytable, шаблон язык, скопированный из русской вики тут правретился в ерунду. Не знаете, что с этим делать? Alessandro 20:43, 2008 s. yanvarniñ 14 (UTC)
- Не все сопутствующие шаблоны загружены
- MediaViki:Common.css, где должны быть классы инфобоксов, пуст.
--AlefZet 16:42, 2008 s. yanvarniñ 15 (UTC)
- Ну, это мы стало быть исправим по получении админства. Но вот новая бяка: шаблон {{MY}} стал криво отображаться (см. например Alupka), хотя до того три дня всё было в порядке, а в самом шаблоне ничего не менялось. Не в курсе, в чём тут может быть проблема? Alessandro 09:15, 2008 s. yanvarniñ 16 (UTC)
- Сдается мне, что из-за конструкции #ifexist. Разработчики ограничивают число включений раньше было 1000, теперь - 500. Например для статьи Atırav в тексте страницы в браузере сообщается (Последнюю строку видимо надо читать как: число #ifexist: 1 сверх 500.):
- Ну, это мы стало быть исправим по получении админства. Но вот новая бяка: шаблон {{MY}} стал криво отображаться (см. например Alupka), хотя до того три дня всё было в порядке, а в самом шаблоне ничего не менялось. Не в курсе, в чём тут может быть проблема? Alessandro 09:15, 2008 s. yanvarniñ 16 (UTC)
Pre-expand include size: 110108/2048000 bytes Post-expand include size: 35122/2048000 bytes Template argument size: 8734/2048000 bytes #ifexist count: 1/500
- --AlefZet 11:14, 2008 s. yanvarniñ 16 (UTC)
- Странно, ведь в русском разделе, откуда этот шаблон взят почти без изменений, всё в порядке (см. например Алупка). Alessandro 11:23, 2008 s. yanvarniñ 16 (UTC)
- И всё-таки это как-то связано с софтом вчера было r29792 сегодня - r29826--AlefZet 12:36, 2008 s. yanvarniñ 16 (UTC)
- И в других шаблонах вылезло: Türkiye, Osmanlı Devleti. Может быть нужно баг открыть и попросить это исправить? Вы не могли бы по-англ. внятно сформулировать суть дела, чтобы там сисадмины поняли? Alessandro 13:38, 2008 s. yanvarniñ 16 (UTC)
- См. ru:Википедия:Форум/Архив/Технические вопросы/Ноябрь 2007#Ограничение #ifexist так что баг будет WONTFIX. Надо что-то делать с самими шаблонами.--AlefZet 15:38, 2008 s. yanvarniñ 16 (UTC)
- В шаблоне {{Memleket}} было только одно #ifexist, я его сейчас заменил на просто #if. Но лучше не стало. Или #ifexist и #if - это одно и тоже? Alessandro 16:20, 2008 s. yanvarniñ 16 (UTC)
- Стало. Только вы смотрели из кеша видимо. #ifexist и #if оказывается совсем не имеют общих веток кода. #ifexist сейчас не работает по всей Wikimedia. См правки Бриона Виббера r29834 и его замечание в bugzilla:12651--AlefZet 18:02, 2008 s. yanvarniñ 16 (UTC)
- Я установил на локальной вики последние версии файлов и загрузил ваши шаблоны. Они до сих пор не работают.--AlefZet 20:06, 2008 s. yanvarniñ 16 (UTC)
- Понадобилось заменить в Şablon:Renk все записи вида
|Andorra = #D1BF91
на|Andorra = <nowik i>#</nowiki>D1BF91
, видимо теперь ParserFunctions считает все # и слово следующее без пробела за магическое слово или переменную (чтобы правильно показывало, пришлось поставить пробел внутри тега nowiki).--AlefZet 20:34, 2008 s. yanvarniñ 16 (UTC) - Шаблон страны не работал по моей криворукости - я категории в {{!}} и {{!!}} криво проставил. Сейчас это исправлено, и он заработал нормально. А вот с {{MY}} дело, похоже, в чём-то другом. Alessandro 20:30, 2008 s. yanvarniñ 16 (UTC)
- Заработало! Это в результате ваших последних изменений в {{Renk}}? Alessandro 21:12, 2008 s. yanvarniñ 16 (UTC)
- Вроде бы да. Но до 22:27, 2008 s. yanvarniñ 16 (+5) тоже с nowiki было, а ваше сообщение в 14:15, 2008 s. yanvarniñ 16 (+5) было, т.е. еще что-то повлияло--AlefZet 21:27, 2008 s. yanvarniñ 16 (UTC)
- Стало. Только вы смотрели из кеша видимо. #ifexist и #if оказывается совсем не имеют общих веток кода. #ifexist сейчас не работает по всей Wikimedia. См правки Бриона Виббера r29834 и его замечание в bugzilla:12651--AlefZet 18:02, 2008 s. yanvarniñ 16 (UTC)
- В шаблоне {{Memleket}} было только одно #ifexist, я его сейчас заменил на просто #if. Но лучше не стало. Или #ifexist и #if - это одно и тоже? Alessandro 16:20, 2008 s. yanvarniñ 16 (UTC)
- См. ru:Википедия:Форум/Архив/Технические вопросы/Ноябрь 2007#Ограничение #ifexist так что баг будет WONTFIX. Надо что-то делать с самими шаблонами.--AlefZet 15:38, 2008 s. yanvarniñ 16 (UTC)
- И в других шаблонах вылезло: Türkiye, Osmanlı Devleti. Может быть нужно баг открыть и попросить это исправить? Вы не могли бы по-англ. внятно сформулировать суть дела, чтобы там сисадмины поняли? Alessandro 13:38, 2008 s. yanvarniñ 16 (UTC)
- И всё-таки это как-то связано с софтом вчера было r29792 сегодня - r29826--AlefZet 12:36, 2008 s. yanvarniñ 16 (UTC)
- Странно, ведь в русском разделе, откуда этот шаблон взят почти без изменений, всё в порядке (см. например Алупка). Alessandro 11:23, 2008 s. yanvarniñ 16 (UTC)
- --AlefZet 11:14, 2008 s. yanvarniñ 16 (UTC)
Земляк
deñiştirДа, я из Атырау. Тоже очень рад встретить тут своего земляка. А как Вас зовут? Вы и сейчас живёте в Атырау? --Refat 08:16, 2008 s. yanvarniñ 15 (UTC)
- Взаимно ;) Да, я живу в Атырау--AlefZet 16:45, 2008 s. yanvarniñ 15 (UTC)
редиректы с кириллицы
deñiştirЧто вы думаете вот по этому поводу? Alessandro 21:19, 2008 s. yanvarniñ 17 (UTC)
Вроде бы добавил что нужно в эти файлы - чищу кэш до посинения, а эффекта нет. Alessandro 14:46, 2008 s. yanvarniñ 20 (UTC)
- А так: http://crh.wikipedia.org/w/index.php?title=MediaViki:Monobook.css&action=purge чистили?--AlefZet 17:13, 2008 s. yanvarniñ 20 (UTC)
- Не пробовал. Сейчас попробовал, тоже не помогло. А у вас всё должным образом выглядит? Таблички стали красивыми, надпись "Qırımtatar vikipediyasınıñ malümatı" появилась сверху? Просто если это только у меня глюки, то не страшно. Alessandro 17:17, 2008 s. yanvarniñ 20 (UTC)
- Нет. Глюки сейчас везде в Викимедии. Если в настройках язык выбран crh, то здесь в Special:Allmessages все сообщения с суффиксом crh, и не показываются измененные сообщения. В TIF Monobook.css и Common.css не загружаются. Если язык выставлен crh-latn, то сообщения без суффикса, как и должно быть. Common.css загружается, а Monobook.css, хотя и загружается, пуст, если не счиитать "/* monobook temasınıñ ayarlarını (nastroykalarını) deñiştirmek içün bu yerini deñiştiriñiz. Bütün saytta tesirli olur. */". Я думаю, попробовать шаманство: скопировать содержание MediaViki:Monobook.css, само сообщение удалить, и вновь создать.
- Не пробовал. Сейчас попробовал, тоже не помогло. А у вас всё должным образом выглядит? Таблички стали красивыми, надпись "Qırımtatar vikipediyasınıñ malümatı" появилась сверху? Просто если это только у меня глюки, то не страшно. Alessandro 17:17, 2008 s. yanvarniñ 20 (UTC)
--AlefZet 19:08, 2008 s. yanvarniñ 20 (UTC) Замеченные ошибки: в MediaViki:Monobook.css инструкция #siteSub встречается дважды. Последние инструкции перед закрывающей скобкой '}' без семиколона ';' (хотя это и допустимо, но нежелательно).--AlefZet 19:15, 2008 s. yanvarniñ 20 (UTC)
- MediaViki:Sitesubtitle/crh-latn и MediaViki:Sitesubtitle/crh-cyrl сейчас пусты и потому не будут демонстрироваться.--AlefZet 19:21, 2008 s. yanvarniñ 20 (UTC)
- MediaViki:Tagline попробуйте скопировать в MediaViki:Tagline/crh-latn--AlefZet 19:26, 2008 s. yanvarniñ 20 (UTC)
- Вроде всё сделал. Единственное, я не понял, где именно в Monobook.css ; не поставлено. Alessandro 19:31, 2008 s. yanvarniñ 20 (UTC)
- Кстати, Common.css у меня тоже вроде загрузился - таблицы выглядят правильно. Alessandro 19:35, 2008 s. yanvarniñ 20 (UTC)
- См. display: none !important без ; Monobook.css грузится пустым - шуточки кеширования. Подождите до 11-12 час дня, когда кеш-робот свои операции проведет.--AlefZet 20:00, 2008 s. yanvarniñ 20 (UTC)
İ и i
deñiştirЕщё одна проблема. Сейчас ссылка ispaniya ведёт на статью Ispaniya, а не İspaniya как должно бы быть. Т.е. буква i капитализируется неправильно. Что с этим делать? Alessandro 17:06, 2008 s. yanvarniñ 21 (UTC)
- Эта проблема давно решена. Функции составляют часть класса конвертора
/*
* It fixes issue with ucfirst for transforming 'i' to 'İ'
*
*/
function ucfirst ( $string ) {
$variant = $this->getPreferredVariant();
if ( $variant == 'crh-latn' && $string[0] == 'i' ) {
$string = 'İ' . substr( $string, 1 );
} else {
$string = parent::ucfirst( $string );
}
return $string;
}
/*
* It fixes issue with lcfirst for transforming 'I' to 'ı'
*
*/
function lcfirst ( $string ) {
$variant = $this->getPreferredVariant();
if ( $variant == 'crh-latn' && $string[0] == 'I' ) {
$string = 'ı' . substr( $string, 1 );
} else {
$string = parent::lcfirst( $string );
}
return $string;
}
Отдельно ставить сейчас ни к чему.--AlefZet 17:17, 2008 s. yanvarniñ 21 (UTC)
Транлитератор в Monobook.js
deñiştirХочу вставить в общий Monobook.js транслитератор, который на лету переделывает sh > ş и т.д. Однако в нём есть один небольшой баг, причин которого я не понимаю. Умляут над буквой o ставится только если апостроф нажать сразу вслед за O. Например если я набираю omur, потом возвращаю курсор назад и нажимаю на апостроф после o и после u, то получается o`mür. Т.е. над u умляут появляется, а над o нет. Может быть вы поймёте, в чём тут дело. Код тут: Qullanıcı:Alessandro/monobook.js Собственно, это ваш же код из казахской вики. Alessandro 20:22, 2008 s. yanvarniñ 21 (UTC)
- Лучше не помещать в общий Monobook.js, а оформить гаджетом как у нас kk:MediaWiki:Gadget-translit.js. Участник будет иметь право выбора.
- Код этого транслитератора делал не я, а kk:User:GaiJin. Насколько я понимаю, каждому элементу в input_array должен соответствовать элемент в output_array. Затем, вот эта часть:
о|о`
имеет кириллическую "о" вместо латинской. Советую скачать BabelMap и проверять в случае сомнения к какому скрипту относится буква.--AlefZet 21:15, 2008 s. yanvarniñ 21 (UTC)- Спасибо. Откровенно говоря, не вижу чем он (транслитератор) может кому-то помешать. А если его сделать по умолчанию выключенным как у вас в каз. вики, то многие просто не будут знать о его существовании. Alessandro 08:48, 2008 s. yanvarniñ 22 (UTC)
- Он самопроизвольно включается в некоторых случаях: когда страница не полностью загружена, на страницах пользовательских скриптов типа Qullanıcı:Alessandro/monobook.js, портит вид в районе тулбара. А относительно "не будут знать о существовании" достаточно объявить в edittools и/или sitenotice--AlefZet 09:39, 2008 s. yanvarniñ 22 (UTC)
- Спасибо. Откровенно говоря, не вижу чем он (транслитератор) может кому-то помешать. А если его сделать по умолчанию выключенным как у вас в каз. вики, то многие просто не будут знать о его существовании. Alessandro 08:48, 2008 s. yanvarniñ 22 (UTC)
Я там начал потихоньку работать. Посмотрите, пожалуйста, не наделал ли я ошибок. Alessandro 22:16, 2008 s. yanvarniñ 22 (UTC)
- Вроде всё правильно. Хотя на локальном сервере на синтаксические ошибки (пропущенные/лишние запятые и т.п.) смогу проверить, только когда закончите с регексами. Еще: приготовьте мне тестовый текст в обоих вариантах.--AlefZet 12:35, 2008 s. yanvarniñ 23 (UTC)
- ОК На всякий случай: я правильно понимаю, что ^ - это начало слова, а $ - конец слова? И будет ли например в вот.такой конструкции т считаться первой буквой слова "такой"? Alessandro 13:15, 2008 s. yanvarniñ 23 (UTC)
- Метасимволы ^ и $ отмечают начало и конец текста, а не слова. Чтобы они соответствовали началу и концу слова, текст надо разбить на слова
- ОК На всякий случай: я правильно понимаю, что ^ - это начало слова, а $ - конец слова? И будет ли например в вот.такой конструкции т считаться первой буквой слова "такой"? Alessandro 13:15, 2008 s. yanvarniñ 23 (UTC)
$matches = preg_split( '/[\b\s\-\.:]+/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
$mstart = 0;
$ret = '';
foreach( $matches as $m ) {
$ret .= substr( $text, $mstart, $m[1] - $mstart );
/* Здесь обрабатываем правила применимые к слову */
$mstart = $m[1] + strlen($m[0]);
}
и обработать регексы с правилами, применимыми к слову, к его началу или концу. Затем обрабатываем обычные регексы не зависящие от места в слове. Точка и прочие другие разделители будут определять граниу слова. Регексы относящиеся к слову целиком соберите в отдельную группу в начале и отметьте начало и конец группы, я вставлю потом в нужное место в коде.--AlefZet 20:00, 2008 s. yanvarniñ 24 (UTC)
- Ой, чего-то это чересчур сложно... Лучше я по аналогии с JavaScript'овской версией сделаю две переменных
define( 'BEGIN', '\s"'\(\-.,:;>\' );
define( 'END', '\s"'.,:;!?\)\-\[<]' );
- Alessandro 20:12, 2008 s. yanvarniñ 24 (UTC)
- Да ничего сложного! Вам надо просто сгруппировать регексы 1) относящиеся к началу слова, 2) относящиеся к концу слова 3) относящиеся ко всему слову 4) независимые от места в слове и всё.
БТВ define задает константы.--AlefZet 20:21, 2008 s. yanvarniñ 24 (UTC)
Часть латиница > кириллица как будто бы сделал, в т.ч. и исключения. В нескольких исключениях хотелось бы использовать регэкспы - засунуть их в основной файл? Alessandro 16:43, 2008 s. yanvarniñ 23 (UTC)
- Они должны исполняться до основных преобразований? Разместите на отдельной страничке, всё равно придётся думать в каком месте кода лучше их исполнять.--AlefZet 18:05, 2008 s. yanvarniñ 23 (UTC)
- Вообще-то тут везде регексы. И ещё: хотелось бы, чтобы комментарии были английские - это поможет и другим языковым версиям.--AlefZet 18:55, 2008 s. yanvarniñ 23 (UTC)
- Так, направление латиница > кириллица готово. Исключения, требующие регэкспов засунул в основной файл - их не так много. Тестовый текст тут. Комментарии попробую перевести, хотя вообще-то человеку, не знакомому с хитростями крымской орфографии, они мало что скажут. Alessandro 12:54, 2008 s. yanvarniñ 24 (UTC)
- Результаты здесь. В словах типа "криминаль" не ставит мягкие знаки. Направление кириллица -> латиница не работает (по-моему, пропущены буквы).--AlefZet 01:16, 2008 s. yanvarniñ 27 (UTC)
- А список исключений вы пока вообще не подключали, я правильно понял? Просто ни одно исключение не обработалось как исключение. Направление кириллица > латиница пока не доделано. Сегодня постараюсь закончить.
- CrhConversion.php пока отключено.--AlefZet 11:41, 2008 s. yanvarniñ 27 (UTC)
- А так пока две проблемы: мягкие знаки не ставятся вообще нигде и не транслитися в Дж/ДЖ заглавная буква C. Сейчас буду разбираться... Alessandro 08:09, 2008 s. yanvarniñ 27 (UTC)
- ДЖ теперь транслитится. Непонятки с мягкими.--AlefZet 11:41, 2008 s. yanvarniñ 27 (UTC)
- Кое-что я подправил, а кое-чего понять не могу. Может быть взглянете? Я вот тут выложил куски кода, которе как будто бы не работают. И ещё вопрос: проблема с римскими цифрами решена или нужно думать, что с ними делать при транслитерации лат > кир? Alessandro 08:54, 2008 s. yanvarniñ 27 (UTC)
- А какая частm сейчас не работает? С римскими цифрами потом разберёмся, в принципе код обхода есть, потом встроим после отладки основного. А зачем вам римские цифры? Лучше заимствовать турецкую систему обозначения веков. В казвики после обсуждения мы пришли к выводу, что на всякого мудреца довольно простоты и отказались вовсе от римских цифр. В тех редких случаях, когда они действительно нужны, их можно экранировать так: -{XIV}- --AlefZet 11:41, 2008 s. yanvarniñ 27 (UTC)
- Как будто бы всё работает! :) Я закончил часть кир > лат и немножко модифицировал тестовый текст. Римские цифры для веков и номеров правителей. Не принято у крымских татар писать по-турецки (число с точкой). Во всех книжках только римскими цифрами пишут. На худой конец можно просто руками прописать все числа от I до, скажем, L - этого хватит и для веков и для правителей.
- Кстати, ещё такой вопрос: когда это всё заработает можно будет защищать от транслитерации не только отдельные слова и фразы, но и большие куски текста с таблицами, тэгами и т.д? Т.е. если я в начале текста ставлю -{, а в конце }- то это его защитит от транслитерации при любом содеражнии? Alessandro 12:39, 2008 s. yanvarniñ 27 (UTC)
- Пока не всё хорошо: Истикълял маршы криминал кодекс Боцвана. Мы обозначаем века как [[19 ғ.]] придя к мнению, что обозначение римскими цифрами отмирает, да и создаёт ненужные сложности. Защита от транслитерации практически везде работает. Некоторые сложности могут представлять шаблоны и вики-таблицы.
- --AlefZet 16:18, 2008 s. yanvarniñ 27 (UTC)
- Насколько я могу видеть по последнемй результату, всё что прописано в основном файле транслитится нормально и ничего из того, что прописано в списке исключений (истикъляль, Ботсвана и т.д.) не транслитится нормально. Я поэтому и спросил повыше, подключали ли вы уже список исключений.
- У сербов вроде римские цифры обрабатываются корректно (см, например тут) Так что, наверное, можно просто взять кусочек сербского кода. Alessandro 16:28, 2008 s. yanvarniñ 27 (UTC)
- Подключил файл исключений - всё нормально вроде. Римские цифры: часть парсится нормально, часть - нет. У сербов тоже не очень нормально.--AlefZet 18:56, 2008 s. yanvarniñ 27 (UTC)
- Нет, какой-то глюк вылез. :( Qарай тилi я да kараим тилi - tюркий тиллерниñ Кaray tilи ya da кaraim tilи - тyurkiy tillerninъ Alessandro 19:02, 2008 s. yanvarniñ 27 (UTC)
- Не разобрались, в чём дело?--AlefZet 19:56, 2008 s. yanvarniñ 28 (UTC)
- Хм... А тут в коде ли дело? Просто до того, как вы подключили файл с исключениями всё работало, а после того как подключили, появился этот глюк, хотя я вроде бы в коде ничего не менял... Alessandro 20:11, 2008 s. yanvarniñ 28 (UTC)
- Именно в коде регексов. При отключенном файле исключений всё равно Qарай тилi я да kараим тилi - tюркий тиллерниñ Кaray tilи ya da кaraim tilи - тyurkiy tillerninъ. Мне кажется в выражении '/Q(['.CRH_L_LC.'])/u' => 'Къ$1', не учитывается, что часть букв уже в кириллице, поэтому условие не выполняется и буква остаётся латинской.--AlefZet 23:44, 2008 s. yanvarniñ 28 (UTC)
- Не, дело не в этом. Вот здесь, во-первых, откуда тогда взялись такие штуки как тилi и балкъаr, если буквы i и r обрабатываются безо всяких регексов. Во-вторых, почему Qарай и qумуq, но через несколько слов уже къарай и Къадимий. Alessandro 08:53, 2008 s. yanvarniñ 29 (UTC)
- Регексы тут везде, только разной сложности. Кстати, я вас просил сгруппировать их как 1) относящиеся к началу слова, 2) относящиеся к концу слова 3) относящиеся ко всему слову 4) независимые от места в слове. Поверьте, тогда легче разбираться, чем когда они разбросаны по непонятному принципу. Я из-за этого никак не могу запустить примочку
$matches = preg_split( '/[\b\s\-\.:]+/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
. С "такими штуками" понятно, что происходят они из-за стыка букв с апострофами и во внутренних ссылках, т.е. с квадратными скобками и палочками. Причём независимо от направления: туда или обратно.--AlefZet 16:35, 2008 s. yanvarniñ 31 (UTC)- Ну, в любом случае скрипт предусматривает, что буква r превращается в р абсолютно всегда, независимо от позиции в слове. Я просто не понимаю, как при наличии в коде вот этого '/r/u' => 'р', r может в р не превратиться. Как палочки и скобки на это могут повлиять... Ещё, кстати, похоже что везде криво транслитится первая буква абзаца.
- Всё это имеет отношение к границе слова. Сейчас эта граница определяется неправильно.--AlefZet 18:45, 2008 s. yanvarniñ 31 (UTC)
- И ещё мне непонято, почему раньше работало, а теперь нет. Может это можно понять, сравнив рабочую версию с нерабочей?
- Нет. Там были другие ошибки.--AlefZet 18:45, 2008 s. yanvarniñ 31 (UTC)
- Что касается группировки. Во-первых, я не очень понял, что вы имеете в виду. Вот например '/Г[ъЪ]/u' => 'Ğ', относится к началу слова, а '/гъ/u' => 'ğ', ко всему и они должны быть в разных местах? Во-вторых, сейчас строчки в коде идут в том порядке, в котором должны выполняться, некоторые из них поменять местами просто нельзя. Alessandro 17:58, 2008 s. yanvarniñ 31 (UTC)
- С точки зрения регекса указанное выражение относится вообще к тексту в любой позиции и потому должно исполняться в конце обработки.
- Всё что сейчас нужно от вас, это - 1) относящиеся к началу слова, 2) относящиеся к концу слова 3) относящиеся ко всему слову 4) независимые от места в слове --AlefZet 18:45, 2008 s. yanvarniñ 31 (UTC)
- Не ругайтесь, но я честно не понимаю, что значит "относящиеся к началу слова". :( Можете пример привести? Alessandro 18:50, 2008 s. yanvarniñ 31 (UTC)
- Ну, в любом случае скрипт предусматривает, что буква r превращается в р абсолютно всегда, независимо от позиции в слове. Я просто не понимаю, как при наличии в коде вот этого '/r/u' => 'р', r может в р не превратиться. Как палочки и скобки на это могут повлиять... Ещё, кстати, похоже что везде криво транслитится первая буква абзаца.
- Регексы тут везде, только разной сложности. Кстати, я вас просил сгруппировать их как 1) относящиеся к началу слова, 2) относящиеся к концу слова 3) относящиеся ко всему слову 4) независимые от места в слове. Поверьте, тогда легче разбираться, чем когда они разбросаны по непонятному принципу. Я из-за этого никак не могу запустить примочку
- Не, дело не в этом. Вот здесь, во-первых, откуда тогда взялись такие штуки как тилi и балкъаr, если буквы i и r обрабатываются безо всяких регексов. Во-вторых, почему Qарай и qумуq, но через несколько слов уже къарай и Къадимий. Alessandro 08:53, 2008 s. yanvarniñ 29 (UTC)
- Именно в коде регексов. При отключенном файле исключений всё равно Qарай тилi я да kараим тилi - tюркий тиллерниñ Кaray tilи ya da кaraim tilи - тyurkiy tillerninъ. Мне кажется в выражении '/Q(['.CRH_L_LC.'])/u' => 'Къ$1', не учитывается, что часть букв уже в кириллице, поэтому условие не выполняется и буква остаётся латинской.--AlefZet 23:44, 2008 s. yanvarniñ 28 (UTC)
- Хм... А тут в коде ли дело? Просто до того, как вы подключили файл с исключениями всё работало, а после того как подключили, появился этот глюк, хотя я вроде бы в коде ничего не менял... Alessandro 20:11, 2008 s. yanvarniñ 28 (UTC)
- Не разобрались, в чём дело?--AlefZet 19:56, 2008 s. yanvarniñ 28 (UTC)
- Нет, какой-то глюк вылез. :( Qарай тилi я да kараим тилi - tюркий тиллерниñ Кaray tilи ya da кaraim tilи - тyurkiy tillerninъ Alessandro 19:02, 2008 s. yanvarniñ 27 (UTC)
- Подключил файл исключений - всё нормально вроде. Римские цифры: часть парсится нормально, часть - нет. У сербов тоже не очень нормально.--AlefZet 18:56, 2008 s. yanvarniñ 27 (UTC)
- А какая частm сейчас не работает? С римскими цифрами потом разберёмся, в принципе код обхода есть, потом встроим после отладки основного. А зачем вам римские цифры? Лучше заимствовать турецкую систему обозначения веков. В казвики после обсуждения мы пришли к выводу, что на всякого мудреца довольно простоты и отказались вовсе от римских цифр. В тех редких случаях, когда они действительно нужны, их можно экранировать так: -{XIV}- --AlefZet 11:41, 2008 s. yanvarniñ 27 (UTC)
- А список исключений вы пока вообще не подключали, я правильно понял? Просто ни одно исключение не обработалось как исключение. Направление кириллица > латиница пока не доделано. Сегодня постараюсь закончить.
- Результаты здесь. В словах типа "криминаль" не ставит мягкие знаки. Направление кириллица -> латиница не работает (по-моему, пропущены буквы).--AlefZet 01:16, 2008 s. yanvarniñ 27 (UTC)
'/(['.WORD_BEGINS.']+)rol([^ü])/u' => '$1роль$2',
нормально выглядит так:"/^rol([^ü])/u" => "роль$1",
и "относится к началу слова"'/ts(['.WORD_ENDS.']+)/u' => 'ц$1',
нормально выглядит так:"/ts$/u" => "ц",
и "относится к концу слова"'/(['.WORD_BEGINS.']+)Deral(['.WORD_ENDS.']+)/u' => '$1Деръал$2',
нормально выглядит так:"/^Deral$/u" => "Деръал",
и "относится ко всему слову"'/tsиал/u' => 'циал',
лучше написать так:"/tsиал/u" => "циал",
и "независимо от места в слове"[^abcd]
здесь ^ означает отрицание- Двойные кавычки (") должны стоять слева, потому что в одинарных работает только один escape символ \s.
--AlefZet 19:31, 2008 s. yanvarniñ 31 (UTC)
- Спасибо! Вот теперь яснее. Значит, нужно в коде сгруппировать всё в четыре группы? Я просто не уверен, что это получится, но сейчас посмотрю. Тогда ещё вопрос: вот это
'/(['.CRH_L_F.'])l(['.CRH_L_CONS_LC.WORD_ENDS.'])/u' => '$1ль$2',
относится к концу слова или нет?- У вас же в конце только WORD_ENDS, значит, к концу слова.
'/(['.CRH_L_F.'])l(['.CRH_L_CONS_LC.WORD_ENDS.'])/u' => '$1ль$2',
-->"/([".CRH_L_F."])l([".CRH_L_CONS_LC."])$/u' => '$1ль$2',
--AlefZet 20:19, 2008 s. yanvarniñ 31 (UTC)
- У вас же в конце только WORD_ENDS, значит, к концу слова.
- И насчёт двойных кавычек тоже не очень понял, где их ставить. Alessandro 19:54, 2008 s. yanvarniñ 31 (UTC)
- Посмотрите пример на строку выше, там всё видно.--AlefZet 20:19, 2008 s. yanvarniñ 31 (UTC)
- Вот, вроде сгруппировал. Код не менял, только сгруппировал. Пока только в части лат > кир. Давайте сначала её опробуем, а потом уж другую часть переделывать будем. NB - Сначала идут выражения, относящиеся ко всему слову, потом - к концу и потом - к началу. Менять местами эти блоки нельзя. Alessandro 21:24, 2008 s. yanvarniñ 31 (UTC)
- А что его пробовать? Те же ... только вид сбоку. Вот по эту точку было нормально, я просил только сгруппировать регексы. Эти WORD_BEGINS и WORD_ENDS совершенно не нужны, никто не допустит их применения на живом сервере, тормозят они страшно. Оставьте ^ и $, только применяйте их правильно доллар должен стоять последним до скобки, типа "/rrrr$/u"--AlefZet 00:25, 2008 s. fevralniñ 1 (UTC)
- Ну вот, вроде почти сделал. Ещё два вопроса: как раскрыть вот такую штуку ([aAuU'.CRH_L_CONS.WORD_ENDS.']), и можно ли перенести слова исключения в файл с исключениями в неизмененном виде? Просто они по-любому должны обрабатываться до, и если их нельзя все поставить в начале основного скрипта, значит нужно переносить в файл с исключениями. Alessandro 09:30, 2008 s. fevralniñ 1 (UTC)
- ([aAuU'.CRH_L_CONS.WORD_ENDS.']) -> "/.....([aAuU".CRH_L_CONS."])$/u"
- Гм... Но ведь это L([aAuU'.WORD_ENDS.']) означает, что после буквы L идёт ИЛИ одна из букв a, A, u, U ИЛИ конец слова. А вот это L([aAuU])$ означает, что после буквы L идёт одна из букв a, A, u, U, а ПОТОМ конец слова. Я ошибаюсь? Alessandro 19:56, 2008 s. fevralniñ 1 (UTC)
- Вот как: "ИЛИ конец"...
тогда метасимвол $ помещается в символьный класс "/.....([aAuU".CRH_L_CONS."$])/u"--AlefZet 20:13, 2008 s. fevralniñ 1 (UTC)- Понял, сейчас сделаю. Alessandro 20:17, 2008 s. fevralniñ 1 (UTC)
- Стоп... Если я вот это (['.WORD_BEGINS.'АЫОУЕИЁЮ]) заменю на ([^АЫОУЕИЁЮ]), то крышка будет означать НЕ. Что тут делать? Alessandro 20:21, 2008 s. fevralniñ 1 (UTC)
- Вот как: "ИЛИ конец"...
- Гм... Но ведь это L([aAuU'.WORD_ENDS.']) означает, что после буквы L идёт ИЛИ одна из букв a, A, u, U ИЛИ конец слова. А вот это L([aAuU])$ означает, что после буквы L идёт одна из букв a, A, u, U, а ПОТОМ конец слова. Я ошибаюсь? Alessandro 19:56, 2008 s. fevralniñ 1 (UTC)
- ([aAuU'.CRH_L_CONS.WORD_ENDS.']) -> "/.....([aAuU".CRH_L_CONS."])$/u"
- Ну вот, вроде почти сделал. Ещё два вопроса: как раскрыть вот такую штуку ([aAuU'.CRH_L_CONS.WORD_ENDS.']), и можно ли перенести слова исключения в файл с исключениями в неизмененном виде? Просто они по-любому должны обрабатываться до, и если их нельзя все поставить в начале основного скрипта, значит нужно переносить в файл с исключениями. Alessandro 09:30, 2008 s. fevralniñ 1 (UTC)
- А что его пробовать? Те же ... только вид сбоку. Вот по эту точку было нормально, я просил только сгруппировать регексы. Эти WORD_BEGINS и WORD_ENDS совершенно не нужны, никто не допустит их применения на живом сервере, тормозят они страшно. Оставьте ^ и $, только применяйте их правильно доллар должен стоять последним до скобки, типа "/rrrr$/u"--AlefZet 00:25, 2008 s. fevralniñ 1 (UTC)
- Спасибо! Вот теперь яснее. Значит, нужно в коде сгруппировать всё в четыре группы? Я просто не уверен, что это получится, но сейчас посмотрю. Тогда ещё вопрос: вот это
Так, я ввёл вас в заблуждение - метасимвол $ внутри символьного класса не имеет значения. Необходимо использовать альтернативы типа (a|A|u|U|$) или
условную маску типа (?(condition)yes-pattern|no-pattern) :
- ([aAuU'.CRH_L_CONS.WORD_ENDS.']) приводим к виду: (?([aAuU'.CRH_L_CONS'])|$)
- L([aAuU'.WORD_ENDS.']) приводим к виду: L(?([aAuU])|$) или же L(a|A|u|U|$) (при кажущейся простоте второго, первое работает намного быстрее)
- (['.WORD_BEGINS.'АЫОУЕИЁЮ]) приводим к виду: (?(^)|[АЫОУЕИЁЮ])
- Как видно из справочника Синтаксис регулярных выражений такая конструкция имеет только две альтернативы по условию.--AlefZet 00:18, 2008 s. fevralniñ 2 (UTC)
- Утите, что L(?([aAuU])<!--здесь может быть паттерн-->|$) --AlefZet 00:23, 2008 s. fevralniñ 2 (UTC)
Как понять "в неизмененном виде"? Странно, что Вы спрашиваете, формат известен же вам: "гунях" => "günâh", --AlefZet 19:29, 2008 s. fevralniñ 1 (UTC)
- Я имел в виду можно ли с регексами перенести. Например '/джонк([^ъ])/u' => 'cönk$1', можно прямо вот так и переносить в файл с исключениями? Alessandro 19:50, 2008 s. fevralniñ 1 (UTC)
- Нет. Исключения обрабатываются старым кодом не поддерживающим регулярных выражений--AlefZet 19:54, 2008 s. fevralniñ 1 (UTC)
- Ну, вот это вызывает трудности. Исключения по-хорошему нужно бы обрабатывать в самом начале, а тут приходится некоторые из них, которые, например, не зависят от места в слове, засовывать в середину кода. Alessandro 20:17, 2008 s. fevralniñ 1 (UTC)
Так, вроде готово. Alessandro 10:57, 2008 s. fevralniñ 2 (UTC)
Не было пока времени испытать последнюю версию? Alessandro 17:22, 2008 s. fevralniñ 5 (UTC)
Hello!
deñiştirHello AlefZet! Could you please help me translate a very short stub version of 1 or 2 sentences of this article for the Qırımtatarca wikipedia? Thank you very much for any help you could provide. I hope to hear from you ;) Thanks a million!!! ;) Yours, Carolina Khansk 03:44, 2008 s. yanvarniñ 27 (UTC)
Меня там смутили вот эти строки:
// Possessives
$firstPerson = array( "m", "ñ" ); // 1st singular, 2nd unformal
$secondPerson = array( "z", "r" ); // 1st plural, 2nd formal
$thirdPerson = array( "ı", "i" ); // 3rd
точнее даже вторая строка. Это последние буквы существительных в притяжательных формах? Тогда и там, и там нужно z. Например evim (мой дом), eviñ (твой дом), evimiz (наш дом), eviñiz (ваш дом), evi (его, её, их дом) Alessandro 20:27, 2008 s. yanvarniñ 27 (UTC)
- поправил--AlefZet 21:36, 2008 s. yanvarniñ 27 (UTC)
каз. ә = крым. e
deñiştirЭто я по поводу написания по-крымскотатарски казахских имён. Мне кажется ә лучше передавать через e. Буква а всегда (и без крышки, и с крышкой) обозначает звук [a], крышка над â - это просто показатель мягкости предыдущего согласного. Да и в соответствующих крымскотатарских словах идёт именно е (Kerim, elifbe и т.д.) Alessandro 18:05, 2008 s. yanvarniñ 31 (UTC)
- Хорошо, приму к сведению. А как быть с У неслоговым? Передавать через U?--AlefZet 18:49, 2008 s. yanvarniñ 31 (UTC)
- На мой взгляд, лучше по-разному. v, uv или ıv в зависимости от того, что оно обозначает. Т.е., к примеру тау - tav, су - suv. Или "неслоговое" - это имеются в виду только те случаи, когда y = [w]? Тогда лучше v. В крымскотатарском языке и [v], и [w] буквой v обозначается (напр. birev [birew], suvuq [suwuq]). Alessandro 19:00, 2008 s. yanvarniñ 31 (UTC)
- Да, y = [w]. Значит, в этом случае - v, а Сарысу - Sarısuv? А [v] и [w] являются фонемами или только аллофонами?--AlefZet 19:36, 2008 s. yanvarniñ 31 (UTC)
- Да, так. Насчёт фонемами или аллофонами, я этой терминологией не очень владею, но вроде как аллофонами одной фонемы. Там и произношение, вообще говоря, часто вариативное. Вроде бы в "мягких" словах должно быть [v], но вот birev все почему-то произносят как [birew] или [brew]. А в речи некоторых [w] либо выпадает, либо превращается в [v]. Это ещё от диалекта зависит. Alessandro 20:19, 2008 s. yanvarniñ 31 (UTC)
- Да, y = [w]. Значит, в этом случае - v, а Сарысу - Sarısuv? А [v] и [w] являются фонемами или только аллофонами?--AlefZet 19:36, 2008 s. yanvarniñ 31 (UTC)
- На мой взгляд, лучше по-разному. v, uv или ıv в зависимости от того, что оно обозначает. Т.е., к примеру тау - tav, су - suv. Или "неслоговое" - это имеются в виду только те случаи, когда y = [w]? Тогда лучше v. В крымскотатарском языке и [v], и [w] буквой v обозначается (напр. birev [birew], suvuq [suwuq]). Alessandro 19:00, 2008 s. yanvarniñ 31 (UTC)