Локалізація mui, шрифти і регіональні настройки - комп'ютерна документація по windows

Питання про регіональні налаштуваннях і локалізації виникають на форумі Автоматичної установки із завидною регулярністю. В принципі, практично вся інформація, що дозволяє розібратися з проблемою, на сторінках сайту представлена, хоча і не зібрана в одному місці. Крім того, некоректна відпрацювання секції [RegionalSettings] з файлу відповідей вносить додаткову плутанину. У даній статті я постарався зібрати особистий досвід, так і досвід учасників форуму. Я спробую висвітлити всі тонкощі локалізації та виробити алгоритм застосування налаштувань, що спрацьовує на 100%.

Multilanguage User Interface (MUI)

Якщо ви працюєте з локалізованою версією Windows, то можете пропустити цю секцію.

Для локалізації елементів інтерфейсу використовується Multilanguage User Interface (MUI). Взагалі, він призначений для корпоративних користувачів і не доступний для завантаження з сайту Microsoft (де викладено лише MUI для Windows Embedded, який не підходить для Windows XP). В даному прикладі розглядається російський MUI і вибір російського інтерфейсу, як інтерфейсу за замовчуванням для всіх облікових записів, створюваних згодом.

muisetup.exe / i 0419 / d 0419 / l / f / r / s

Ключ / i вказує, яка мова вибирається, і відповідно 0419 - російський, а ключ / d призначає мову інтерфейсу за замовчуванням. Повний список ключів, а також значень мов можна знайти в файлі muisetup.hlp. входить в комплект поставки MUI.

Важливо! Для найбільш повної локалізації інтерфейсу вам потрібно взяти muisetup.exe від SP2 і замінити їм однойменний файл в дистрибутиві MUI. Також, вам можуть знадобитися додаткові пакети для локалізації Довідки. Windows Media Player 10 і Windows Movie Maker 2.1.

Якщо ви хочете, щоб російський інтерфейс був уже при першому вході в систему, то встановлюйте MUI з cmdlines.txt. В іншому випадку, ви можете зробити установку при першому вході в систему будь-яким зручним вам способом (пакетний файл з GuiRunOnce. RunOnceEx і т.д.). Нижче приклад установки російського MUI і його оновлень з cmdlines.txt

[COMMANDS]
".WinMUImuisetup.exe / i 0419 / d 0419 / l / f / r / s"
".WinMUIWindowsXP-KB841625-x86MUI-RUS.exe / quiet / norestart"
".WinMUIMP10Setup_muiRUS.exe / Q"
".WinMUImm21_muirus.exe / Q"

Коректне відображення кирилиці в меню і діалогах ПО

Як було сказано вище, локалізація інтерфейсу ОС здійснюється за допомогою MUI. А ось за коректне відображення кириличних шрифтів в меню і діалогах програмного забезпечення відповідає параметр SystemLocale файлу відповідей. Однак, в деяких програмах все одно спостерігається некоректне відображення кириличних символів (також відоме як ієрогліфи або кракозябри ;-). Стандартної рекомендацією є імпортування наступних ключів до реєстру:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCodePage] "1250" = "c_1251.nls" "1251" = "c_1251.nls" "1252" = "c_1251.nls" "1 253" = "c_1251.nls" [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontSubstitutes] "System , 0 "=" Arial, 204 "" Fixedsys, 0 "=" Fixedsys, 204 "" Small Fonts, 0 "=" Small Fonts, 204 "" MS Serif, 0 "=" MS Serif, 204 "" MS Sans Serif , 0 "=" MS Sans Serif, 204 "" Courier, 0 "=" Courier New, 204 "" Arial Cyr, 0 "=" Arial, 204 "" Courier New Cyr, 0 "=" Courier New, 204 "" Times New Roman Cyr, 0 "=" Times New Roman, 204 "" Helv, 0 "=" MS Sans Serif, 204 "" Tms Rmn, 0 "=" MS Serif, 204 "" Arial, 0 "=" Arial, 204 "

Ці настройки є системними і поширюються на всіх користувачів. Ви можете включити їх в уже існуючий файл hklm.reg (докладніше в статті Твіки реєстру) або створити окремий файл для налаштувань шрифтів, скажімо, fonts.reg. який [з особистого досвіду] краще імпортувати при вході в систему будь-яким зручним вам способом (пакетний файл з GuiRunOnce. RunOnceEx і т.д.).

Мовні і Регіональні настройки

