Подтвердить что ты не робот

Языки Delphi XE5 справа налево не отображаются так, как они должны быть в android

как гласит название, текст с языка RTL, такой как персидский или арабский, не показывает хорошо в android например, слово "سلام" показано как "م ا ل س". эта проблема возникает даже в текстовых вводах (которые, по моему мнению, являются родными и встроенными текстовыми полями для Android) есть ли способ исправить это?

4b9b3361

Ответ 1

Согласно предложениям LURD.
Загрузите и используйте Основные компоненты DPF Delphi Android и/или DPF Delphi iOS Native Components.
Это устранит проблему в XE7 и предыдущем.
Согласно документации с Delphi XE8 beta, проблема также исправлена.

В крайнем случае (если вы это чувствуете), кто-то предпринял попытку исправить исходный код XE5, чтобы включить поддержку BiDi. См.: https://docs.google.com/file/d/0BwumWe43CaijVDRQZzNQbXNSLWc/edit?usp=sharing

Ответ 2

Отсутствие поддержки двунаправленного и символьного Shaping - это известное ограничение платформы FireMonkey для всех целей (включая Windows и Mac OSX).

Нам нужно будет ждать "собственных элементов управления" для Android в качестве сторонних компонентов для FireMonkey, поскольку он существует для iOS - см. http://www.tmssoftware.com/site/tmsicl.asp например.

Я нашел эту замечательную статью в блоге с исходным кодом об элементах Android Native для Lazarus/FreePascal, что довольно интересно. Но это не будет работать с компилятором Delphi "NextGen", который в настоящее время идет в разных направлениях относительно FPC (например, с режимом ObjectivePascal).

enter image description here

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