Изменение выравнивания текста при переключении клавиатуры на язык справа налево? - PullRequest
1 голос
/ 27 ноября 2011

В соответствии с пользовательским запросом я пытаюсь заставить мое (PhoneGap) веб-приложение работать лучше с языками RTL, такими как иврит. Я хочу, чтобы мои материалы и текстовые области работали лучше с этими языками. Когда пользователь переключает свою клавиатуру на такой язык, направление ввода автоматически переключается справа налево, как и предполагалось. Тем не менее, выравнивание текста остается на левой стороне, что вызывает сожаление. Я понимаю, что могу переключить выравнивание текста, используя атрибут dir , например:

<input dir="rtl" />

Я планирую использовать JavaScript, чтобы каким-то образом определить язык ввода RTL и добавить этот атрибут ко всем входам и текстовым областям. Тем не менее, это кажется немного хлопот. Есть более легкий способ, которым я пропускаю? Мне не нравится идея добавить больше JavaScript для этой простой задачи.

1 Ответ

1 голос
/ 28 ноября 2011

Если вся страница написана на иврите или арабском языке, вы должны добавить атрибут dir к элементу html вместе с атрибутом lang="he" / lang="ar" (последний предназначен для VoiceOver, не читающего иврит /арабский, верящий, что это английский. Алфавит и произношение совершенно разные :)).

Если только части страницы написаны на иврите, то каждый элемент, содержащий текст на иврите, должен иметь эти атрибуты (или его родителя) иостальные части на английском языке должны иметь атрибуты dir="ltr" lang="en", чтобы текст не оставался без соответствующих атрибутов lang и dir.Добавлять их быстрее на одного родителя, чем на каждый отдельный элемент HTML, и если у родителя есть 5 узлов на английском языке и 1 на иврите, ему нужно только 2 атрибута: 1 для родителя для lang="en" dir="ltr", другой для дочернего элемента, содержащегоиврит.

Для стилей, вызванных записью rtl, вы можете использовать один из этих атрибутов в качестве гигантского переключателя для каждого свойства CSS, такого как float, которое использует значения left или right (и свойства, такие как right, border-right, margin-right, margin: t r b l;; пожалуйста, смотрите вторую часть одного из моих первых ответов здесь на UTF-8 и CSS . Примечание: iOS не имеет проблем с продвинутые CSS-селекторы, которые были только мечтами, когда мы должны были поддерживать IE6;))

...