vigneshjayaraman Ответов: 3

Как изменить язык для существующих пользователей windows?


Я пытаюсь установить экран приветствия и язык пользовательского интерфейса для всех пользователей в ОС windows.Для нового пользователя изменения применялись идеально, как и для текущего пользователя(с использованием XML-файла ответов, проходящего через intl. cpl). Существующий пользователь, которого я не мог установить. как решить эту проблему? Есть ли какой-нибудь другой метод, которым я мог бы этого добиться?? Пожалуйста, поделитесь своими знаниями, если вы столкнулись с этой проблемой. C#.net код

Что я уже пробовал:

Я пытался изменить какой-то реестр с помощью кода c#. некоторые условия, конечно, это не удается

[no name]

Вы гуглите " локализацию"

vigneshjayaraman

Я пробовал, но для существующего пользователя это не работает

[no name]

Это ни на йоту не меняет ответа. Если это не сработало для вас, значит, вы сделали что-то не так.

vigneshjayaraman

Я читал некоторые статьи, это не изменится для существующих пользователей через XML-файл.Я должен следовать какому-то другому методу, я думаю?? что вы предлагаете?

vigneshjayaraman

Применимо для текущего пользователя и новых пользователей

vigneshjayaraman

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

[no name]

О ... затем установите другую языковую версию Windows. Вы не получите другой язык, просто изменив настройки реестра.

vigneshjayaraman

хорошо, просто забудьте все вышесказанное.Есть ли какой-либо возможный способ, если я использую какой-либо метод, он изменится для всех.

[no name]

Да есть такое. Установите версию windows для языка, который вы хотите, чтобы пользователь понимал.

#realJSOP

Локализация больше подходит для таких вещей, как форматирование даты и времени, символы валют и т. д.

ОС сама определяет, какой язык представить пользователю, исходя из пользовательских настроек.

Philippe Mori

Каждый пользователь выбирает свой собственный язык для ОС. И если ваше приложение многоязычно, вы можете позволить каждому пользователю выбрать свой предпочтительный язык.

Вы никогда не должны менять язык существующих пользователей. И если вы хотите Windows на определенном языке, то лучше установить Windows только на этом языке. Вы всегда можете указать параметры по умолчанию для новых пользователей. Таким образом, вы должны иметь соответствующий набор языков перед созданием первого пользователя. И если вы впоследствии измените язык, у вас всегда будет риск того, что некоторые части или сторонние приложения не будут работать на нужном языке, поскольку они могут использовать язык, который был активен при их установке.

3 Ответов

Рейтинг:
2

Timo Tielens

То, что я сделал,-это загрузка языка пользовательского интерфейса из текстового файла. После того, как пользователь был loggedvin. Он изменится на предпочитаемый пользователем язык. Весь текст приходит из файлов ресурсов. например:
Ресурсы, Ошибок.ан-Нас.resx файл
Ресурсы, Ошибок.НЛ-НЛ.resx файл

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(Properties.Settings.Default.DefaultLanguage);


Рейтинг:
0

#realJSOP

ОС определяет язык отображения. Если вы настаиваете на том, чтобы переопределить его (плохая идея), сделайте это, когда вы инициализируете свое приложение:

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(Properties.Settings.Default.language);
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(Properties.Settings.Default.language);


Рейтинг:
0

Jochen Arndt

Язык хранится в пользовательской части реестра (файле Файл NTUSER.Дат в каталоге пользователя).

Когда пользователь вошел в систему, вы можете получить доступ к настройкам пользователя по адресу HKEY_USERS\<SID> с помощью смерзаться или функции реестра Windows API, вызываемые из программы с правами администратора. При использовании программы сначала необходимо перечислить пользователей, чтобы получить их Sid.

Если пользователь не вошел в систему, Реестр можно редактировать в автономном режиме с помощью Рег[^] польза. См., например Изменение реестра другого пользователя[^].
Хотя это не решение C#, не должно быть никаких проблем с выполнением команд или записью их в сценарий оболочки, который затем может быть выполнен xecuted.


#realJSOP

Я не думаю, что он хочет изменить язык для всей ОС, только для своего приложения.

Jochen Arndt

Возможно, вы правы.

Но тогда все то, что он пробовал до сих пор (используя реестр и intl.cpl), не имеет никакого смысла.