Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.100.210] |
|
Сообщ.
#1
,
|
|
|
Цитата Navern @ Попробовал протестировать программу под Windows Server 2003 (английская, без MUI), там вместо шрифтов вопросительные знаки. Это уже пора знать как аксиому. В Windows 2000, XP, 2003, Vista есть настройки для программ, не использующих юникод. В англоязычных системах по-умолчанию там стоит английский язык. В локализированных версиях язык локализации. Что нужно сделать? Изменить язык по-умолчанию для неюникодных программ на язык программы. Панель управления —> Язык и региональные стандарты, вкладка Дополнительно или Control Panel —> Regional And Language Options, вкладка Advanced. Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы. Это штатная возможность. Наоборот, следует избегать советов другого рода: таскать шрифты с программой, править реестр, менять системные файлы и т.п., так как это может создать ряд других проблем, вместо решения главной. |
Сообщ.
#2
,
|
|
|
Цитата Smike @ Панель управления —> Язык и региональные стандарты, вкладка Дополнительно. Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы. А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? |
Сообщ.
#3
,
|
|
|
Цитата e-moe @ А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? Смотря какие трехязычные... Для некоторых языков на самом деле используется одна и та же кодировка (для русского и украинского например – Windows-1251), так что установка в качестве основного любого из этих языков не скажется на возможности запускать программы с любым из этих языков интерфейса. Другое дело, если пользователю нужно запускать например еще и немецкие и польские программы... Тогда сложнее. Нужно попробовать вариант с несколькими пользователями, так как мне кажется что эта настройка для каждого пользователя отдельно задается, но я могу ошибаться. В большинстве же случаев с такой проблемой сталкиваются пользователи английской версии, которые пользуются русскоязычными программами без поддержки Unicode. Полное решение проблемы даст только полный переход на Юникод. Это можно сделать уже сейчас с помощью TNT Unicode Controls, либо подождать появления Unicode VCL в новой версии Delphi (обещается в этом году). Но такие приложения скорее всего будут работать только в юникодной среде, в отличие от TNT Unicode Controls. |
Сообщ.
#4
,
|
|
|
Цитата Smike @ всмысле?только в юникодной среде Ведь даже для 98й винды майкрософт выпустила юникодную прослойку для АПИ. подробнее читать напр вот это: MSLU: Develop Unicode Applications for Windows 9x Platforms with the Microsoft Layer for Unicode (найти можнно в любом поисковике) |
Сообщ.
#5
,
|
|
|
unicows.dll — отдельная библиотека и она не позволяет автоматически запускать юникодные приложения в неюникодной среде. Приложение должно либо импортировать нужные функции прямо из unicows.dll, либо изменить стандартные импорты на импорты из unicows. Почитай в упомянутой тобой статье "Integrating MSLU". Поэтому необходимость в запуске юникодных приложений на Windows 9x требует дополнительных усилий со стороны разработчиков.
|
Сообщ.
#6
,
|
|
|
Если в MFC Application в MS Visual Studio выставить Use Unicode libraries, то будут использоваться *W-варианты функций вместо *A (например, DrawTextW вместо DrawTextA). Со всеми вытекающими (работать будет только в Windows 2000+). Вероятно так же будет и в Unicode VCL. В TNT Unicode Controls стандартные API-вызовы заменяются заглушками, которые в зависимости от "юникодности" ОС вызывают Ansi или Wide-вариант функций Windows API. То есть во всех этих вариантах (кроме MSLU) вмешательство разработчика требуется меньше всего. |
Сообщ.
#7
,
|
|
|
Цитата e-moe @ Цитата Smike @ Панель управления —> Язык и региональные стандарты, вкладка Дополнительно. Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы. А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? На самом деле ОЧЕНЬ верное замечаниe - форумы 'наших' в Германии, Франции, ... полны жалобами тех, кто последовал такому совету, вот какие обычно плохие последствия бывают: http://ourworld.compuserve.com/homepages/PaulGor/full_r.htm#nonEN Поэтому - для НЕ-английских Windows - НЕ стОит сразу советовать такие глубоко-системные изменения, как смена системной кодовой страницы (system code page) - а именно это и происходит в том месте Панели Управления: надо сначала попробовать 100% безопасный метод, и вот только если он не сработает, тогда - с открытыми глазами - делать системные изменения. Этот 100% безопасный метод - бесплатная утилита от Микрософта Applocale, вот про этот метод на русском: http://ourworld.compuserve.com/homepages/PaulGor/full_r.htm#App P.S. Кстати, в Windows Vista опция смены системной кодовой страницы немного в другом месте - вкладка "Административные", а не "Дополнительно" |
Сообщ.
#8
,
|
|
|
Цитата PaulGor @ Этот 100% безопасный метод - бесплатная утилита от Микрософта Applocale, вот про этот метод на русском Что-то пробовал я этой утилитой запускать немецкую программу на русской Windows XP — бестолку. Потребовалось все-таки выставлять язык по умолчанию для неюникодных приложений Цитата PaulGor @ На самом деле ОЧЕНЬ верное замечаниe - форумы 'наших' в Германии, Франции, ... полны жалобами тех, кто последовал такому совету, вот какие обычно плохие последствия бывают: http://ourworld.compuserve.com/homepages/P...ull_r.htm#nonEN Системе как раз все равно, она полностью является юникодной, вплоть до ноутпада. Хотя проблемы могут быть, согласен. В общем, дельное замечение. Только однозначного решения тоже нет. Кроме как полный переход на юникод. |