Локализация ресурсов и UNICODE
От: typename  
Дата: 29.11.01 07:31
Оценка:
Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.

И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!

Заранее всем спасибо, особенно, если кто-нибудь пошлет эту утилиту UCONVERT и расскажет про ресурсы UNICODE.
Re: Локализация ресурсов и UNICODE
От: Alex Fedotov США  
Дата: 29.11.01 08:17
Оценка:
Здравствуйте typename, Вы писали:

T>Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.


Насколько я знаю, resource compiler не понимает файлы в Unicode, а текущий набор символов переключается с помощью #pragma code_page. Если довольно старая статья в MSDN KB, не знаю, насколько она соответствует действительности:

Q106065 Development Tools Do Not Accept Unicode Text
http://support.microsoft.com/support/kb/articles/Q106/0/65.asp

Утилита UCONVERT поставляется в составе Platform SDK.
-- Alex Fedotov
Re: Локализация ресурсов и UNICODE
От: Willi  
Дата: 29.11.01 08:23
Оценка:
Здравствуйте typename, Вы писали:

T>Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.


Не совсем понятно что значит "перевести файлы ресурсов в UNICODE"
Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.

T>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!


А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.
\/\/i||i
Re[2]: Локализация ресурсов и UNICODE
От: Аноним  
Дата: 29.11.01 14:52
Оценка:
Здравствуйте Willi, Вы писали:

W>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE"

W>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.

T>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!


W>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.

С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.

Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
Re[2]: Локализация ресурсов и UNICODE
От: typename  
Дата: 29.11.01 14:53
Оценка:
Здравствуйте Willi, Вы писали:

W>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE"

W>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.

T>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!


W>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.

С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.

Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
Re[3]: Локализация ресурсов и UNICODE
От: Willi  
Дата: 29.11.01 15:02
Оценка:
Здравствуйте typename, Вы писали:

T>Здравствуйте Willi, Вы писали:


W>>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE"

W>>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
T>А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.

Судя по всему они не только под Win2000 не отображаются, а везде.
А неотображаются потому что язык ресурса неправильно указан.
Правой кнопкой по ресурсу, Properties, в комбобоксе Langage укажи Russian

T>>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!


W>>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.

T>С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.

T>Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?


Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу
на какой-нить экзотический язык ( китайский например )
А для русского это совсем не обязательно.
\/\/i||i
Re[4]: Локализация ресурсов и UNICODE
От: Vodka  
Дата: 29.11.01 15:34
Оценка:
Здравствуйте Willi, Вы писали:

W>Здравствуйте typename, Вы писали:


T>>Здравствуйте Willi, Вы писали:


[skip]

T>>Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?


W>Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу

W>на какой-нить экзотический язык ( китайский например )
W>А для русского это совсем не обязательно.

NT (читай 2000/XP) побысрее работает с UNICODE (т.к. не тратит время на преобразование ANSI -> UNICODE). Но ИМХО не очень много приложений найдется, для которых этот выигрыш в скорости будет значительным.
Re[5]: Локализация ресурсов и UNICODE
От: Willi  
Дата: 29.11.01 15:39
Оценка:
Здравствуйте Vodka, Вы писали:

V>NT (читай 2000/XP) побысрее работает с UNICODE (т.к. не тратит время на преобразование ANSI -> UNICODE). Но ИМХО не очень много приложений найдется, для которых этот выигрыш в скорости будет значительным.


Совершенно справедливо
\/\/i||i
Re[4]: Локализация ресурсов и UNICODE
От: typename  
Дата: 29.11.01 16:37
Оценка:
Здравствуйте Willi, Вы писали:

W>Судя по всему они не только под Win2000 не отображаются, а везде.

W>А неотображаются потому что язык ресурса неправильно указан.
W>Правой кнопкой по ресурсу, Properties, в комбобоксе Langage укажи Russian
И так указан. Но никто не сказал, что в NT системным языком должен быть установлен русский. Если программа пишется в UNICODE, то она отображается независимо от системного языка. Мне это и нужно.

W>Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу

W>на какой-нить экзотический язык ( китайский например )
W>А для русского это совсем не обязательно.
К сожалению, для меня обязательно. Это — чуть ли не единственный способ заставить русские буквы отображаться на английских системах. Так что придется решать проблему с конвертированием ресурсов в UNICODE.

Так что, может кто-нибудь выслать утилиту UCONVERT?
Re[5]: Локализация ресурсов и UNICODE
От: Willi  
Дата: 30.11.01 10:05
Оценка:
Здравствуйте typename, Вы писали:

T>И так указан. Но никто не сказал, что в NT системным языком должен быть установлен русский. Если программа пишется в UNICODE, то она отображается независимо от системного языка. Мне это и нужно.


Да действительно. Признаю, об этом я не знал.
\/\/i||i
Re[5]: Локализация ресурсов и UNICODE
От: ламмму Украина http://itjob.kharkov.ua
Дата: 05.05.08 14:28
Оценка:
up
<b>bold text</b>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.