Однією з основних причин неразбeріхі з регіональними настройками є [частково] некоректна відпрацювання секції [RegionalSettings]. Чому це відбувається не знають, схоже, і в Microsoft, тому що я поки не бачив статті пояснює причину або принаймні визнає проблему. Крім того, не всі регіональні настройки можуть бути налаштовані через файл відповідей.

Секція [RegionalSettings] файлу відповідей

Я рекомендую уважно вивчити параметри секції [RegionalSettings] файлу відповідей, тому що її ми застосуємо інший спосіб.

[RegionalSettings]
LanguageGroup = 1,2,3,4,5
SystemLocale = 00000419
UserLocale = 00000419
InputLocale = 0409: +00000409,0419: 00000419

Секцію [ReginalSettings] зручно конфігурувати через Setup Manager. Однак, давайте розглянемо її детально, тому що вона містить багато параметрів і традиційно викликає питання. Нижче я привожу докладні описи параметрів, які взяті з KB289125 (в статті також перераховані і інші параметри).

  • LanguageGroup - Задає підтримку мовної групи операційною системою, встановленою на комп'ютері. Якщо цей параметр вказана, то вона визначає також значення налаштувань InputLocale, SystemLocale і UserLocale. За замовчуванням в будь-якому випадку встановлюються перші п'ять мовних груп з цього списку. так що для підтримки кирилиці даний параметр взагалі необов'язковий.
  • SystemLocale

Локалізація mui, шрифти і регіональні настройки - комп'ютерна документація по windows

