17 декабря 2009 :Человеко-читабельность - учите компьютеры русскому!Приветствую всех. Поскольку до нового года я страшно занята, поэтому не писала. Но я постараюсь писать на выходных. Несколько интересных мыслей и просто переводных статей я очень хотела бы выложить. Однако, сегодня есть кое что, о чём я не могу не написать, и о чём почему-то никто не упоминает. Это использование русского языка в автоматически генерируемом контенте, особенно в словах которые изменяются от числа. Например форма которую можно увидеть в 90% онлайн магазинов (даже таких крупных как ozon.ru, eldorado.ru, 003.ru):
Вам это не режет глаз? Нет? А мне ужасно режет, мне кажется автор сильно не любит людей. Во всех магазинах созданных нашей компанией можно видеть туже строчку, но на русском языке
В данном случае покупатель видит что работу делали профессионально и с душой, а не для галочки. Словоформа множественного числа в данном случае генерируется как на стороне сервера (php), так и у клиента, при добавлении в корзину (js). Делается это следующим образом в PHP: $pred=(floor($count%100 / 10)==1 ?'предметов ': (($count%10 ==1)?'предмет ': (in_array($count%10 , array(2,3,4))?'предмета ':'предметов '))); и яваскриптах: pred=(Math.floor(count%100 / 10)==1) ?'предметов ': (count%10==1?'предмет ':(((count%10 >=2) && (count%10<=4)) ?'предмета ':'предметов ')) Данный метод я сама придумала за полчаса три года назад. Остальные кстати делают по другому: <?php $n = 17; print ($n%10==1 && $n%100!=11 ? 0 : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2)); ?> output: 2 в данном случае возвращается не конкретная форма множественного числа как у меня, а её номер, это удобно для создания файлов локализаций. Чтобы узнать как делают локализации в php, копайте в сторону функций gettext и конкретно для данного случая ngettext — для локализации форм множественного числа. Если вы разработчик сайта с мультиязыковой поддержкой, то вам пригодится таблица форм мн.числа (plural form) от Mozilla — ЗаключениеТоварищи программисты — думайте об удобстве! Приятность текстов — её краеугольный камень. Этому вас не научат англоязычные форума и сайты, просто потому что в английском языке всего две словоформы. Т.е. надпись "You have 2 items in cart" звучит правильно и вполне приятно. Между прочим именно из-за локализаций англоязычных движков (форумов, гостевых) эта беда и вошла в массы. Например "У вас 2 новых сообщений" (You have 2 new messages). Ну и из-за лени программистов конечно. И главное — старайтесь никогда не употреблять число "0". Напишите лучше "Ваша корзина пуста" или "Новых сообщений нет", это будет очень приятно. Не сложно же? P.S. Кстати в начале месяца я написала статью для mannodesign "как нарисовать простой логотип", если интересно читайте тут. Комментируйте здесь =). |
Либо волшебно используйте ваш логин в Google, Яндекс, рамблер или ЖЖ чтобы войти через Open_ID

Комментарии:
bugoff
24.12.2009 14:00:22
Moony (Елена Лунная)
24.12.2009 15:22:47