Проживая в шахтерском крае, я не могу не сравнить переводчика с представителем самой опасной “мирной” профессии. А именно, с забойщиком.
Забойщик - это рабочий, производящий в забое добычу каменного угля. Сам я в шахте никогда не был, но примерно знаю, как это происходит. Сначала шахтер опускается на километр и более (!) под землю. Затем, зажатый со всех сторон породой, он отбойным молотком рубит пласт угля. Примерно так же иногда чувствует себя локализатор - переводчик, осуществляющий локализацию, - представитель менее опасной и, но не менее мирной профессии
Чем же зажат со всех сторон локализатор? Давят на него ограничения, и места, сктати, тоже бывает очень не хватает. Лично у меня складывается мнение, что некоторым программистам лень напрягаться. Тогда и возникает требование - втиснуть перевод так, чтобы он был не длиннее исходного текста. А в результате получается набор нечитабельных сокращений без пробелов. Но сегодня я хотел бы повозмущаться по другому поводу.
Неужели сложно забугорным программистам наконец-то начать учитывать особенности склонения и множественного числа существительных в русском и других языках. Допустим, вам нужно написать, что найдено столько-то файлов. Казалось бы, проще простого! Но не тут-то было. Ведь может быть любое число файлов: 1 файл, 2 файла, 5 файлов. Вариант “файл(-а, -ов)” не совсем удачен, да и Microsoft не советует. Локализатору предлагается перестраивать фразу:
Найдено файлов: %1.
Удачное решение, как и многие другие решения переводчиков и редакторов, участвующих в локализации продуктов Microsoft.
Но не всегда удается перестроить фразу, как указано выше, чтобы она при этом еще и звучала по-русски. В таких случаях Microsoft советует использовать сокращения, например:
%1 days left for activation.
На выполнение активации осталось %1 дн.
Тоже не плохо, но только вот 1, 21, 31 день и т.д. никак не подпадают под сокращение “дн.”.
Справедливости ради нужно отметить, что некоторые разработчики все-таки стараются сделать свой продукт локализабельным и предусматривают два варианта фразы - для единственного и множественного числа, например:
1 day left for activation.
%1 days left for activation.
Но и этого недостаточно для русского языка, в котором есть несколько форм существительных при употреблении с числительными — единственная, двойственная и множественная. Для облегчения работы локализатора сайта достаточно воспользоваться несложной функцией:
1 2 3 4 5 6 7 8 9 | function declension($n,$string=array('день','дня','дней')) { $n = abs($n) % 100; $n1 = $n % 10; if ($n > 10 && $n < 20) return $string[2]; if ($n1 > 1 && $n1 < 5) return $string[1]; if ($n1 == 1) return $string[0]; return $string[2]; } |
Как видите, нужно всего лишь указать три формы (напр., день, дня, дней), одна из которых затем будет подставляться автоматически в зависимости от стоящего перед ней числа. Сдается мне, что и в большинстве приложений можно реализовать что-то подобное.







Сентябрь 17th, 2009 at 04:16
Спасибо, Михаил. Актуальная тема, и функция полезная.
Сентябрь 17th, 2009 at 04:22
А насчет «сложно начать учитывать особенности склонения» — они просто не представляют, что в других языках слова могут изменяться по падежам и родам. На самом деле, если человек занимался программированием, а не лингвистикой, это будет для него откровением
Сентябрь 17th, 2009 at 04:43
Максим, спасибо за отзыв о статье!
Нужно как-то просвещать программистов.
Для многих программных продуктов локализация планируется изначально, и даже если сначала туда не входит наш сегмент рынка, то ведь не стоит зарекаться - нужно как-то учитывать специфику славянских языков при разработке ПО.
Гигант Microsoft уже не один десяток лет на рынке, пишут руководства по стилю для переводчиков и редакторов, а почему бы им один раз не объяснить своим программистам, что от них требуется, чтобы у переводчиков осталось больше волос на голове, а локализованный продукт выглядел краше