Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: Alexandr Shlapak (Александр Шлапак)
Аудиторія: шифровальщики XML и XHTML / HTML (используя редакторы или скрипты), разработчики скриптов (PHP, JSP, и т.д.), разработчики схем (DTDs, XML Schema, RelaxNG, и т.д.), менеджеры веб проектов, и каждый кто задается вопросом, должен ли он использовать управляющие символы Unicode в разметке для достижения надлежащего выравнивания текста в скриптах, что выравниваются справа налево.
Стоит ли вам использовать управляющие символы Unicode или разметку, чтобы правильно отформатировать bidi текст в (X) HTML или XML контенте?
Unicode двунаправленный алгоритм определяет направление текста на основе свойств направления каждого символа. Иногда алгоритму нужно немного помочь, чтобы определить направление объектов в тексте, который смешивает Арабские символы или Иврит с ними в других скриптах. В других случаях вам может понадобиться переопределить влияние двунаправленного алгоритма в целом. Например:
Мы показываем примеры отображаемого текста с использованием реальных скриптов, которые выравниваются справа налево. Мы также показываем только ASCII версию сразу же после этого, что показывает Латинские символы в нижнем регистре и Иврит или Арабский язык в верхнем регистре. Хотя ASCII текст является переводом оригинала, порядок и положение символов отображает текст оригинала.
Этот пример показывает, что вы получите, если вы будете полагаться только на двунаправленный алгоритм. Это неправильно. Потому что вся цитата написанная на Иврите, текст "W3C" и запятая должны появиться с левой стороны (то есть после) текста на Иврите.
Название на Иврите будет "פעילות הבינאום, W3C".
ASCII версия:
название на Иврите будет "YTIVITCA NOITAZILANOITANRETNI, w3c".
Правильный результат при отображении будет выглядеть следующим образом:
Название на Иврите будет "פעילות הבינאום, W3C".
ASCII версия:
Название на Иврите будет "w3c ,YTIVITCA NOITAZILANOITANRETNI".
Unicode предоставляет специальные, невидимые коды форматирования для создания или переопределения результата двунаправленного алгоритма в виде простого текста. К ним относятся такие:
Эти символы используются в паре. Один из первых четырех знаков, что упоминались выше, используется для обозначения начала диапазона текста; в каждом конкретном случае диапазон заканчивается последним (PDF) символом. Следующий пример показывает, как эти управляющие символы можно использовать в обычном тексте:
Ниже приведен порядок символов в памяти, и добавляет два управляющие символы, которые представлены здесь как индексы: U+202B, RIGHT-TO-LEFT EMBEDDING (RLE), и U+202C, POP DIRECTIONAL FORMATTING (PDF).
Название на Иврите будет "RLEפעילות הבינאום, W3CPDF".
ASCII версия:
Название на Иврите будет "RLEINTERNATIONALIZATION ACTIVITY, w3cPDF".
Это приводит к отображению правильного результата (смотрите выше).
HTML4 стандарт представил разметку для того, чтобы делать точно такие же эффекты, как и эти символы Unicode.
При использовании XHTML ранее приведенный пример будет закодирован так:
Название на Иврите будет "<span dir="rtl">פעילות הבינאום, W3C</span>"
.
ASCII версия:
название на Иврите будет "<span dir="rtl">INTERNATIONALIZATION ACTIVITY, w3c</span>".
W3C рекомендовано, что языки разметки, основанные на XML также предоставляют выделенную разметку для управления направлением. (Смотрите разметка предложенная Рекомендацией Международного Набора Тэгов.)
Вопрос о том, должны ли вы использовать разметку или управляющие символы Unicode.
В (X)HTML и XML не используйте парные Unicode bidi символы форматирования кода, так как там доступна эквивалентная разметка.
Когда управляющие символы используются в контенте произвольного направление всегда есть вероятность перекрытия или несогласованных диапазонов - особенно потому, что сами символы не имеют видимой формы. Если атрибуты используются, это не является результатом хорошо сформированной разметки.
Кроме того, с помощью разметки намного легче управлять наследованием и эффектами разделения параграфов. Чтобы достичь того же результата при использовании результатов управляющих символов Unicode нужно сделать гораздо больше работы. Используя только управляющие символы Unicode также трудно понять как достичь таких эффектов, как переворот столбцов таблицы и выравнивание текста справа налево.
HTML 4 спецификация специально предостерегает от смешивания двух подходов за увеличения вероятности неправильного вложения. Она также рекомендует использование разметки, поскольку она "предлагает лучшие гарантии структурной целостности документа и снимает некоторые проблемы при редактировании двунаправленного HTML текста в простом текстовом редакторе". Она не запрещает использование Unicode bidi кодов форматирования.
Совместный Технический Отчет Unicode #20 и W3C Примечание, Unicode в XML и других Языках Разметки идет дальше. Оно явно рекомендует использовать только разметку. Она также рекомендует игнорировать Unicode bidi коды форматирования , если они обнаружены в контексте браузера, и заменять их соответствующей разметкой при получении в контексте, который редактируется.
В следующей таблице (взято из Unicode в XML и других Языках Разметки) предоставлено соответствующую разметку для замены каждого кода.
| Символ | Код | Эквивалентная разметка | Комментарий |
|---|---|---|---|
| LRE | U+202A | dir = "ltr" | атрибут блока или встроенного элемента |
| RLE | U+202B | dir = "rtl" | атрибут блока или встроенного элемента |
| RLO | U+202E | <bdo dir = "rtl"> | |
| LRO | U+202D | <bdo dir = "ltr"> | |
| U+202C | ничего | когда использован для завершения RLE или LRE (закрытие обеспечивается конечным тегом элемента, что содержит атрибут dir) | |
| </bdo> | когда использован для завершения RLO или LRO |
Могут быть места в HTML или XML файле, где нельзя использовать разметку и, таким образом, Unicode символы форматирования кода являются целесообразными.
Это не возможно применить разметку направления для значений атрибутов, так что для контроля над направлением для любого текста в атрибутах нужно будет использовать символы Unicode . Сказав, что, W3C рекомендует разработчикам XML схемы не создавать ситуаций, в которых авторы контента будут использовать текст написанный на естественном языке в значениях атрибутов. Может быть устаревшая разметка, однако, такие атрибуты как alt в HTML, есть там где это неизбежно.
Другие ситуации, когда управляющие символы могут обеспечить только переквалификацию являются элементами, которые позволяют только символьный контент или пропускают поддержку атрибутов напрямую. Примером может служить элемент title (заголовок) в HTML. Опять же, таких ситуаций следует избегать в новых XML форматах. (Они ограничивают не только применение направленного текста, но и применение языка и другой мета информации.)
Два другие невидимые, но невложенные направленные управляющие символы, предоставляемые Unicode обычно не имеют соответствующей разметки и должны быть использованы либо в символьной, либо в экранированной форме. Обратите внимание, что они менее проблематичны, поскольку они используются в одиночку, не парами, чтобы разграничить диапазоны текста, как и другие управляющие символы, которые мы обсуждали.
Документ Unicode в XML и других Языках Разметки обеспечивает руководство по использованию широкого диапазона символов Unicode или разметки, а не только управляющих bidi символов.
Для XML вы должны были бы создать свою собственную bidi разметку в DTD или Схеме и применять направления используя CSS.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2007-11-22. Переклад останнього оновлення 2011-10-24 11:30 GMT
Для перегляду історії внесення змін до перекладу натисність qa-bidi-controls в блоге i18n.
Copyright © 2003-2011 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.