<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride --> <!ATTLIST BDO %coreattrs; -- id, class, style, title -- lang %LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #НЕОБХОДИМ -- направление -- > Начальный тег: необходим, Конечный тег: необходим
Определение атрибута
dir = LTR | RTL [CI]
Этот обязательный атрибут определяет базовое направление текста в содержимом элемента. Это направление переопределяет унаследованное направление символов, как указано в [UNICODE]. Возможные значения:
Атрибут, определённый в другом месте
Двунаправленного алгоритма и атрибута dir обычно достаточно для обслуживания внедрённых изменений направления. Однако, в некоторых ситуациях двунаправленный алгоритм может быть причиной некорректного представления. Элемент BDO позволяет авторам отключить двунаправленный алгоритм в определённом фрагменте текста.
Рассмотрим документ, содержащий текст:
english1 HEBREW2 english3 HEBREW4 english5 HEBREW6
и представим, что этот текст уже выведен в таком визуальном порядке. Причиной этого может быть то, что стандарт MIME ([RFC2045], [RFC1556]) отдаёт преимущество визуальному расположению, т.e. что последовательности текста "справа-налево" вставляются справа-налево в потоке байтов.
В email этот пример может быть сформатирован с включением символов новой строки:
english1 2WERBEH english3 4WERBEH english5 6WERBEH
Это конфликтует с двунаправленным алгоритмом [UNICODE], поскольку этот алгоритм повернёт 2WERBEH, 4WERBEH и 6WERBEH вторично, отображая еврейские слова слева-направо вместо справа-налево.
Решением в данном случае будет переопределение двунаправленного алгоритма помещением отрывка Email в элемент PRE (для сохранения символов новой строки) и каждой строки в элемент BDO, атрибут dir которого установлен в LTR:
<PRE> <BDO dir="LTR">english1 2WERBEH english3</BDO> <BDO dir="LTR">4WERBEH english5 6WERBEH</BDO> </PRE>