HTML направление по языку? (если английский dir=ltr, если арабский dir=rtl)
Могу ли я сделать это?
Я имею в виду, если, например, содержимое <div>
на иврите или на арабском <div>
правильно и дать ему dir="rtl"
приписывать. И, если содержимое <div>
на английском языке, плавать влево и изменить dir
приписывать "ltr"
,
Это возможно?
3 ответа
Если вы не знаете язык, вы можете использовать регулярные выражения для поиска иврита или арабских символов, а затем установить соответствующее направление.
Используйте регулярные выражения, чтобы найти иврит: Javascript - как найти иврит?
Все юникод-блоки, которые вы можете использовать для редактирования вышеуказанного решения, также подходят для арабского языка: http://www.regular-expressions.info/unicode.html
Хорошо, если у пользователя есть другая языковая версия, вы можете проверить это (не знаете, где вы сохраняете язык пользователя, в cookie?), загрузите его с помощью php или javascript и загрузите нужную таблицу стилей с правильными правилами.
Вам нужно вручную поставить атрибут dir для каждого div:
<div lang="ar" dir="rtl"><!-- some content here --></div>
<div lang="en" dir="ltr"><!-- some content here --></div>
Это автоматически изменит поток. Однако вам может потребоваться настроить некоторые элементы в зависимости от языка. Вы можете сделать это с помощью псевдо-атрибута CSS lang:
p:lang(ar) { text-align: right; }
p:lang(en) { text-align: left; }
Конечно, вы могли бы сделать это:
div:lang(en) { direction: ltr; }
div:lang(ar) { direction: rtl; }
Это не рекомендуемый метод. Поскольку вам нужно как-то указать язык, вы также можете указать атрибут dir. Если вы делаете это на каком-то языке программирования, обычно можно определить направленность для данного разговорного языка (язык, культура и т. Д.). Но это был бы другой вопрос.