Ms shell dlg linux

RC File Standards

Данная статья частично является переводом официальной вики.

Чтобы немного стандартизировать файлы ресурсов и поддержать вид Windows 2000+, нам необходимо следовать нескольким следующим правилам:

1. Всегда пользуйтесь шаблоном DIALOGEX а не DIALOG.

2. Установите флаг DS_SHELLFONT в параметре STYLE вашего диалогового окна, не используйте флаги DS_FIXEDSYS и/или DS_SETFONT.

Чередование шрифтов в списке свойств может вызвать визуальное раздражение. Вряд ли вы захотите, чтобы для кнопки «Дополнительно» использовался шрифт MS Sans Serif, а для кнопки «Применить» — Tahoma. Для избежания этой проблемы, менеджер свойств проверяет все страницы свойств. Если все они используют вид «Windows 2000», то и менеджер также использует вид «Windows 2000». Но если хотя бы одна страница не использует вид «Windows 2000», то страница свойств переключается в «классический» вид, а заодно конвертирует все страницы, использующие вид «Windows 2000» к «классическому» виду.

3. Установите шрифт «MS Shell Dlg» шрифтом диалогового окна.

4. Используйте шрифт «MS UI Gothic» в диалоговых окнах приложений на японском языке.

На Windows 9x, оба логических шрифта указывают на пиксельные шрифты для кодовой страницы. MS Shell Dlg обычно указывает на специфичную для кодовой страницы версию MS Sans Serif. MS Shell Dlg 2 указывает на специфичный для кодовой страницы пиксельный шрифт Tahoma. На Windows NT 4.0+ оба логических шрифта указывают на TrueType-шрифты для Unicode. MS Shell Dlg использует Microsoft Sans Serif для Латинских, Греческих, Кириллических, Арабских, Еврейских, и Тайских символов; MS UI Gothic для Японских; Gulim для Корейских; Simsun для Китайских упрощенных; PMinglu для Традиционных Китайских; и т.д. На Windows 2000 и поздних версиях: MS Shell Dlg 2 указывает на шрифт Tahoma, являющийся шрифтом по умолчанию во всей операционной системе. Приложение, которое работает только на этой операционной системе, может использовать в DS_SHELLFONT логический шрифт MS Shell Dlg 2, указывающий на шрифт Tahoma. Тем не менее, приложение, которое также работает на Windows NT 4.0, Windows 95, Windows 98 или Windows Me должно использовать в DS_SHELLFONT логический шрифт MS Shell Dlg, а не MS Shell Dlg 2. Символы, отсутствующие в Tahoma, будут отображены при помощи замены шрифтов. Главным преимуществом Tahoma перед Microsoft Sans Serif является то,что Tahoma имеет встроенный жирный шрифт. Его главный недостаток — на старых операционных системах он может быть не установлен, и может быть заменён менее выразительным шрифтом. В Windows XP, для традиционного китайского отображается китайское локализованное название «新細明體». (Полная запись FONT 9, «新細明體», FW_NORMAL, FALSE, 136 .) То же самое для упрощенного китайского , который использует шрифт «宋体». Тем не менее,один шрифт в виде другого, не может использоваться сейчас, так как мы в не используем локализованное имя шрифта (CORE-9638) и связывание шрифта еще не реализовано в полной мере. Смотрите на CORE-9566

5. Используйте шрифт 8 размера для Латинского, Греческого, Кириллического, Арабского, Еврейского, и Тайского шрифтов.

6. Используйте шрифт 9 размера для Японского шрифта.

7. Не используйте DS_3DLOOK. Он устарел и больше не используется.

8. При работе с языками, написание текста в которых ведётся справа налево (напр. иврит и арабский язык) используйте расширенный стиль WS_EX_LAYOUTRTL.

Источник

Using MS Shell Dlg and MS Shell Dlg 2

Windows is available in localized editions for many languages. However, the English-language edition can also be used to run applications written in languages other than English. This is true even when the script used for these languages is different, as when applications are written in Greek or Japanese. These applications require a user interface with dialog boxes, icons, and utilities that provide information in the application language, which might be different from the language being used in the current Windows user interface.

