На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Текст на русском языке... , ...в иноязычных ОС
      Цитата Navern @
      Попробовал протестировать программу под Windows Server 2003 (английская, без MUI), там вместо шрифтов вопросительные знаки.

      Это уже пора знать как аксиому. В Windows 2000, XP, 2003, Vista есть настройки для программ, не использующих юникод. В англоязычных системах по-умолчанию там стоит английский язык. В локализированных версиях язык локализации.

      Что нужно сделать? Изменить язык по-умолчанию для неюникодных программ на язык программы.
      Панель управления —> Язык и региональные стандарты, вкладка Дополнительно
      или Control Panel —> Regional And Language Options, вкладка Advanced.
      Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы.

      Это штатная возможность. Наоборот, следует избегать советов другого рода: таскать шрифты с программой, править реестр, менять системные файлы и т.п., так как это может создать ряд других проблем, вместо решения главной.
        Цитата Smike @
        Панель управления —> Язык и региональные стандарты, вкладка Дополнительно.
        Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы.

        А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? :huh:
        Сообщение отредактировано: e-moe -
          Цитата e-moe @
          А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? :huh:

          Смотря какие трехязычные...

          Для некоторых языков на самом деле используется одна и та же кодировка (для русского и украинского например – Windows-1251), так что установка в качестве основного любого из этих языков не скажется на возможности запускать программы с любым из этих языков интерфейса.

          Другое дело, если пользователю нужно запускать например еще и немецкие и польские программы... Тогда сложнее. Нужно попробовать вариант с несколькими пользователями, так как мне кажется что эта настройка для каждого пользователя отдельно задается, но я могу ошибаться.

          В большинстве же случаев с такой проблемой сталкиваются пользователи английской версии, которые пользуются русскоязычными программами без поддержки Unicode.

          Полное решение проблемы даст только полный переход на Юникод. Это можно сделать уже сейчас с помощью TNT Unicode Controls, либо подождать появления Unicode VCL в новой версии Delphi (обещается в этом году). Но такие приложения скорее всего будут работать только в юникодной среде, в отличие от TNT Unicode Controls.
            Цитата Smike @
            только в юникодной среде
            всмысле?
            Ведь даже для 98й винды майкрософт выпустила юникодную прослойку для АПИ.
            подробнее читать напр вот это: MSLU: Develop Unicode Applications for Windows 9x Platforms with the Microsoft Layer for Unicode (найти можнно в любом поисковике)
              unicows.dll — отдельная библиотека и она не позволяет автоматически запускать юникодные приложения в неюникодной среде. Приложение должно либо импортировать нужные функции прямо из unicows.dll, либо изменить стандартные импорты на импорты из unicows. Почитай в упомянутой тобой статье "Integrating MSLU". Поэтому необходимость в запуске юникодных приложений на Windows 9x требует дополнительных усилий со стороны разработчиков.
                Цитата e-moe @
                конечно, а как же без этого?

                Если в 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) вмешательство разработчика требуется меньше всего.
                  Цитата e-moe @
                  Цитата Smike @
                  Панель управления —> Язык и региональные стандарты, вкладка Дополнительно.
                  Выбираем нужный язык, перезагружаемся и наслаждаемся нормальным видом своей программы.

                  А если у юзера используются не только англо и русскоязычные но и еще и третеязычные(условно) программы? тупо поставить установки "под свою" программу? :huh:


                  На самом деле ОЧЕНЬ верное замечаниe - форумы 'наших' в Германии, Франции, ... полны жалобами тех, кто последовал такому совету, вот какие обычно плохие последствия бывают:
                  http://ourworld.compuserve.com/homepages/PaulGor/full_r.htm#nonEN

                  Поэтому - для НЕ-английских Windows - НЕ стОит сразу советовать такие глубоко-системные изменения, как смена системной кодовой страницы (system code page) - а именно это и происходит в том месте Панели Управления:

                  надо сначала попробовать 100% безопасный метод, и вот только если он не сработает, тогда - с открытыми глазами :wacko: - делать системные изменения.

                  Этот 100% безопасный метод - бесплатная утилита от Микрософта Applocale, вот про этот метод на русском: http://ourworld.compuserve.com/homepages/PaulGor/full_r.htm#App

                  :rolleyes:

                  P.S. Кстати, в Windows Vista опция смены системной кодовой страницы немного в другом месте -
                  вкладка "Административные", а не "Дополнительно"
                  Сообщение отредактировано: PaulGor -
                    Цитата PaulGor @
                    Этот 100% безопасный метод - бесплатная утилита от Микрософта Applocale, вот про этот метод на русском

                    Что-то пробовал я этой утилитой запускать немецкую программу на русской Windows XP — бестолку. Потребовалось все-таки выставлять язык по умолчанию для неюникодных приложений :(

                    Цитата PaulGor @
                    На самом деле ОЧЕНЬ верное замечаниe - форумы 'наших' в Германии, Франции, ... полны жалобами тех, кто последовал такому совету, вот какие обычно плохие последствия бывают:
                    http://ourworld.compuserve.com/homepages/P...ull_r.htm#nonEN

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

                    В общем, дельное замечение. Только однозначного решения тоже нет. Кроме как полный переход на юникод.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0278 ]   [ 16 queries used ]   [ Generated: 28.03.24, 21:36 GMT ]