 ex-wild_John Супермодератор
Центр программистов Bepro
Начальник отдела
Сообщений: 8,039
+ 4,910
6,509/2,845
– 298
135/90
|
Цитата:
Сообщение от Anvar Nuriev
Герман, как можно доклад "позырить" =), или это секретно? =)
|
Нет, не секретно. Вот краткая стенограмма доклада.
Цитата:
Предисловие
На первый взгляд тема доклада не относится к задачам форума программистов. Задача программистов — разработать алгоритм, создать «логику» программы, поставить обработку событий на элементы программы. Тем не менее, если проект выполняется для конечного пользователя (что относится к подавляющему большинству проектов), то большое внимание следует уделить эргономичности, внешнему виду и «интуитивной понятности» программы. Не последнее место в этом ряду занимает локализация программного обеспечения под различные языки - при прочих равных условиях, пользователь скорее всего выберет программу на родном языке. Тема данного доклада — проблемы, которые возникают при локализации.
Слайд 1: «Горячие» клавиши
Думаю, не стоит говорить о том, что такое «горячие» клавиши — каждый из нас использует их в повседневной жизни. При локализации, для правильной работы программы, зачастую требуется нечто большее, чем просто перевод интерфейса. Простой пример — программа, которая выводит диалог:
«Are you sure, you want to quit? [y/n]»
Дословный перевод на русский язык:
«Вы уверены, что хотите выйти? [д/н]»
Вот тут-то и начинаются проблемы. Программа обрабатывает лишь нажатие на клавиши «y» или «n», все остальные для неё неинформативны. Следовательно, необходимо продумать и прописать в программе различные «горячие» клавиши для разных локализаций. При этом следует помнить и другие тонкие моменты. Например, «y» на английском языке обозначает «yes» (то есть «да»), а на узбекском языке «y» - это «yoq» (то есть «нет»).
Остальные проблемы, рассмотренные в докладе, актуальны для перевода программ на узбекский язык (латиницу).
Слайд 2: Специальные символы.
При переводе на латиницу, среди обычных букв алфавита попадаются так называемые специальные символы. Простой пример — команда, которая выводит фразу «За здоровое поколение». На кириллице никаких проблем не возникает:
echo Соғлом авлод учун!
Если мы захотим вывести ту же самую фразу на латинице, то возникнут проблемы:
echo Sog'lom avlod uchun!
Буква «ғ» будет распознана как последовательность символов «g» и апострофа — операционная система будет считать, что строка не закончена и будет ожидать появления ещё одного апострофа.
Слайд 3: Различная длина слов.
Рассмотрим простой пример — программа, которая фильтрует слова по их длине. Сразу же возникает вопрос — сколько символов в слове «выход» - «чикиш»? Правильных ответов может быть два - на кириллице 5 символов (ч-и-к-и-ш), на латинице — 7 (c-h-i-q-i-s-h).
Слайд 4: Отличный от латиницы алфавит.
В латинском написании узбекского языка используются латинские буквы, точно такие же, как и в английском языке. Но при этом, порядок букв в алфавите отличается от порядка букв в английском алфавите. То есть, если использовать стандартные алгоритмы или программы сортировки, то результат будет отличаться от запланированного. Например, отсортируем по алфавиту следующие слова: «Асбоб», «Тарвуз», «Чикиш», «Цирк», «Ғишт», «Вазифа», «Фаол», «Қонун».
Очевидно, что порядок сортировки нарушен.
Слайд 5: Различные правила для одной буквы
Указанный факт не является проблемой в прямом смысле слова. При локализации больших объёмов текстов, чтобы не выполнять двойной работы, можно перевести текст на узбекский язык (кириллицу), а затем с помощью специальных средств преобразовать кириллицу в латиницу. Вот тут-то и возникает ещё один «подводный камень». Например, буква «Ц» на латинице пишется по-разному, в зависимости от местоположения в слове, а также в зависимости от того, стоит она после гласной или согласной.
В данном докладе рассмотрены не все возникающие проблемы — только основные из них. Также, в данном докладе не рассмотрены способы решения данных проблем — решение индивидуально для каждого конкретного случая.
|
__________________
Герман - это не имя, это особое состояние души (Джим Анджер)
|