Что приводит к тому, что акцентированные хинди / тайские символы неправильно переносятся по словам в измененном текстовом поле TextField и как их решить? - PullRequest
0 голосов
/ 23 февраля 2012

Во-первых, я не понимаю этот язык - поэтому приношу свои извинения, если это не хинди или тайский!

Теперь, если вы внимательно посмотрите на два примера текстового поля ниже, я выделил символы

На первом изображении (вверху) последний символ в строке 1 - с ударением .

Убедитесь сами (фотография увеличена в целях иллюстрации):

enter image description here

Однако символ на втором рисунке (внизу) показывает, что после сжатия TextField на один или два пикселя «сместится» символ ударения на следующую строкув сочетании с 'o' выглядящим символом.

Вопрос: Что вызывает смещение этого акцента на следующую строку?И как его правильно отобразить?

Информация о системе:

  • Flex SDK 3.6;
  • Flash Builder;
  • Flash Player 11.0.1.152;

1 Ответ

1 голос
/ 05 марта 2012

Это хинди. «О, выглядящий символ» - это заполнитель, используемый, когда диакритический знак хинди отображается без буквы, на которой он стоит. Они могут просто отображать диакритический знак над пустым пространством, например ´, но по какой-то причине они предпочитают кружок для обозначения символа, который должен быть там.

Проблема связана с тем, как диакритические знаки пишутся для хинди. Чтобы было легче понять, я буду использовать европейское акцентированное письмо для моего примера, букву é. Есть две возможности: 1. Это может быть один персонаж. Если вы нажмете клавишу Backspace, весь персонаж исчезнет. 2. é может состоять из двух символов, e и ´, где ´ содержит информацию о размещении, поэтому результат будет выглядеть как é, а не e´. Если вы нажмете клавишу Backspace, исчезнет только диакритический знак, и вам придется снова нажать клавишу Backspace, чтобы удалить символ e. Для европейских языков вы вообще не видите 2). Для тайского языка используются как 1), так и 2) (что создает проблему для поиска, поскольку односимвольный символ é не соответствует двухсимвольному символу é). Для хинди существует слишком много диакритических знаков и возможных комбинаций, поэтому существует только 2).

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

...