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. Если вы делаете это на каком-то языке программирования, обычно можно определить направленность для данного разговорного языка (язык, культура и т. Д.). Но это был бы другой вопрос.

Другие вопросы по тегам