PDA

Просмотр полной версии : mxmlc и каракули.


Shootin
18.04.2009, 13:44
Работаю с четвертым флексом (нижеописанное у меня наблюдается и в третьем).
Очень мешают следующие каракули:

http://panawalk.com/trash/poo.gif

Второй же флекс в этом случае говорит так:
http://panawalk.com/trash/foo.gif

Создается впечатление, что третий и четвертый флексы пытаются говорить на русском языке, но где-то нестыковка в кодировках.

Вопрос.

Где, где же тот краник, который надо повернуть флексу, чтоб он начал говорить со мной на английском языке? Ну или пусть на русском, главное чтоб понятными символами.

wvxvw
18.04.2009, 19:28
Они пытаются по-русски, но в юникодах... поищи "локализация сообщений об ошибках", по-моему на форуме где-то всплывала эта тема...

Да, и еще, как вариант, проголосуй за этот тикет:
http://bugs.adobe.com/jira/browse/FP-1107
:)

Да, и еще, как вариант, можно самому скомпилировать флексовый компилятор и в нем заменить русифицированые ресурсы английскими
trunk\modules\compiler\src\java\flex2
там будут файлы типа:
compiler_{язык}.properties
configuration_{язык}.properties
и т.д. найти те, которые с "ru" и заменить в них текст обратно на английский (скопировать из аналогичного файла с "en").

Shootin
18.04.2009, 21:01
Мне может изменять память но я вроде как делал так... где-то в винде менял кодовую страницу для какой-то группы приложений, которая что-то умеет или чего-то не умеет, в общем какая-то особняком выделенная группа в винде.
после этого вроде бы стали понятными буквами писаться мессаги.. правда все остальное в винде стало малопонятным)

wvxvw
18.04.2009, 21:09
Control Panel > Regional and Language Options > Regional Options > выбрать English (United States)
Control Panel > Regional and Language Options > Advanced > выбрать Russian
:)

EDIT: А хотя... не... не поможет... оно ж в юникодах... ну тогда не знаю... просто все перевести на английский...

Alex Lexcuk
19.04.2009, 01:02
>>оно ж в юникодах...
Оно не в юникодах, а в виндовой кодировке, не помню, точно как она называется. Я пробовал переводилку делать на С++

//---------------------------------------------------------------------------
#include <stdio.h>
#include <process.h>
#pragma hdrstop

//---------------------------------------------------------------------------
long filesize(FILE *stream);
#pragma argsused
int main(int argc, char* argv[])
{
long i,fSize;
FILE *file;
unsigned char ch,ch10;
int loop;

if ((file = fopen("D:\\FLEX\\compLog.txt","r"))==NULL){
puts("Íå ìîãó îòêðûòü ôàéë");
}
else{
fSize = filesize(file);
for (i=0;i<fSize;i++){
ch=getc(file);
if (ch10==10) if (ch==255) break;
ch10 = ch;

if (ch>=178) if (ch<=239) ch=ch-64;
if (ch>=240) ch=ch-16;

printf("%c",ch);
}

//printf("Filesize of MYFILE.TXT is %ld bytes\n", filesize(file));
fclose(file);
ch = getchar();
}
return 0;

}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
long filesize(FILE *stream)
{
long curpos, length;

curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;

}

Ниче так, работает, толк от нее сомнительный, для удобства делал через bat файл

C:\flex_sdk_4\bin\mxmlc.exe D:\ans\Doc.as -debug=true -incremental=true -benchmark=false -target-player 10 > D:\FLEX\compLog.txt 2>&1
D:\FLEX\readLog.exe D:\FLEX\compLog.txt

Вот какие ошибки выводятся
http://www.murmadillo.tut.su/m/fl_ru.jpg

wvxvw
19.04.2009, 01:36
А... значит они тoлько в юникодах хранятся... а выводятся уже в другой кодировке...
mxml.builder.ComponentBuilder.UnknownNamespace=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d ${namespace} \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 ${text} (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).
mxml.builder.ComponentBuilder.UnknownAttribute=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 "${name}" \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 ${type}.
mxml.builder.ComponentBuilder.UnknownQualifiedAttribute=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 "${localPart}" \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d "${namespace}" \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 ${type}.
mxml.builder.ComponentBuilder.NonContiguous=\u041d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043c\u0435\u0436\u043d\u044b\u043c\u0438.
Это для примера, как выглядят файлы локализации сообщений об ошибках...

neonix2.0b
26.04.2009, 16:46
да можно проще. в свойствах окна консоли ставим шрифт Lucida. и пишем в ней
chcp 1251
это смена кодовой страницы. после этого все нормально видно

можно создать какой-нить build.bat приблизительно со следующим содержанием:
chcp 1251
mxmlc.exe ..........
pause

все в принципе. кодировка по умолчанию dos866, а оно пишет в cp1251, во всяком случае flex sdk 3.3
и на юникод это совсем не похоже, иначе были бы не каракули а непечатаемые символы\квадратики

amby
13.06.2009, 13:18
А можно ещё проще.

http://garbage-collector.ru/2008/06/11/setting_locale_flex_3_sdk/