Тайский разрыв строки: как эффективно разбить тайский текст

Ситуация с тайским текстом на клиентском сайте заключается в том, что мы не можем контролировать, где именно определенные слова / предложения будут разрываться между строками (как веб-браузер будет обрабатывать это) . Часто местные обозреватели указывают на неправильный внешний вид контента.

Временное решение Для этого копирайтер должен доставлять тайский контент с включенными разбивающими и неразрывными символами нулевой ширины.

На практике, а не:
ของ เพื่อน ๆ ที่ ออนไลน์ อยู่
мы должны использовать что-то столь же уродливое, как:
ข อ ง เ พื่ อ น ๆ ที่ อ อ น ไ ล น์ อ ยู่

Это всего лишь пример, я действительно не знаю, где именно разрешены точки останова.
На самом деле, одних только неразрывных нулевых пробелов тоже можно добиться ... просто более строго и правильно использовать разбивающие пробелы для большей точности.

И хотя это определенно возможно, это также трудоемкое и не очень эффективное решение для управления контентом большого сайта. Проще говоря, приложенные усилия не соответствуют необходимому эффекту.

Исследования до сих пор привело к упомянутому обходному пути, ища лучший способ справиться с этим. Даже W3C еще не имеет решения и только обсуждает, должно ли оно быть частью спецификации CSS3.

Тайский язык очень редко использует пробелы, в основном, чтобы различать предложения и т. Д. Таким образом, обычно тайское предложение представляет собой одну длинную строку. Где разорвать такую ​​строку, когда несколько строк текста собраны вместе, определяется идентификацией конкретных слов. Для идентификации слов используются локальные словари, которые, скорее всего, являются частью операционной системы или веб-браузера, я не совсем уверен в этом.

Очевидно, чем больше веб-браузеров / операционных систем вы проверите, тем больше результатов вы получите! Более того, вы мало что можете с этим поделать, так как это управляется системой, и нет доступных настроек «где сломать тайский».

Использование , или , чтобы указать, где на самом деле находятся точки останова, не помешает веб-браузеру думать (даже если неверно ) , что некоторые разрывы также возможны в местах, где вы их не определили, например в середине слова, которое может быть грамматически неверным.

Если такое слово помещается в конец строки (зависит от разрешения экрана, длины копии, определенных правил CSS) и браузер применяет к нему свое неправильное правило разрыва строки, то в конечном итоге вы получите с проблемой разрыва строки на тайском языке, независимо от того, что вы определили другие точки останова до, после или где-то еще в слове - браузер всегда будет использовать точку останова, которая, по его мнению, наиболее близка к EOL, а не только те, которые вы осторожно предложили, вставив ее упомянутых символов в вашей разметке.

Вот почему вам действительно нужно сосредоточиться на том, где не нарушать текст (неразрывное пространство нулевой ширины) , а не там, где это разрешено. И это то, что привело нас к уродливому и длинному примеру разметки в разделе «Временное решение» выше. Таким образом, разрыв строки может произойти только там, где вы разрешили, но это беспорядочно.

Любое другое решение было бы признательно, как справиться с этим более эффективно ... и кто знает, может ли это даже помочь W3C в их реализации?

СПАСИБО!

28
задан Marcin 14 December 2011 в 13:32
поделиться