The problem in selecting the font for a user interface is obvious. For example, the shell font, also known as the system or default font, for English (United States) WindowsВ 98 is MS Sans Serif, while the shell font for Greek (Greece) WindowsВ 98 is MS Sans Serif Greek. For Japanese (Japan) WindowsВ 98, the shell font is MS UI Gothic. These character sets cannot be directly mapped to each other. Replacing MS Sans Serif with MS Sans Serif Greek when the locale is set to Greek (Greece) does not allow existing applications to run adequately or to display Greek characters in system menus, dialog boxes, and edit controls.

Windows solves this problem by using the MS Shell Dlg and MS Shell Dlg 2 logical fonts to allow selection of the appropriate font for script display. This section addresses several programming considerations for using the logical fonts to implement dialog boxes, menus, and the like for flexible user interfaces that display well on all supported Windows operating systems and across all languages. For more information, see Font Creation and Selection. See also Multilingual User Interface for a discussion of the use of the Multilingual User Interface (MUI) technology in creating user interfaces for your multilingual applications.

Читайте также:  Рабочее окружение для рабочего стола linux

About the Logical Fonts

The MS Shell Dlg and MS Shell Dlg 2 logical fonts are essentially face names used for mapping to enable support for locales/cultures having characters that are not contained in code page 1252, the Windows character set for the United States and Western Europe. MS Shell Dlg maps to the default shell font associated with the current culture/locale and supports the classic Windows desktop look. MS Shell Dlg 2 face name was introduced in WindowsВ 2000 to support the look that was introduced with WindowsВ 2000.

For example, if your application uses MS Shell Dlg or MS Shell Dlg 2 for its dialog boxes, a localization team creating Greek-language resources for your application can focus on translating text. They don’t have to be concerned with issues such as the distinction between MS Sans Serif and MS Sans Serif Greek.

The fonts generated by MS Shell Dlg and MS Shell Dlg 2 are different on different Windows versions. Therefore, you should ensure that your user interface elements display well on all platforms.

Handle Hard-Coded Font Names

The use of Unicode allows applications to deal with thousands of different characters, but most fonts do not cover all of the Unicode character set. Your applications should not hard-code font names. One reason is that hard-coding a font name that displays characters for one language and not characters for another language causes all localized text in the second language to display incorrectly. Another reason not to hard-code font names is that the desired font might not be loaded on the operating system that is displaying application text.

The best way to treat font names is to consider them as localizable resources. Using a logical font solves the problem of running your interface using any language on WindowsВ NT or WindowsВ 2000, for any language. Setting a font name as a localizable resource makes it possible for your localizer to change the font for the localized user interface.

Handle Hard-Coded Font Sizes

Some scripts are complex and require a large number of pixels to display properly. For example, most English characters display on a 5×7 grid, but Japanese characters need at least a 16×16 grid to be clearly seen. Whereas Chinese needs a 24×24 grid, Thai only needs 8 pixels for width but at least 22 pixels for height. It is easy to understand that some characters might not be legible at a small font size.

Your application user interface should treat font sizes as localizable resources. Using a logical font solves the problem of running your interface using any language on WindowsВ NT or WindowsВ 2000, for any language. Setting a font size as a localizable resource allows your localizer to change the font for the localized user interface.

Map the Logical Fonts

Each of the logical fonts is mapped by an entry in the registry to the appropriate shell font for the currently active locale. When one of the logical fonts is used, Windows switches to the font for the currently selected locale at runtime. This operation allows the correct display of the English (United States) Windows user interface, as well as characters not in code page 1252. Thus currently shipping localized applications can run on the English (United States) version of Windows without modification.

Each Windows computer maps MS Shell Dlg and MS Shell Dlg 2 to an appropriate physical font, based on the defined language for non-Unicode programs, described in NLS Terminology. The actual mappings are stored in the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes.

Font Mapping on Windows Me/98/95

MS Shell Dlg generally maps to a code page-specific version of MS Sans Serif.

Font Mapping on Windows NT 4.0

