Visual Studio 2013. Если язык операционной системы отличается от английского, то почему-то в Microsoft Help Viewer начинает сбоить оформление.
Так, например, шрифт становится Batang, что очень сильно напрягает (смотреть изображение в отдельном окне, если вдруг браузер сглаживает изображение, тогда будет понятно, в чем проблема):
Разработчики не планируют в текущей версии HelpViewer исправлять косяк со шрифтами, поэтому пока нашел два способа для его ручного исправления.
Мое решение проблемы в конце статьи.
1. Cпособ с изменением стилей для IE
- Создаем файл ie.css и кладем его куда-нибудь (например в папку C:\Program Files (x86)\Microsoft Help Viewer\v2.1\)
- В этот файл нужно вставить код:
body { font-family: "Segoe UI", Verdana, Arial; } .codeSnippetContainerCode pre { font-family: Consolas, Courier, monospace; } span.code { font-family: Monospace, Courier New, Courier; }
- Файл сохранить и запустить Internet Explorer.
- В нем зайти в Сервис -> Свойства браузера -> Общие -> Представление -> Оформление
- Там проставить галки «Не учитывать шрифты, указанные на вэб-страницах» и «Оформлять, используя пользовательский стиль«
- Нажать «Обзор» и указать созданный файл ie.css
- Нажать «ОК»
2. Способ из инета с изменением файлов справки
- Заходим в папку с offline-справкой (у меня это D:\Visual Studio Pro 2013 English MLF X19-27145\Offline help)
- Распаковываем с помощью 7-zip файл Branding_en-US.mshc
- В полученной папке Branding_en-US открываем в редакторе файл branding.css
- Там меняем font-family на что-то вроде Segoe UI, Verdana, Arial; (только этот способ у меня не сработал!)
- Потом естественно его нужно запаковать обратно в zip и вернуть расширение mshc.
3. Способ со сменой языка системы — самый простой, но не всегда удобный в использовании способ
- Панель управления -> Язык и региональные стандарты
- Дополнительно -> Изменить язык системы -> Английский (США)
- ОК
- Перезагрузить компьютер
- * Данный способ может негативно сказаться на отображении названия пунктов меню или кнопок в программах НЕ поддерживающих юникод. Например у меня стали некорректно отображаться надписи в PSPad.
update 23.11.14: Слишком много проблем появляется из-за смены языка для НЕ-unicode программ. Дошло до того, что не смог выполнить установку драйвера для сканера, т.к. все надписи были знаками вопроса. Пришлось переименовывать папку с ресурсами установщика с 0409 (английские ресурсы) на 0419 (русские ресурсы). После этого установка запустилась на английском языке.
Получается получше чем было:
Поскольку третий вариант мне тоже не подошел, то я стал дальше искать решение этой проблемы. Для этого я вооружился Process Monitor стал копать…
Согласно статье Mapping Code Pages to Script IDs в ветке реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts хранится информация о шрифтах.
Для текущего пользователя (меня) я отловил обращение к ветке реестра
HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\3\
Там HelpViewer запросил ключ IEPropFontName = Times New Roman
Попробовал его сменить на более уместный Arial.
Помимо этого было обращение к ключу IEFixedFontName = Courier New.
Его я сменил на Courier.
Теперь для HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\4\ сделал то же самое.
Help Viewer продолжал использовать этот «красивый» шрифт для всего документа справки (для описания и для текста исходника).
Шрифты с засечками, использование которых отловил Process Monitor:
MINGLIU.TTC
MSMINCHO.TTC
batang.ttc
Странно, что многие записи в реестре HelpViewer найти не смог:
HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_PRIVATE_FONT_SETTING NAME NOT FOUND HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_CSS_SHOW_HIDE_EVENTS NAME NOT FOUND HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_CSS_SHOW_HIDE_EVENTS NAME NOT FOUND HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\Default_IEFontSizePrivate NAME NOT FOUND HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\Settings\Always Use My Font Face HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\6\IESerifFontName NAME NOT FOUND HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\6\IESansSerifFontName NAME NOT FOUND HKU\S-1-5-21-3981433366-2493112781-1612577028-1000\Software\Microsoft\Internet Explorer\International\Scripts\6\IEUIFontName NAME NOT FOUND EN C:\Windows\ServiceProfiles\LocalService\AppData\Local\~FontCache-FontFace.dat C:\Windows\ServiceProfiles\LocalService\AppData\Local\~FontCache-S-1-5-21-3981433366-2493112781-1612577028-1000.dat HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontSubstitutes SUCCESS HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes\Segoe UI NAME NOT FOUND
Запретил доступ к batang.ttc, так helpviewer вообще стал отображать пустое окно.
Пришлось сбрасывать права на этот файл: icacls batang.ttc /T /Q /C /RESET
Оставалась еще одна мысль, ее и воспользовался — удалить этот шрифт. Пробовал простым удаление в проводнике — не получилось. Система писала, что невозможно удалить файл, поскольку он используется. В безопасном режиме писалось то же самое. Получилось удалить так:
del /f /s /q /a "C:\Windows\fonts\batang.ttf"
На всякий случай перезагрузил систему. После чего запустил Visual Studio 2013, а оттуда HelpViewer — проблемы со шрифтами больше не было!!! Удаление шрифта batang.ttf решило проблему!
R сожалению этот способ не работает на Windows 10. Там система начинает подставлять любой другой доступный шрифт, похожий на Times…
Решение проблемы в этой статье.
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024