shoorick: (Рыжий)
Граждане выдвигают инициативы:

Запретить принимать гастробайтеров

Кого-кого запретить? Гастробайтеров? Кто же это? Наверняка они связаны с гастрономом и с байтами.

http://shoorick.ru/2016/09/04/gastro-byte/
shoorick: (Рыжий)
Как и ожидалось, Open Conference Systems, якобы не имеющая русской локализации, при должном применении напильника вполне способна использовать великий и могучий. В каталоге lib/pkp даже можно найти русские локализационные XML-файлы. Вообще весь этот каталог lib/pkp — общий и для OCS, и для OJS, что видно по гитхабу. Правда, в свежей версии Open Journal Systems переводов всё-таки побольше. Похоже, OCS, как не особо активно развиваемый продукт, содержит в себе копию lib/php трёхлетней давности, во всяком случае файлы lib/php/locale/ru_RU/*.xml — как раз 2012 года. Надо провести эксперимент — подсунуть в древнюю OCS 2.3 переводы из свежей OJS 2.4.7-1 — скорее всего, хуже не будет. Я пока заметил только один недостаток, мешающий тупо скопировать локализационные файлы: “User Home” переведено как «Мои журналы» — как-то неправильно показывать такое на сайте конференции.

Кстати, коллеги, кто-нибудь пробовал использовать Open Conference Systems для создания сайтов конференций? WordPress и mojowka для этого плохо подходят (хотя можно и с ними — я так делал) — хочется всё-таки использовать специализированное решение, избежав при этом танцев по граблям.

http://shoorick.ru/2015/12/09/ocs-translation/

א

Aug. 6th, 2015 05:43 am
shoorick: (Рыжий)
Сушки

Мне кажется, слово «кроха» написано не через русскую букву Х, а через еврейский алеф.

http://shoorick.ru/2015/08/06/aleph/
shoorick: (Default)
термин «вокзал» произошел от сочетания «вокальный зал»

сообщает нам некто Марина Семина на сайте Chelyabinsk.ru

Да ну? Вокальный зал? А унитаз — это универсальный тазик?
http://shoorick.ru/2014/11/21/vauxhall/
shoorick: (Рыжий)
Не понимаю, зачем некоторые люди в разговоре с маленькими детьми употребляют какие-то дурацкие недослова. «Ляля» вместо «ребёнок», «бибика» вместо «машина», «ава» вместо «собака». Зачем?

Мы, например, сыну подобных слов не говорим — сразу к нормальным приучаем. Поэтому сын не говорит «ава» — он говорит «хапáка» (точнее, [hʌ'pa:kʌ]). А «аф!» — это ответ на конкретный вопрос — «Как лает собака?»

Понятно, что ребёнок сразу не может произносить сложные слова, и слова будут меняться (кстати, заметно, что длина произносимых слов растёт и набор используемых звуков становится более богатым). Всё равно это не повод использовать сначала одно слово, а потом заменять его другим.

P. S. Сын уже знает о существовании синонимов: юлу он называет двумя словами — может и волчком назвать. Специально не учили — само получилось.
shoorick: (Рыжий)
Ув. тов. дикторы центральных телеканалов!

Ударение в некоторых татаро-башкирских топонимах второго склонения, где оно в именительном падеже стои́т на последнем слоге (Чебарку́ль, Кисега́ч, Тургоя́к, Караба́ш, Аргая́ш), при употреблении этих топонимов в косвенных падежах, когда добавляются гласные, должно смещаться ещё правее, на свежедобаввленный слог: под Чебаркулём, с Кисегача́, в Карабаше́, на Тургояке́, из Аргаяша́. Я не смотрел, что пишут в словарях, но здесь, на Южном Урале, говорят именно так. Однако — сюрприз! — не везде: в других словах ударение не смещается: из Сыроста́на по Тагана́ю мимо Миа́сса и Кышты́ма до Уфале́я, от Зили́ма, по Юрюза́ни до Малоя́за, по А́ю до Сикия́з-Тама́ка, возле Мелеу́за, Салава́та, Ишимба́я и Стерлитама́ка.

Так что уточняйте, пожалуйста, произношение у местных жителей прежде чем на всю страну неправильно склонять названия озёр, рек и городов Южного Урала.
shoorick: (Default)
Погуглив, нашёл работоспособный модуль, позволяющий прикрутить к седьмому друпалу поиск Sphinx — это заметно лучше встроенного убожества. Модуль написан русским человеком, но русского перевода не имеет. Пришлось слепить самому. Результат — https://gist.github.com/2318590
shoorick: (Default)
Перловый модуль Lingua::Translit умеет транслитерировать нелатинский текст множеством способов. Для русской кириллицы таких способов — пять четыре:
#!/usr/bin/perl

use Lingua::Translit;

my $sample = 'Эй, жлоб! Где туз? Прячь юных съёмщиц в шкаф.';
my $tr;

for ( 'ALA-LC RUS', 'ISO 9', 'DIN 1460 RUS', 'GOST 7.79 RUS', 'GOST 7.79 RUS OLD' ) {
    $tr = new Lingua::Translit( $_ );
    printf "%17s %s\n", $_, $tr->translit( $sample );
}

Выводит:
       ALA-LC RUS  Ėĭ, zhlob! Gde tuz? Priach′ iunykh s″ëmshchits v shkaf.
            ISO 9  Èj, žlob! Gde tuz? Prâčʹ ûnyh sʺëmŝic v škaf.
     DIN 1460 RUS  Ėj, žlob! Gde tuz? Prjač' junych s"ëmščic v škaf.
    GOST 7.79 RUS  E`j, zhlob! Gde tuz? Pryach` yuny'x s``yomshhicz v shkaf.
GOST 7.79 RUS OLD  E`j, zhlob! Gde tuz? Pryach` yuny'x s``yomshhicz v shkaf.
shoorick: (Default)
Увидел заголовок: Firefox 6.0 с защитой от Яндекса

От кого защита? От Яндекса? Он нападает? :-)

Вообще больно странно видеть, как на сайте конторы, которая должна хорошо разбираться в русском языке, пишут столь коряво.

Защита от врага. Шампунь от перхоти. Страховка от угона. Болезни — от немытых рук. От такá фигня.
shoorick: (Рыжий)
  1. Свежая новость: оказалось, что трёхпалая чайка — не моёвка, а мóевка.
  2. Mojowka теперь умеет показывать страницы посетителю на нужном ему языке. Язык может быть указан явно самим посетителем либо (если не указан) может выбираться автоматически, исходя из переданного заголовка Accept-Language. Пока доступны два языка — английский и русский.

    Сделано с использованием Mojolicious::Plugin::Textdomain, о котором я писал в декабре. К сожалению, Анатолий Лапицкий ([livejournal.com profile] nuclon) до сих пор не выложил свой модуль на CPAN.
  3. Увидев в моёвке экземпляр jQuery плюс мою яваскриптовую писанину, GitHub почему-то решил, что проект в целом яваскриптовый, а не перловый. Как переучить его обратно — пока не знаю.
shoorick: (Default)
Нямка для самых маленьких.
С самого детства — супчик, борщик и кашка.

Нямка хайнц

В той же самой рекламненькой книжечке — тыковка, макарошки, вермишелька-звёздочки, индеечка, конинка и картошечка с лососинкой.
shoorick: (Default)
Решил, что функции подбора предлогов не место в Lingua::RU::Inflect и вынес её в отдельный модуль Lingua::RU::Preposition. В исходном модуле пока что объявил её DEPRECATED, потом, через пару версий, выкину совсем. Заодно будет повод обновить Lingua::RU::Inflect, разработка которого замерла в середине марта прошлого года.

Оба модуля, помимо CPAN, размещены на гитхабе: https://github.com/shoorick/lingua-ru-inflect и https://github.com/shoorick/lingua-ru-preposition — судя по опыту написания mojowka, social coding — полезная штука, ускоряющая развитие.
shoorick: (Default)
«Уважаемый(ая) Александр Игоревич» — обращается ко мне сайт местного провайдера, чьим клиентом я являюсь. Научить сайт определять пол клиента по его отчеству программисты поленились.

Надо бы Lingua::RU::Inflect поковырять, доделать версию 0.03 и выложить на CPAN.
shoorick: (Default)
[livejournal.com profile] paratype: PT Serif

PT Serif

ПараТайп, как и планировал, выпустил к концу 2010 года свободную текстовую антикву с кириллицей.
ПТ Сериф — это универсальная антиквенная гарнитура, разработанная специально для совместного применения с гротеском ПТ Санс, выпущенным ранее. Шрифт состоит из шести начертаний, согласованных с ПТ Санс по метрикам, пропорциям, насыщенности и рисунку. Нормальное и жирное начертания вместе с соответствующими курсивами образуют стандартный комплект для текстового набора. Кроме того, в гарнитуру входят два расширенных начертания — нормальное и курсивное — для набора текстов в мелких кеглях. Рисунок шрифта отличается крупным очком строчных, умеренным контрастом штрихов, мощными клиновидными, чуть выпуклыми засечками и треугольными концевыми элементами. Это придает шрифту современный характер и улучшенную удобочитаемость, что, помимо традиционного использования для деловой документации и печатных изданий различного профиля, делает его применимым также для рекламы и акциденции.

Каждое начертание, помимо стандартного комплекта кириллических и латинских знаков, включает знаки титульных языков Российской Федерации и большинства языков соседних республик, базирующихся на кириллице и латинице.

Гарнитура создана при финансовой поддержке Федерального агентства по печати и массовым коммуникациям Российской Федерации.
Ну и картинка, аналогичная прошлогодней:

PT Serif
shoorick: (Default)
Пробую прикручивать к редмайну разные плагины. Русский перевод — не везде. Причём в подобной ситуации выводится не текст на языке по умолчанию (например, на английском), а сообщение, что перевод не найден — выглядит ужасно.

Решил допилить: зашёл на github, поглядел хелп, попробовал форкнуть проект — получилось. Добавил перевод (два YAML-файла со списком пар кодовое_название: Перевод на русский), закоммитил, вытолкнул обратно на гитхаб, отправил автору pull request. Посмотрим, что получится. Такой вот social coding.

Но YAML редактировать — фигня: это один из самых удобных языков разметки, да и программизма тут никакого. А вот что делать, коль не найду нужного плагина? Придётся ж тогда на руби писать! Хотя, говорят, на него перл сильно повлиял — может, осилю...
shoorick: (Рыжий)
Года три назад я узнал о вводе разных букв с помощью клавиши Compose, потом нашёл, как сделать свой ~/.XCompose — и выложил его для народных нужд. Точнее, выложен не сам ~/.XCompose, а другой файл, который добавляется к найденному где-то чужому ~/.XCompose — чтобы не путаться в изменениях.

Он до сих пор лежит всё там же, в него недавно добавлены буквы, о которых не сразу вспомнил. Теперь с ним можно писать тексты на славянских языках с буквами ЄєІіЇїЎўѲѳѴѵҌѣ и на басурманских тюркских (как минимум, на татарском, башкирском и казахском) с буквами ҒғӘәҖҗҘҙҚқҠҡҢңӨөҪҫҮүҰұҺһ. Кстати, буквы Ѳѳ (как в словах Ѳеодоръ и орѳографія) и Өө (как в слове Өфө) — разные, хоть и выглядят в большинстве шрифтов одинаково. И вводятся тоже по-разному.
shoorick: (Default)
Что-то я сомневаюсь в правильности употребления мной некоторых предлогов. Может быть, сказывается владение уральским диалектом русского — для него характерна заметная редукция гласных: мне хочется выкинуть гласные оттуда, где они, вроде бы, должны быть.

Можно попробовать собрать статистику — написать робота, который будет ходить по сайтам и анализировать тексты (можно подсунуть ему какую-нибудь не слишком свежую техническую литературу, а из художественной — лишь прозу, да и ту — с опаской) и сообщать, с какими словами употребляются интересующие меня предлоги.
shoorick: (Default)
Lingua::RU::Inflect 0.02:
  • Документация на cpan.org показывается в правильной кодировке. Правда, всё равно pod2html ругается, что не знает слова =encoding, а в man-страницах кириллица пропадает вовсе.
  • Добавлена документация на русском языке.
  • Добавлена функция choose_prepositions_by_next_word для выбора предлога с беглой гласной по следующему за ним словом, а также куча коротких имён для вызова этой функции с разными предлогами: izo, ob, so и т. п.
  • Добавлены новые тесты. Выявленные при добавлении баги пофиксены.
shoorick: (Default)
Вчера перенёс свеженаписанные функции выбора предлога в модуль, добавил к ним пару не экспортируемых по умолчанию синонимов — ob и so, сделал тесты, подправил модуль, чтобы проходил новые тесты — да призадумался: а что, если изменяющихся предлогов больше? Не писать же свою функцию на каждый, надо бы оптимизировать процесс. Сегодня, по пути на UWDC попробовал вспомнить, что же есть в русском языке: насчитал кучу групп: в/во, к/ко, из/изо, над/надо, о/об/обо, перед/передо/пред/предо, под/подо, с/со — и вполне возможно, что это ещё не всё. Надо будет Дитмара нашего Эльяшевича почитать, проверить свои познания в области русского языка. Посему релиз версии 0.02 откладывается на время чтения Розенталя и придумывания универсальной функции выбора предлога.

P. S. Технические доклады на UWDC — интересны, докладчики молодцы. То, что я слышал из других областей (про CRM и «Как стать популярным блоггером») — какая-то невнятная вата.
shoorick: (Default)
Продолжаю баловаться двумя языками — перлом и русским:
#!/usr/bin/perl -wl -CS

use strict;
use utf8;

$,=' ';

sub choose_preposition_about_by_next_word {
    return
        /^[аиоуыэ]/i
        ? 'об'
        : 'о';
}

sub choose_preposition_with_by_next_word {
    return
        /^с[^аеёиоуыэюя]/i
        ? 'со'
        : 'с';
}

map {
    print choose_preposition_about_by_next_word, $_;
} qw(
    арбузе баране Елене ёлке игле йоде огне паре ухе юге яблоке
);

map {
    print choose_preposition_with_by_next_word, $_;
} qw(
    огнём садом светом слоном спичками ссылкой
    Стёпой стаканом сухарём сэром топором
);
Наверное, добавлю эти функции в Lingua::RU::Inflect — и можно будет сегодня-завтра выложить версию 0.02.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2017 04:44 pm
Powered by Dreamwidth Studios