MS Shell Dlg maps to MS Sans Serif for Western and Central European, Greek, Turkish, Baltic and languages using Cyrillic script; MS UI Gothic for Japanese; Gulim for Korean; Simsun for Simplified Chinese; PMinglu for Traditional Chinese; etc.

Font Mapping on Windows 2000, Windows XP, Windows Server 2003, Windows Vista and Windows 7

Both logical fonts map to Unicode-based TrueType fonts. MS Shell Dlg uses Microsoft Sans Serif (distinct from MS Sans Serif) if the install language is not Japanese. MS Shell Dlg maps to MS UI Gothic if the install language is Japanese.

On WindowsВ XP MUI systems, MS Shell Dlg maps to MS UI Gothic only when the system locale and UI language are set to Japanese. Otherwise, MS Shell Dlg maps to Microsoft Sans Serif.

On WindowsВ Vista and WindowsВ 7, MS Shell Dlg maps to MS UI Gothic if the machine default UI language is set to Japanese (regardless of the install language). MS Shell Dlg maps to Microsoft Sans Serif if the machine default UI language is set to a language other than Japanese.

Читайте также:  Драйвера nvidia geforce gtx 1660 для windows 10

MS Shell Dlg 2 simply uses the Tahoma font regardless of language. The main advantage of Tahoma over Microsoft Sans Serif is that Tahoma has a native bold font face. Its main disadvantage is that older operating systems might not have it installed, and might substitute a less attractive font.

Characters that are not implemented in Tahoma or Microsoft Sans Serif may be implemented in other Windows fonts that are used for text display in user interfaces. Depending on what controls or APIs are used to display text, various mechanisms such as font linking may be used by the system to automatically select such fonts for displaying those characters.

Applications can use either Microsoft Sans Serif or Tahoma explicitly, and save the level of indirection involved in using MS Shell Dlg or MS Shell Dlg 2. Because of font linking, specifying Microsoft Sans Serif or Tahoma provides appropriate glyphs for all languages.

Use MS Shell Dlg for a Non-English Application on Windows Me/98/95

On WindowsВ Me/98/95, MS Shell Dlg is not intended for use with a static, non-English user interface application that runs when the user has chosen a locale with a different Windows base character set. In this case, the application user interface language might not be supported with the font that is substituted for MS Shell Dlg.

For example, if the user is using a German-language version of Windows and wants to install a non-Unicode Greek-language application, the user attempts to change the locale to Greek (Greece). This action resets MS Shell Dlg to a Greek font, but this font does not contain all the glyphs necessary to display in German. Therefore, any non-ASCII characters in the German-language user interface will not display properly. To support this scenario, an application has to set MS Shell Dlg to a font that contains both the Western European and the Greek glyphs.

Источник

Использование MS Shell Dlg и MS Shell Dlg 2

Windows доступен в локализованных выпусках для многих языков. Однако на английском языке можно также использовать для запуска приложений, написанных на языках, отличных от английского. Это справедливо даже в том случае, если скрипт, используемый для этих языков, отличается, как и при написании приложений на греческом или японском языке. для этих приложений требуется пользовательский интерфейс с диалоговыми окнами, значками и служебными программами, предоставляющими информацию на языке приложения, который может отличаться от языка, используемого в текущем Windows пользовательском интерфейсе.

Проблема выбора шрифта для пользовательского интерфейса очевидна. например, шрифт оболочки, также известный как система или шрифт по умолчанию для английского языка (США) Windows 98, составляет ms sans serif, а шрифт оболочки для греческого (греция) Windows 98 — это ms sans Serif греческая. для японского (япония) Windows 98, шрифт оболочки — MS UI Gothic. Эти наборы символов не могут быть напрямую сопоставлены друг с другом. Замена MS Sans Serif на MS Sans Serif греческая, если языковой стандарт установлен в греческий (Греция), не позволяет существующим приложениям работать надлежащим образом или отображать греческие символы в системных меню, диалоговых окнах и элементах управления редактирования.

