Flex 4.6中的阿拉伯语短语被翻转

时间:2015-05-29 09:42:21

标签: actionscript-3 flex arabic flex4.6

我有一个需要支持阿拉伯语本地化的flex应用程序(版本4.6)。 该应用程序已经正确处理UTF-8字符,因为它已经是法语版本。 但由于某些原因,阿拉伯语文本没有正确显示并被翻转,即标签显示“ghi def abc”而不是“abc def ghi”。

按钮的文本是从Java服务器填充的对象中获取的,该服务器读取以UTF-8编码的文件。在eclipse中,我检查了该对象的内容,并正确显示了这些单词(来自eclipse的“表达式”视图)。

<mx:Button id="button1"
           label="{Messages.currentLanguage['button1']}"
           click="button1_clicked ()"/>

在button1_clicked()函数中我添加了一小段代码来检查它是否可以来自Messages对象:

private function importFile_clicked ():void
{
    var temp:String = "قائمة مستخدمي المشروع";
    //var temp:String = "toto and titi";      // toto and titi is correctly displayed
    importFile.label = temp;
}

但它没有用......按钮仍然显示:

  

المشروعمستخدميقائمة

而不是:

  

قائمةمستخدميالمشروع

请注意,我还尝试将layoutDirection和direction更改为“rtl”(在mx:button声明和button1_clicked函数中)但它没有改变任何内容......

我还尝试在字符串的开头和结尾添加特殊字符,但没有成功:'\ u202A','\ u202B','\ u202C','\ u202D','\ u202E',' \ u202F”。

我真的很困惑......

1 个答案:

答案 0 :(得分:0)

根据有关text direction的Flex文档,文本方向仅在Spark组件集上实现:

  

在Spark组件集中的文本控件中内置了对文本控件设置方向的支持,因为这些文本控件基于FTE(Flash文本引擎)。基于TextField控件的基于文本的控件不支持镜像或双向文本。

为了使MX控件接受文本方向,您应该通过调整编译器(ref)来使用Flash Text Engine

  

要确保MX控件在Flash Builder中使用FTE,请选择&#34;在MX Components中使用Flash文本引擎&#34;选项。在命令行上,您可以应用MXFTEText.css主题文件:

     

mxmlc -theme+=themes/MXFTEText.css MyApp.mxml

     

选择此选项会导致UITextField上的大多数内部依赖项替换为支持FTE的UIFTETextField。 MX TextInput,TextArea和RichText文本类不包含此支持。您应该使用等效的基于Spark文本的控件替换这些控件。