Comments 13
По-моему, рассмотренные подходы очень слабые с точки зрения написание таких стилей и их поддержки. Есть же препроцессоры и лучше использовать их ( Пример возможных миксинов), стили пишешь один раз и в одном месте, а потом просто генерятся два файла под разные раскладки
Берем Less делаем 2 билда для RTL и для простой версии если пользуемся webstorm/phpstorm настраиваем File Watcher для 2х версий.
Ну или Gulp/Grunt по вкусу, хотя Gulp немного вкуснее и готово. Вторую часть статьи можно попросту выкинуть. А вот за первую спасибо.
Ну или Gulp/Grunt по вкусу, хотя Gulp немного вкуснее и готово. Вторую часть статьи можно попросту выкинуть. А вот за первую спасибо.
Делали подобное на Twitter Bootstrap. Кастомный CSS один, плюс Bootstrap нормальный и RTL. Если четко следовать идеологии Bootstrap, Работает на ура.
На самом деле это не цифры пишутся слева направо, а мы с вами пишем цифры справа налево: европейцы, заимствуя позиционную систему счисления у арабов, направление письма не развернули, хотя было бы логично.
А в языке у них тоже справа налево? Условно: один и десять и пятьсот и тысяча?
Европейцы действительно не стали ничего разворачивать, но это сделало запись более логичной: число читается с той же стороны с которой пишется. Ну по крайней мере так в языках без извращений типа немецкого (где после сотен идут единицы, а уж после тех — десятки). У арабов та же придурь, что, по крайней мере объясняет почему они изначально выбрали «не вполне логичное» направление письма.
Но тут, на самом деле, речь совсем о другом. Речь о том, что если вы напишите какие-нибудь буквы из LTR языка (ну, скажем, русского), то слева вы увидите первую букву, чуть правее — вторую, ещё правее — третью. Если вы напишите буквы из RTL языка (арабского или иврита), то вы, разумеется, увидите первую букву справа, следующую — левее, третью — ещё левее.
А вот что будет, если вы напишите число арабскими арабскими цифрами (то есть цифрами, которыми пользуются арабы)? Ответ неожиданный: если ничего не делать, то при стандартных настройках первая цифра будет слева, следующая — правее, третья — ещё правее. Браузер за вас сам всё сделает, не надо даже думать об этом! Но ещё веселее будет со знаками ">" и "<". Если они будут идти после арабской буквы, то они «сами собой» развернутся, если после арабской (неважно — арабской или «арабской арабской») цифры — то нет! Так что подвох может случиться даже с самыми «обычными» буквами из US ASCII.
В общем одним CSS'ом можно обойтись далеко не всегда. Иногда ещё и код приходится переделывать…
P.S. О том, что в арабском каждая буква имеет четыре варинта написания тоже как бы заботится браузер сам по себе, но вы можете просто не ожидать, что написав три раза одну и ту же букву (ну скажем "ڠ") вы получите в результате слово в котором она написана тремя разными способами (в данном случае "ڠڠڠ")…
Но тут, на самом деле, речь совсем о другом. Речь о том, что если вы напишите какие-нибудь буквы из LTR языка (ну, скажем, русского), то слева вы увидите первую букву, чуть правее — вторую, ещё правее — третью. Если вы напишите буквы из RTL языка (арабского или иврита), то вы, разумеется, увидите первую букву справа, следующую — левее, третью — ещё левее.
А вот что будет, если вы напишите число арабскими арабскими цифрами (то есть цифрами, которыми пользуются арабы)? Ответ неожиданный: если ничего не делать, то при стандартных настройках первая цифра будет слева, следующая — правее, третья — ещё правее. Браузер за вас сам всё сделает, не надо даже думать об этом! Но ещё веселее будет со знаками ">" и "<". Если они будут идти после арабской буквы, то они «сами собой» развернутся, если после арабской (неважно — арабской или «арабской арабской») цифры — то нет! Так что подвох может случиться даже с самыми «обычными» буквами из US ASCII.
В общем одним CSS'ом можно обойтись далеко не всегда. Иногда ещё и код приходится переделывать…
P.S. О том, что в арабском каждая буква имеет четыре варинта написания тоже как бы заботится браузер сам по себе, но вы можете просто не ожидать, что написав три раза одну и ту же букву (ну скажем "ڠ") вы получите в результате слово в котором она написана тремя разными способами (в данном случае "ڠڠڠ")…
> Если они будут идти после арабской буквы, то они «сами собой» развернутся
А как называется свойство, отвечающее за это, в стандарте Unicode, не подскажете?
А как называется свойство, отвечающее за это, в стандарте Unicode, не подскажете?
Там есть аж четыре свойства: Bidi_Class, Bidi_Control, Bidi_Mirrored, Bidi_Mirroring_Glyph. Wikipedia включает короткое описание, на unicode.org есть подробное описание.
В русском тоже, от 10 до 20 сначала единицы потом десяток: одиннадцать, двенадцать…
Ну это всё-таки такие «цельные» слова. Но да, в этом случае в русском тоже небольшая аномалия, согласен.
Это вы ещё с языками, не следующими десятичной логике, не сталкивались. Во французском, например, 71 будет звучать как «шестьдесят и одиннадцать», а в грузинском — «три по двадцать и одиннадцать».
Sign up to leave a comment.
Сайты справа налево: как подключить RTL-стандарт