Windows 言語パックが壊れた日

中国語を入力しようとすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/035350e5-9161-4a92-7697-90b56ddbb650.png)
何もしてないのに壊れた！（）そこで、GUIから言語パックの再インストールを実施したところ…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/fc26196c-560f-73ac-2270-5cfba5c7be0c.png)
のまま帰らぬプロセスになってしまった。

このタイミングで困る理由は一つもないものの、しょうもない中国語ですら一語として入力に支障をきたすのは大変きもい。再起動したらずっと「更新をインストール中です」と出て何時間でもこの状態のままになってしまうし。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/947ac2fb-d448-f66e-1c17-f3d6d94ffda0.png)
最近年齢のせいで短気になったためか頭がキているので、そっこー電源ボタンを長押しして電源強制断。コールドブートしてからアンインストールからの再インストールを試すなどしたが、なにをどーしても全く復帰しなかった（こんなことしてたら壊れます）。

ということで、

### 解決（言語パックの問題一般をリセット）して使えるようにする

#### 1. 言語パックをGUIから削除する

画面 [言語と地域] から言語パックを削除する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/d06e2cc9-b8b1-1c18-9177-4969988c0772.png)

#### 2. 利用していた各モジュールをアンデプロイ

##### 2-1. 管理者モードでPowershellを起動し、現状確認

```powershell:
PS > Get-InstalledLanguage

Language Language Packs  Language Features
-------- --------------  -----------------
en-US    LpCab           BasicTyping, Handwriting, Speech, TextToSpeech, OCR
ja-JP    LpCab, LXP      BasicTyping, Handwriting, Speech, TextToSpeech, OCR
und-Hans None            Fonts
und-Jpan None            Fonts
zh-CN    LpCab, LXP      BasicTyping, Handwriting, Speech, TextToSpeech, OCR
```

##### 2-2. リセットのため、モジュールを消していく

```powershell:
PS > Uninstall-Language zh-CN
PS > Uninstall-Language und-Hans
PS > Get-InstalledLanguage

Language Language Packs  Language Features
-------- --------------  -----------------
en-US    LpCab           BasicTyping, Handwriting, Speech, TextToSpeech, OCR
ja-JP    LpCab, LXP      BasicTyping, Handwriting, Speech, TextToSpeech, OCR
und-Jpan None            Fonts
```

#### 3. モジュールの再デプロイ

##### 3-1. モジュールファイルの取得

https://learn.microsoft.com/ja-jp/azure/virtual-desktop/windows-11-language-packs

ここから、言語パックを再構成するためのファイルを含むISOイメージをDLする。記事執筆時点ではWindows Updateを実施して使用しているWindows11(22H2)で機能修正を行おうとしているので、

> Windows 11、バージョン 22H2 言語およびオプション機能 ISO

からDLし、ISOファイル(6.7GB)をWindowsエクスプローラーで開く。ISOには2つのフォルダが含まれていて、以降の再インストール作業では最初のフォルダに含まれているワイルドカードパターン`*Language*{お言語}-{お国}*`にマッチするファイルを選ぶ。

1. LanguagesAndOptionalFeatures ←こっち
1. Windows Preinstallation Environment

フォントはHans（繁体字の場合はHant）とわかっているので本寸法にあわせて一緒に持っていく。最終的に使用したファイルは、簡体字中国語の場合であれば以下のとおり：

```text:
Microsoft-Windows-Client-Language-Pack_x64_zh-cn.cab
Microsoft-Windows-LanguageFeatures-Basic-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-Handwriting-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-OCR-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-Speech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-TextToSpeech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-Fonts-Hans-Package~31bf3856ad364e35~amd64~~.cab
```

##### 3-2. モジュールデプロイ

`dism /online /add-package /packagePath:{ファイル}`でモジュールデプロイします。単純に上のファイル一覧に対して行頭にこのコマンドを差し込んで実行。

注意点としては、最初のClient-Language-Packを含め、ファイナライズらしき処理の後半部分で長い事止まるけど、失敗なり成功なり必ず表示されるので我慢して放置する、あるいはC:\WINDOWS\Logs\DISM\dism.logに記録されている処理内容を観察する。ログは見てもあんまり意味わかんないけど。

##### 3-3. 言語の追加

モジュールデプロイ直後、さも「もう使えるのでは！」と思わせぶりな出力が。
```powershell:
PS > Get-InstalledLanguage

Language Language Packs  Language Features
-------- --------------  -----------------
und-Hans None            Fonts
zh-CN    LpCab, LXP      BasicTyping, Handwriting, Speech, TextToSpeech, OCR
```
解決のために一週間くらいガチャってたので、はやとちりするが結局使えず。一週間やってたせいで諦めるわけでもなくGUI操作してみるかと思いつく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/d36f168d-f8fe-295b-ff80-add93a1fd35e.png)
処理の後半部分で「ダウンロードしています」のままちょっと止まっていますが、しっかり終わります。というか、オレ環では終わったので大丈夫です（雑）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295548/90e4bac1-2893-800f-f8b2-8ca7fd77e477.png)

### おわりに

記事が問題解決の端緒になれば幸いです。解釈誤りなどご指摘歓迎いたします。