Дозволяє програмам, які не використовують кодування Юнікод (Unicode), виконувати роботу, виводити меню і діалогові вікна з використанням локалізованих мовних символів. Якщо в локалізованої програмі некоректно відображаються мовні символи, настройка мови системи за умовчанням з метою забезпечити відповідність мови локалізованої програми може вирішити проблему. Однак дана настройка є мережевий, тому неможливо одночасно підтримувати версії локалізованих програм, які не використовують Юнікод, на декількох мовах. Значення параметрів повинні відповідати списку Locale IDs.
  • UserLocale

    Локалізація mui, шрифти і регіональні настройки - комп'ютерна документація по windows

    Управляє способом відображення чисел, часу, грошових сум і дат.
  • InputLocale

    Локалізація mui, шрифти і регіональні настройки - комп'ютерна документація по windows

    Задає код розкладки клавіатури і комбінації розкладок. Якщо вказано кілька мов введення, першої використовуваної розкладкою клавіатури буде та, яка визначена для даного комп'ютера за умовчанням ((в тому числі і при введенні пароля при вході в систему). Зазначені комбінації розкладок клавіатури повинні підтримуватися для мов, або певних шляхом використання настройки LanguageGroup, або для мови за замовчуванням для встановлюваної локалізованої версії операційної системи Windows XP. Якщо для доступного мови не підтримує зазначена комбінація, буде використовуватися комбінація ра складки клавіатури за замовчуванням. Ця установка ігнорується, якщо задана настройка Language.

  • Таким чином, у наведеному вище прикладі будуть встановлені:

    • LanguageGroup = 1,2,3,4,5
      П'ять мовних груп: Western Europe and United States, Central Europe, Baltic, Greek і Cyrillic. Строго кажучи можна не вказувати цей параметр взагалі, тому що групи 1-5 встановлюються за замовчуванням.
    • SystemLocale = 00000419
      Російська мова за замовчуванням для програм, які не використовують Юнікод.
    • UserLocale = 00000419
      Російські Стандарти і Формати.
    • InputLocale = 0409: +00000409,0419: 00000419
      Дві розкладки клавіатури: російська і англійська. Англійська буде розкладкою за замовчуванням (в тому числі і при вході в систему, тому що йде першою в списку).
    regopts.txt

    Як вже було сказано вище, секція [RegionalSettings] відпрацьовується коректно з файлу відповідей. Точніше, не спрацьовують деякі параметри (UserLocale і InputLocale, якщо мені не зраджує пам'ять), але це не суть важливо, тому що загальний підсумок все одно незадовільний. Існує альтернативний спосіб конфігурації регіональних налаштувань, який описаний в цій статті MS KB. Якщо коротко, секція [RegionalSettings] поміщається в текстовий файл regopts.txt. а потім виконується команда

    rundll32.exe shell32, Control_RunDLL intl.cpl ,, / f: "c: egopts.txt"

    Кoманда краще виконувати при першому вході в систему, що побічно і підтверджує примітка в кінці статті MS KB. Звичайно, файл regopts.txt не обов'язково повинен знаходитися в корені диска C. Ви можете змінити шлях відповідно місця розташування інфікованого файлу. Виконати команду ви можете будь-яким зручним вам способом (пакетний файл з GuiRunOnce. RunOnceEx і т.д.)

    Далі в статті цей спосіб я буду позначати як "спосіб regopts.txt".

    Набори розкладок клавіатури та їх порядок (пріоритет) можна задати за допомогою способу regopts.txt. а ось спосіб перемикання між розкладками

    Локалізація mui, шрифти і регіональні настройки - комп'ютерна документація по windows

    конфигурируется через реєстр. Досить налаштувати бажаний спосіб на робочій системі і експортувати гілку реєстру

    Нижче наводиться приклад ключа, що відповідає за перемикання розкладки лівим ALT + SHIFT

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USERKeyboard LayoutToggle]
    "Hotkey" = "1"

    Пріоритет розкладки клавіатури при вході в систему (Екран привітання або класичний вхід) можна задати наступним чином:

    [HKEY_CURRENT_USERKeyboard LayoutPreload]
    "1" = "00000409"
    "2" = "00000419"

    В даному випадку за замовчуванням виставляється англійська розкладка клавіатури.

    Оскільки розкладка клавіатури є користувальницької налаштуванням, вам потрібно забезпечити імпорт ключа з cmdlines.txt. якщо ви хочете застосувати його для всіх користувачів. Ви можете включити експортовані значення в уже існуючий файл hkcu.reg (докладніше в статті Твіки реєстру) або створити окремий файл для регіональних налаштувань, скажімо, regional.reg. який також буде імпортуватися з cmdlines.txt.

    Це ще один елемент регіональних налаштувань, який треба конфігурувати через реєстр.


    За настройку елемента відповідає ключ Geo з гілки

    Наприклад, розташуванню Росія відповідає

    [HKEY_CURRENT_USERControl PanelInternationalGeo]
    "Nation" = "203"

    Оскільки "Розташування" є користувальницької налаштуванням, вам потрібно забезпечити імпорт ключа з cmdlines.txt. якщо ви хочете застосувати його для всіх користувачів. Ви можете включити експортовані значення в уже існуючий файл hkcu.reg (докладніше в статті Твіки реєстру) або в regional.reg. який ви, можливо, створили для імпорту способу перемикання клавіатури.

    Зводимо все разом

    Отже, підіб'ємо підсумок. Для найбільш повної і коректної локалізації нам знадобиться:

    • Встановити MUI (якщо ОС не локалізована)
    • Забезпечити коректне відображення кирилиці в меню і діалогах ПО
    • Конфігурувати мовні та регіональні настройки і спосіб розкладки клавіатури

    Як ви вже зрозуміли з прочитання статті, частина цих налаштувань встановлюється за допомогою файлів, що виконуються з cmdlines.txt. а що залишилися налаштування задаються при першому вході в систему. Приклад вмісту cmdlines.txt:

    [COMMANDS]
    ".WinMUImuisetup.exe / i 0419 / d 0419 / l / f / r / s"
    ".WinMUIWindowsXP-KB841625-x86MUI-RUS.exe / quiet / norestart"
    ".WinMUIMP10Setup_muiRUS.exe / Q"
    ".WinMUImm21_muirus.exe / Q"
    "REGEDIT / S regional.reg"

    Перші чотири команди послідовно встановлюють MUI, а також поновлення Довідки, Windows Media Player 10 і Windows Movie Maker. Якщо ви не встановлюєте MUI, то всі рядки відносяться до нього вам не потрібні. Остання команда імпортує regional.reg. містить спосіб перемикання розкладки клавіатури і налаштування Розташування. Альтернативно, можна включити вміст regional.reg до складу hkcu.reg. якщо у вас такий є. Всі перераховані у файлі cmdlines.txt команди будуть виконані за 12 хвилин до закінчення установки ОС.

    Далі, при першому вході в систему потрібно застосувати "спосіб regopts.txt" і імпортувати настройки кодової сторінки і шрифтів для коректного відображення кирилиці в ПО. Я приведу приклад пакетного файлу regional.bat. який і зробить потрібні дії:

    @echo off
    REGEDIT / S c: fonts.reg
    rundll32.exe shell32, Control_RunDLL intl.cpl ,, / f: "c: egopts.txt"
    exit

    В даному прикладі файли fonts.reg і regopts.txt повинні знаходитися в корені диска C. однак ви можете розмістити їх де завгодно за допомогою $ OEM $ директорій і змінити шляху соответственно.о.

    Схожі статті