Итак, я работаю над быстрой утилитой, которая позволяет легко редактировать файлы TMX. TMX - это стандарт на основе XML для хранения многоязычных переводов. В любом случае, я импортирую TMX в приложение Adobe AIR через ссылку на файл, затем собираю поток файлов, добавляю символы UTF-8 в строку, а затем эту строку в объект XML. Так:
var stream:FileStream = new FileStream();
stream.open(event.target /*file data*/ as File, FileMode.READ);
var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
var tmxXml:XML = new XML(fileData);
Но вот интересная часть. Если fileData
загружено так:
<tuv xml:lang="en">
<seg>About Us</seg>
</tuv>
XML-код Flex интерпретирует его следующим образом:
<tuv aaa:lang="en" xmlns:aaa="http://www.w3.org/XML/1998/namespace">
<seg>
About Us
</seg>
</tuv>
Ой, интересно! Атрибут xml:lang
становится aaa:lang="en" xmlns:aaa="http://www.w3.org/XML/1998/namespace"
. Из моего краткого исследования, есть некоторый прецедент для этого, но это несколько неудачное предположение. Без создания чрезмерных правил замены строк, есть ли способ обойти это?