MSI Lab - Форум по русификации
Основные форумы => RusMe - РусМи! => Тема начата: Hellbringer от 28 Августа 2011, 22:51:05
-
Столкнулся с проблемой перевода Adobe Audition CS5.5. Единственные файлы, похожие по содержанию на те, которые надо переводить лежат в C:\Program Files (x86)\Adobe\Adobe Audition CS5.5\dict и называются au_zdictionary_en_US.txt, в зависимости от языка название может меняться. Попробовал скорректировать в документе слово 'File', сохранил, но результата нет, загружается по английски.
-
Hellbringer, возможно, что файл au_zdictionary_en_US.txt используется как файл-образец для переводчиков, и соответственно, английские строки подгружаются не с него, а с самого ядра и сопутствующих DLL.
Несколько лет назад я переводил After Effects от Adobe с такой же системой локализации, и там в помине не было текстового файла *_en_US.txt. Английские строки загружались непосредственно с самого исполняемого файла и DLL. И чтобы произвести их парсинг в TXT, мне пришлось попросить одного человека написать вот такую программку:
© 2008 Entrase
void CAdobeStringExtractorDlg::OnBnClickedOpen()
{
CFileDialog dia(TRUE,NULL,NULL,OFN_HIDEREADONLY,"",NULL);
status_text = "Opening cancelled.";
if(dia.DoModal() == IDOK )
{
CString s = dia.GetPathName();
CFile f(s, CFile::modeRead);
UINT filesize = f.GetLength();
unsigned char* mf = new unsigned char[filesize];
f.Read(mf, filesize);
f.Close();
CFileDialog sd(FALSE,NULL,NULL,OFN_OVERWRITEPROMPT,"",NULL);
status_text = "Saving cancelled.";
if (sd.DoModal() == IDOK) {
unsigned int counter = 0;
CFile sf(sd.GetPathName(), CFile::modeWrite | CFile::modeCreate);
for (unsigned int i = 0; i < filesize; i++) {
if (mf[i] == 0x24 && mf[i + 1] == 0x24 && mf[i + 2] == 0x24 && mf[i + 3] == 0x2f) {
counter++;
unsigned char zs = 0x22;
sf.Write(&zs, sizeof(zs));
for (unsigned int j = 0; mf[i + j] != 0; j++) {
zs = mf[i + j];
/*if (zs = 0x22) {
unsigned char bslash = 0x5C;
sf.Write(&bslash, sizeof(bslash));
}*/
sf.Write(&zs, sizeof(zs));
}
zs = 0x22;
sf.Write(&zs, sizeof(zs));
zs = 0x0D;
sf.Write(&zs, sizeof(zs));
zs = 0x0A;
sf.Write(&zs, sizeof(zs));
}
}
status_text.Format("Done. Total: %d", counter);
//sf.Write(mf, filesize);
sf.Close();
}
delete[] mf;
}
UpdateData(0);
}
Как Вам следует поступить: делайте перевод, например, под кодом fr-FR. А чтобы потом запустить программу с "французским" интерфейсом, надо будет подставить ключ /sl "1036" (1036 — код французского языка) в командную строку ярлыка.
Лирическое отклонение:
Однако, Вы — VIP-пользователь!
Пользователь №: 15000
-
У меня стоит фотошоп CS.5, причём язык выбирается из настроек. Здесь же, он выбирается только при установке (выбрал русский). Но т.к. версия не локализована, то переведены лишь установочные окошки и окно регистрации. Трюк с ярлыком результата не дал - подгружается английская(!) версия(скрин 4). Беглый просмотр файла ничего не дал, единственное что похоже на текст (скрин 1) является как раз ресурсными данными (скрин 3). Анализ ресурсов всех файлов в папке ничего не дал (скрин 2), в dll-ках в основном мусор, а там, где есть строковые таблицы, они слишком маленькие, и слов типа File, View и т.п. там нет. Плюс поверхностный поиск в реестре "au_zdictionary_en_US.txt", "Adobe Audition En" не дал результатов. Поиск по "Aobe Audition" выдал несколько интересных результатов, похожих на (скрин 5). Оно?
-
Hellbringer
в dll-ках в основном мусор, а там, где есть строковые таблицы, они слишком маленькие, и слов типа File, View и т.п. там нет
Естественно, этих строк нет в ресурсах. Они "спрятаны" в самом ядре EXE и DLL (данные строки можно увидеть в HEX-редакторе).
Для их локализации воспользуйтесь программой Radialix (http://www.radialix.ru/).
-
Поковырялся в некоторых файлах и в AuUI.dll нашёл кое-что (Скрин 1). Попробую править файл.
Файл оказался правильным! Как бы его теперь отредактировать, попробовал править, но исчезают все менюшки, которые идут после русского слова! (Скрин 2, 3)
-
Всё, я разобрался с переводом, тему можно закрыть =)
Кнопки "спасибо" нет =)