現場で多言語対応として入力言語の追加を実施した。
GUIで設定は可能だが、ユーザー権限でいじることはできないため、
Powershellを使ってバッチ実行できるようなツールを作成した。
ユーザー権限ではPowershellを使えないため、一時的に権限を付与することで
ユーザーでもPowershellを使えるようにする。
具体的な対処
入力言語を追加するときに実施した操作は以下の2つ。※Powershellの権限付与は除く
- 言語パックのインストール
- Powershellコマンドレットでサポート言語の追加
参考にしたサイト(マイクロソフト公式)
言語パックのインストール
言語パックのインストールはdismコマンドを使用している。
dismコマンドは様々なオプションがあるが、今回は以下のコマンドを実行する。
dism /online /add-package /packagepath:”言語パックの格納先パス”
言語パックはマイクロソフトから提供されているインストールメディアを使用する。
※今回はインストール済みのものを連携されたためメディアの場所は不明。
インストールが確認できた時は同じくdismコマンドで以下のオプションを設定する。
dism /online /get-packages
このコマンドを実行することでインストールされているパッケージを確認することができる。
findstrコマンドで言語パックだけを抽出して確認することも可能。
Powershellコマンドレットでサポート言語の追加
Powershellコマンドレット「Set-WinUserLanguageList」を使用する。
このコマンドレットで設定しているのは、「設定」→「言語」→「優先する言語」の部分
言語追加を確認する時には「Get-WinUserLanguageList」を使用。
コマンド実行例1(追加言語は中国語)
Set-WinUserLanguageList ja-jp,zh-cn -force
コマンド実行例2
$CurrList = Get-WinUserLanguageList
$CurrList.Add("zh-cn")
Set-WinUserLanguageList $CurrList -Force
ツールで自動実行する時には「-force」を使うことで強制的にコマンドを実行できる。
-forceなしだと確認メッセージが表示される。
Get〜で現在のサポート言語リストを取得し、リストに追加したい言語をAddしてから
Set〜で追加したい言語リストをセットすることで追加が可能。
Set~に現在入っている言語+追加したい言語で実行する方法でもサポート言語を追加可能。
注意
サポート言語の追加はレジストリやコマンドプロンプトで設定しようとしたが不可能だった。
GUIかPowershellしか変更の方法は見つからなかった。
管理者権限で「Set-WinUserLanguageList」を実行するのでなく、言語設定を
追加したいユーザーでコマンドレットを実行しないと切り替えができない。