Локалізація mui, шрифти і регіональні настройки

Питання про регіональні налаштуваннях і локалізації виникають на форумі Автоматичної установки із завидною регулярністю. В принципі, практично вся інформація, що дозволяє розібратися з проблемою, на сторінках сайту представлена, хоча і не зібрана в одному місці. Крім того, некоректна відпрацювання секції [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 від SP3 і замінити їм однойменний файл в дистрибутиві MUI. Також, вам можуть знадобитися додаткові пакети для локалізації Довідки. Windows Media Player 10 і Windows Movie Maker 2.1.

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

[COMMANDS]
". # 92; WinMUI # 92; muisetup.exe / i 0419 / d 0419 / l / f / r / s"
". # 92; WinMUI # 92; WindowsXP-KB841625-x86MUI-RUS.exe / quiet / norestart"
". # 92; WinMUI # 92; MP10Setup_muiRUS.exe / Q"
". # 92; WinMUI # 92; mm21_muirus.exe / Q"

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

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

Примітка. Виправляючи проблему в одних програмах, ви можете привнести її в інші. Наприклад, в Adobe Reader виникають проблеми при друку. Не використовуйте Твік, якщо у вас немає проблем.

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

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

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

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

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

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

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

Локалізація mui, шрифти і регіональні настройки

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

Локалізація mui, шрифти і регіональні настройки

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

Локалізація mui, шрифти і регіональні настройки

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

rundll32.exe shell32, Control_RunDLL intl.cpl ,, / f: "c: # 92; regopts.txt"

Кoманда можна виконувати при першому вході в систему, що побічно і підтверджує примітка в кінці статті бази знань. Звичайно, файл regopts.txt необов'язково повинен перебувати в корені диска C: # 92 ;. Ви можете змінити шлях відповідно місця розташування інфікованого файлу. Виконати команду ви можете будь-яким зручним вам способом (пакетний файл з GuiRunOnce. RunOnceEx і т. Д.). Однак, виконуючи команду при першому вході в систему, ви застосуєте Ваші установки (наприклад, UserLocale) тільки до активного користувача. Для того щоб застосувати параметри до всіх користувачів, команду потрібно виконувати з cmdlines.txt. Приклад ви знайдете нижче в статті.

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

Розкладка клавіатури

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

Локалізація mui, шрифти і регіональні настройки

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

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

Windows Registry Editor Version 5.00

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

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

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

Розташування (Location)

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

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

Наприклад, розташуванню Україна відповідає

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

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

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

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

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

[COMMANDS]
". # 92; WinMUI # 92; muisetup.exe / i 0419 / d 0419 / l / f / r / s"
". # 92; WinMUI # 92; WindowsXP-KB841625-x86MUI-RUS.exe / quiet / norestart"
". # 92; WinMUI # 92; MP10Setup_muiRUS.exe / Q"
". # 92; WinMUI # 92; mm21_muirus.exe / Q"
"REGEDIT / S regional.reg"
"REGEDIT / S fonts.reg"
"Regset.cmd"

Перші чотири команди послідовно встановлюють MUI, а також поновлення Довідки, Windows Media Player 10 і Windows Movie Maker. Якщо ви не встановлюєте MUI, то всі рядки, що відносяться до нього, вам не потрібні. П'ята команда імпортує файл regional.reg. містить спосіб перемикання розкладки клавіатури і налаштування Розташування. Альтернативно можна включити вміст regional.reg до складу hkcu.reg. якщо у вас такий є. Потім виконується імпорт параметрів реєстру для шрифтів з файлу fonts.reg (ви також можете об'єднати цей REG-файл з іншими).

Нарешті, останній рядок в файлі cmdlines.txt реалізує "спосіб regopts.txt", імпортуючи параметри секції [RegionalSettings]. Я приведу приклад пакетного файлу regset.cmd. який і зробить потрібні дії:

@echo off
% Systemroot% # 92; system32 # 92; rundll32.exe shell32, Control_RunDLL intl.cpl ,, / f: ". # 92; regopts.txt"
exit

В даному прикладі файли regional.reg, fonts.reg і regopts.txt повинні знаходитися в одній папці з файлом cmdlines.txt. Всі перераховані у файлі cmdlines.txt команди будуть виконані за 12 хвилин до закінчення установки ОС.