![msinfo32 /nfo выдает XML с переведенными тегами](https://rvso.com/image/668056/msinfo32%20%2Fnfo%20%D0%B2%D1%8B%D0%B4%D0%B0%D0%B5%D1%82%20XML%20%D1%81%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D1%82%D0%B5%D0%B3%D0%B0%D0%BC%D0%B8.png)
Я работаю над некоторыми системными инструментами сбора данных для приложения, в поддержке которого я участвую, и столкнулся с интересной проблемой.
Я хотел захватить msinfo32 /nfo
отчет как часть собранных данных, поскольку он настолько всеобъемлющий. Но есть забавная проблема.
XML из системы, в которой в качестве языка отображения установлен немецкий язык, выглядит следующим образом:
<Data>
<Element><![CDATA[Betriebsystemname]]></Element>
<Wert><![CDATA[Microsoft Windows 10 Pro]]></Wert>
</Data>
«wert» — немецкое слово, означающее «стоимость».
Так что некоторые, но не все, теги, похоже, переводятся на местный язык. Просто ради забавы.
(Это также совершенно отвратительный XML-код, который «спроектировал эту хрень», но это я могу обойти).
Я ищу способ переопределить перевод тегов или, если это не удается, способ запустить одну программу в Windows с другим языком отображения. В системе UNIX я бы просто установил LC_ALL=C
или LC_ALL=en_US
. В Windows не так много. Я знаю о AppLocale
, но он, похоже, предназначен для устаревших не-Unicode-программ и в основном сосредоточен на работе с наборами символов.