вторник, 25 ноября 2008 г.

Почему нельзя просто повернуть текст

Это перевод Why you can't rotate text. Автор: Реймонд Чен.

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

Кто-то в коментариях спросил: "почему бы не рисовать текст вертикально?".

Ага, тогда добро пожаловать в волнующий мир вертикального текста.

Сначала мы планировали отображать текст вертикально в новом меню пуск Windows XP. В первом наброске дизайна для меню, ваше имя отображалось бы вертикально по левой стороне меню, вместо того, чтобы быть сверху, как сейчас.

Поворот текста является проблемой для тех языков, которые традиционно используют вертикальное отображание, как, например, в китайском. Поскольку у вас, скорее всего, китайский шрифт не установлен, то представьте, что %, & и ' - китайские символы вашего имени. В традиционной вертикальной записи они должны быть записаны как показано в примере 1 ниже. Заметим, что английский текст при этом повёрнут по часовой стрелке. При этом сохраняется порядок чтения сверху-вниз.

Три примера

Как уступка влиянию Запада, разрешается писать китайские символы слева-направо, при этом ваше имя будет записано как "%&' (Amy Smith)".

Сравните это с традиционным западным способом поворота текста. Текст, который обычно отображается как "Amy Smith" поворачивается против часовой стрелки и отображается как показано в примере 2.

Ну а теперь посмотрите, что будет, если вы возьмёте китайское имя записанное по-западному: "%&' (Amy Smith)", повернёте его по-западному - и получится у вас ситуация, как в примере 3. Обратите внимание, что с точки зрения китайцев, всё оказалось задом-наперёд! Символ, который должен быть сверху (%), теперь оказался снизу.

Windows была многоязычной системой многие годы. Это означает, что один и тот же код работает для всех языков. Смена языка просто меняет показываемые строки. Это означает, что не может быть зависимого от языка интерфейса. И в этом случае это означает, что мы не можем разделять правила поворота для китайского от правил для английского или немецкого.

(Даже если бы нам разрешили ввести раздельные правила поворота, нам всё равно нужно было бы как-то отделить одну часть имени от другой - было ли имя в форме "%&' (Amy Smith)" или же "Amy Smith (%&')". Другими словами, мы должны повернуть строку как в примере 2, т.к. это английский текст с внедрёнными китайскими символами; или же мы должны повернуть текст как в примере 1, т.к. это китайский текст с внедрёнными английскими символами. Те из вас, кто видел смесь из арабского и английского должны были видеть, как знаки препинания вносят такую же степень запутанности.)

Многоязычная поддержка также объясняет, почему вы видите слова "1 папка(и)" вместо "1 папка" и "2 папки". Почему бы не иметь две строки форматирования: одну для единственного числа, а другую - для множественного?

Ну, во-первых, это значительно увеличило бы число строк, которые нужно было бы переводить.

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

Эти же соображения объясняют, почему вы часто видите строки в форме "Свойство: Значение" (например, "Изменён: 29 сентября 2003 г.") вместо фразы ("Последний раз изменён 29 сентября 2003 г."). Такое поведение необходимо для избежания проблем, вызываемых грамматикой. Если вы попытаетесь использовать фразы, то вам придётся беспокоиться о глаголах, роде, единственном и множественном числах, склонении - всех этих вещах, в которых компьютеры обычно не слишком разбираются. Единственным безопасным решением будет избегать этих вопросов полностью и использовать вместо фраз нотацию "Свойство: Значение".

Мы сделали только одно специальное исключение из этого правила "независимости от грамматики": личные папки. Когда вы просматриваете чужую папку "Мои документы", она называется "Документы - Крис" ("Chris's Documents" - в буквальном переводе это звучит как "Документы Криса", но для русского такой переход сложнее, чем для английского, поэтому для нас записали "почти" фразой). Мы высказали эту просьбу нашим переводчикам, и они старательно поработали, чтобы быть уверенными, что эти шаблоны будут работать для всех языков, которые мы поддерживаем (к счастью, нам не пришлось столкнуться с ситуацией, когда форма шаблона зависела бы от того, является ли Крис мужчиной или женщиной).

3 комментария:

  1. Анонимный19 июля 2010 г., 13:51

    Для носителей русского языка очевидно, почему не сделали 2 строки форматирования - для единственного и для множественного. Чтобы правильно отображать все падежи, надо повозиться, понятно, что изначально англоязычная Windows не могла быть рассчитана на русский язык.

    Соответственно, кусок статьи, объясняющий это, вообще не нуждается в переводе :)

    ОтветитьУдалить
  2. Решения для изменения грамматики в зависимости от числа есть - см. например GNU gettext. И вроде они не сильно сложны:)

    ОтветитьУдалить
  3. В который уже раз думаю, насколько трудно было делать многоязычность америкосам, у которых всё МЕГАпросто: и весь алфавит в первые 128 символов вмещается, и для проверки на множественность достаточно условия > 1, и словоформ нету, что делает spellcheck элементарным.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

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