Прискорююча кнопка 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:00 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.