Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: Alexandr Shlapak (Александр Шлапак)
Аудиторія: шифровальщики XML и XHTML/HTML (используя редакторы или скрипты), разработчики скриптов (PHP, JSP, и т.д.), шифровальщики CSS, разработчики схем (DTDs, XML Schema, RelaxNG, и т.д.), и каждый, кто реализует HTML используя скрипты с выравниванием справа налево.
Стоит ли использовать CSS или разметку для корректного форматирования основанного на Unicode bidi текста в основанных на HTML и XML языках разметки?
Текст написанный на Арабском языке или Ивритских скриптах выравнивается преимущественно справа налево (RTL), тогда как текст в других скриптах выравнивается слева право (LTR). Большинство времени Unicode bidi алгоритм заботится о направленности текста, основанного на свойствах используемых символов. Тем не менее, необходимы некоторые способы ее указания:
то что общая направленность контента и схемы (такой, как направление ячейки таблицы) должна быть RTL (LTR используется по умолчанию), так как документ в основном написанный на таких скриптах как Арабский или Иврит
то что часть LTR документа должна рассматриваться как RTL, и наоборот
каково желаемое направление текста, когда Двунаправленного алгоритма Unicode недостаточно для правильного упорядочения смежной работы текста смешанного направления
то что присуще направленности обеспеченное Unicode bidi алгоритмом должно быть переопределено.
Мы показываем примеры используя текст, написанный на реальных скриптах, которые выравнивается справа налево и, так как ASCII визуально расположена версия сразу же после этого, показывает Английский текст в нижнем регистре и Иврит или Арабский язык в верхнем регистре. Порядок и позиция символов отображает отличие от оригинала.
Чтобы прояснить третий пункт выше, это предложение обеспечивает пример того, что вы можете получить, если будете полагаться только на двунаправленный алгоритм. Это неправильно. Потому что вся цитата на Иврите, и, следовательно, выравнивается справа налево, текст "W3C" и запятая должны появиться слева (т.е. после) текста на Иврите.
Название на Иврите будет "פעילות הבינאום, W3C".
ASCII версия:
Название на Иврите будет "YTIVITCA NOITAZILANOITANRETNI, w3c".
Правильный результат при отображении будет выглядеть следующим образом:
Название на Иврите будет "פעילות הבינאום, W3C".
ASCII версия:
Название на Иврите будет "w3c ,YTIVITCA NOITAZILANOITANRETNI".
XHTML/HTML обеспечивает разметку для достижения этих целей. К ним относятся:
| Разметка | Эффект |
|---|---|
dir атрибут |
Устанавливает направленность для элемента, к которому он подключен и ниже. Возможные значения включают: rtl и
ltr. |
bdo элемент |
Переопределяет направленность текста, как это определено Unicode bidi алгоритмом. |
Также следующим образом CSS обеспечивает поддержку для направленности текста:
| Собственность | Значение | Эффект |
|---|---|---|
unicode-bidi |
embed |
Предположим, что в тексте с которым это применяется направление выравнивания определяется свойством direction. |
bidi-override |
Текст к которому это применяется переопределит Unicode bidi алгоритм согласно направлению выравнивания, которое определено свойством
direction. |
|
direction |
ltr |
Устанавливает основное направление LTR для текста, к которому применено свойство unicode-bidi. |
rtl |
Устанавливает основное направление RTL для текста, к которому применено свойство unicode-bidi. |
Вопрос о том должны ли вы использовать разметку или CSS для указания направленности в языках разметки основанных на XML и HTML.
Вы всегда должны использовать специализированное bidi разметку для описания контента там где есть разметка. Затем CSS может понадобиться или не понадобиться для описания значения той разметки. Это зависит от того имеете ли вы дело с контентом, который обрабатывается клиентским приложением как HTML или XML. (Обратите внимание, что XHTML может обслуживаться в обоих случаях!)
‎ и ‏ не могут быть использованы для установления
направленности.Давайте рассмотрим это еще более детально.
Потому что направленность является неотъемлемой частью структуры документа, разметка должна быть использована для установки направленности документа или части информации, или для определения места в тексте, где двунаправленный алгоритм Unicode сам по себе недостаточен для достижения желаемой направленности.
Для получения желаемого выравнивания справа налево или двунаправленного эффекта, некоторые люди просто применяют CSS к любому общему пункту или окружают соответствующий текст встроенными элементами. Тем не менее, стилизация, которая применена с помощью CSS не является постоянной. Ее можно отключить, отменить, не обнаружить или изменить/заменить в различных контекстах. Хотя bidi разметка необходима только для визуальной подачи текста, это не просто декоративная функция. Модным остается интеграция разметки с контентом документа. Она также вносит значительную ясность в контент, если используется специализированная bidi разметка.
Поэтому вы должны использовать специализированную bidi разметку всякий раз, когда это возможно. Не просто прикрепить CSS стиль к общему элементу для достижения эффекта.
Обратите внимание, что это предполагает, что документы, написанные на языках разметки всегда обращаются к разметке, которая специально предназначена для поддержки текста смешанного направления. Людей, которые проектируют DTD или схемы следует поощрять, чтобы они добавляли элементы или атрибуты.
text/htmlИспользуйте только разметку. Рекомендация CSS2 рекомендует использовать разметку для bidi текста в HTML. На самом деле это доходит до того, если бы сказать, что соответствующие HTML клиентские приложения могут игнорировать CSS bidi свойства. Это потому, что спецификация HTML четко определяет ожидаемое поведение клиентских приложений в отношении bidi разметки.
application/xhtml+xmlXHTML 1.0, которая обслуживается как application/xhtml+xml будет использовать ту же семантику что и HTML. Таким образом, также имеет смысл
использовать только разметку и не использовать для этого CSS.
application/xml или
text/xmlОбычно клиентское приложение не будет автоматически распознавать или знать что делать с любой bidi разметкой, которую вы используете в XML документах. Поэтому CSS свойства следует использовать для того, чтобы указать ожидаемое визуальное поведение текста в документе.
Однако, CSS всегда должна быть связана с специализированной bidi разметкой в тексте.
XHTML, которая обслуживается как application/xml или text/xml рассматривает клиентскими приложениями как XML, а не HTML.
Ниже показано CSS, которая была бы целесообразной для набора разметки доступной в XHTML:
*[dir="ltr"] { direction: ltr; unicode-bidi: embed }
*[dir="rtl"] { direction: rtl; unicode-bidi: embed }
bdo[dir="ltr"] { direction: ltr; unicode-bidi: bidi-override }
bdo[dir="rtl"] { direction: rtl; unicode-bidi: bidi-override }
Есть ситуации в XHTML/HTML и, возможно, другие языки разметки на основе XML, где текст появляется в атрибуте или элементе, который поддерживает только символьные данные. Ни разметка, ни CSS не может использоваться для изменения направленности или атрибутов текста или части текста в элементе, который поддерживает только символьные данные. В этих случаях необходимо использовать Unicode коды форматирования направленности. (Для получения подробной информации смотрите FAQ (часто задаваемые вопросы) (X)HTML и bidi коды форматирования или разметка.)
Для языков разметки на основе XML, bidi стайлинг должен быть определен в отдельную таблицу стилей, и та таблица стилей включена в другие ваши таблицы стилей или в ваш документ. Это упрощает разработку таблиц стилей и усиливает разницу между bidi и другим стайлингом. Думайте о таблице стилей bidi, как о части информации схемы, которая определяет значение специфической bidi разметки, а не как о декоративном стайлинге, который может существовать в различных вариантах.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2007-08-29. Переклад останнього оновлення 2011-10-24 14:30 GMT
Для перегляду історії внесення змін до перекладу натисність qa-bidi-css-markup в блоге 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.