Windows решает эту проблему, используя логические шрифты ms shell dlg и ms shell dlg 2, чтобы разрешить выбор соответствующего шрифта для вывода сценария. в этом разделе рассматриваются некоторые рекомендации по программированию для использования логических шрифтов для реализации диалоговых окон, меню и, например, для гибких пользовательских интерфейсов, которые хорошо отображаются на всех поддерживаемых Windows операционных системах и на всех языках. Дополнительные сведения см. в разделе Создание и выбор шрифта. см. также многоязычный пользовательский интерфейс для обсуждения использования технологии многоязычный пользовательский интерфейс (MUI) при создании пользовательских интерфейсов для многоязычных приложений.

О логических шрифтах

логические шрифты ms shell dlg и ms shell dlg 2 по сути представляют собой имена, используемые для сопоставления, чтобы обеспечить поддержку национальных настроек или языков и региональных параметров, содержащих символы, не содержащиеся в кодовой странице 1252, Windows кодировке для США и западной европы. MS Shell Dlg сопоставляется со шрифтом оболочки по умолчанию, связанным с текущим языком и региональными параметрами, и поддерживает классическое представление Windows desktop. имя лица MS Shell Dlg 2 было введено в Windows 2000 для поддержки вида, представленного в Windows 2000.

Например, если приложение использует MS Shell Dlg или MS Shell Dlg 2 для диалоговых окон, группа локализации, создающая для приложения языки для греческого языка, может сосредоточиться на преобразовании текста. Они не должны беспокоиться о таких проблемах, как различие между MS Sans Serif и MS Sans Serif греческого языка.

шрифты, создаваемые ms shell dlg и ms shell dlg 2, отличаются в разных версиях Windows. Поэтому следует убедиться, что элементы пользовательского интерфейса хорошо отображаются на всех платформах.

Обработайте Hard-Coded имена шрифтов

Использование Юникода позволяет приложениям работать с тысячами различных символов, но большинство шрифтов не охватывает весь набор символов Юникода. Приложения не должны жестко кодировать названия шрифтов. Одна из причин заключается в том, что жестко закодировать имя шрифта, которое отображает символы для одного языка, а не символы для другого языка, приведет к неправильному отображению локализованного текста на втором языке. Другая причина, по которой не нужно жестко кодировать шрифты, заключается в том, что нужный шрифт может не загружаться в операционной системе, отображающей текст приложения.

Читайте также:  Windows key что это за клавиша

Лучший способ считать имена шрифтов — рассматривать их как локализуемые ресурсы. использование логического шрифта решает проблему запуска интерфейса с помощью любого языка на Windows NT или Windows 2000 для любого языка. Задание имени шрифта в качестве локализуемого ресурса позволяет вашему локализаторам изменять шрифт для локализованного пользовательского интерфейса.

Маркеры Hard-Coded размеров шрифтов

Некоторые сценарии являются сложными и занимают правильное отображение большого количества пикселей. Например, большинство символов английского языка отображаются в сетке 5×7, но для японских символов требуется четкое отображение по крайней мере 16-разрядной таблицы. В то время как в китайском случае требуется сетка 24×24, для тайского языка требуется 8 пикселей, а для высоты — по крайней мере 22 пикселя. Легко понять, что некоторые символы могут быть неудобочитаемыми при небольшом размере шрифта.

Пользовательский интерфейс приложения должен рассматривать размеры шрифтов как локализуемые ресурсы. использование логического шрифта решает проблему запуска интерфейса с помощью любого языка на Windows NT или Windows 2000 для любого языка. Установка размера шрифта в качестве локализуемого ресурса позволяет вашему локализаторам изменять шрифт для локализованного пользовательского интерфейса.

Сопоставьте логические шрифты

Каждый из логических шрифтов сопоставляется с записью в реестре с соответствующим шрифтом оболочки для текущего активного языкового стандарта. при использовании одного из логических шрифтов Windows переключается на шрифт для выбранного в данный момент языкового стандарта во время выполнения. эта операция позволяет правильно отобразить английский (США) Windows пользовательский интерфейс, а также символы, не находящуюся в кодовой странице 1252. таким путем, в настоящее время можно использовать локализованные приложения на английском (США) версии Windows без изменения.

каждый Windows компьютер сопоставляет ms shell dlg и ms shell dlg 2 с соответствующим физическим шрифтом на основе определенного языка для программ, не поддерживающих юникод, описанных в терминологии NLS. фактические сопоставления хранятся в разделе реестра HKEY _ LOCAL _ MACHINE \ Software \ Microsoft \ Windows NT \ текущая версия \ фонтсубститутес.

сопоставление шрифтов в Windows Me/98/95

MS Shell Dlg обычно соответствует версии MS Sans Serif, зависящей от кодовой страницы.

сопоставление шрифтов в Windows NT 4,0

MS Shell Dlg сопоставляется с засечками MS Sans Serif для западных и центральных европейских, греческих, турецких, Балтийская и языков с использованием кириллицы Script; MS UI Gothic для японского; Гулим для корейского языка; SimSun для упрощенного китайского языка; Пминглу для традиционного китайского языка; 123.

сопоставление шрифтов в Windows 2000, Windows XP, Windows Server 2003, Windows Vista и Windows 7

Оба логических шрифта сопоставляются с шрифтами TrueType на основе Юникода. В MS Shell Dlg используется Microsoft Sans Serif (отличный от MS Sans Serif), если язык установки не является японским. Если язык установлен на японском языке, MS Shell Dlg сопоставляется с MS UI Gothic.

в системах Windows XP MUI, ms Shell Dlg сопоставляется с ms UI Gothic, только если язык системы и язык пользовательского интерфейса установлены в японский. В противном случае MS Shell Dlg сопоставляется с Microsoft Sans Serif.

в Windows Vista и Windows 7, ms Shell Dlg сопоставляется с ms ui Gothic, если язык пользовательского интерфейса по умолчанию для компьютера установлен в японский (независимо от языка установки). MS Shell Dlg сопоставляется с Microsoft Sans Serif, если в качестве языка пользовательского интерфейса по умолчанию выбран язык, отличный от японского.

В MS Shell Dlg 2 просто используется шрифт Tahoma независимо от языка. Основным преимуществом Tahoma по сравнению с Microsoft Sans Serif является то, что Tahoma имеет собственный полужирный шрифт. Его основной недостаток заключается в том, что старые операционные системы могут не устанавливаться и могут заменять менее привлекательным шрифтом.

символы, не реализованные в Tahoma или Microsoft Sans Serif, могут быть реализованы в других Windows шрифтов, используемых для вывода текста в пользовательских интерфейсах. В зависимости от того, какие элементы управления или интерфейсы API используются для отображения текста, система может использовать различные механизмы, такие как связывание шрифтов , для автоматического выбора таких шрифтов для отображения этих символов.

Приложения могут явно использовать либо Microsoft Sans Serif, либо Tahoma, и сохранять уровень косвенного обращения, вовлеченного в использование MS Shell Dlg или MS Shell Dlg 2. Из-за того, что при связывании шрифтов указание Microsoft Sans Serif или Tahoma предоставляет соответствующие глифы для всех языков.

использовать MS Shell Dlg для приложения, отличного от английского, на Windows Me/98/95

в Windows Me/98/95 MS Shell Dlg не предназначен для использования со статическим приложением пользовательского интерфейса, отличным от английского, которое выполняется, когда пользователь выбрал языковой стандарт с другой базовой кодировкой Windows. В этом случае язык пользовательского интерфейса приложения может не поддерживаться шрифтом, который подставляется для MS Shell Dlg.

например, если пользователь использует немецкую версию Windows и хочет установить приложение на греческом языке не в юникоде, пользователь пытается изменить языковой стандарт на греческий (греция). Это действие сбрасывает MS Shell Dlg до греческого шрифта, но этот шрифт не содержит все глифы, необходимые для просмотра на немецком языке. Таким образом, любые символы, отличные от ASCII, в пользовательском интерфейсе на немецком языке будут отображаться неправильно. Для поддержки этого сценария приложение должно установить для MS Shell Dlg шрифт, который содержит как западноевропейские, так и греческие глифы.

Источник

Оцените статью