A lightweight tool to use foreign voice-over with Chinese UI in Forza Horizon 5 / 6, since the game doesn't allow this combination natively.
一款轻量工具,解决《极限竞速:地平线5/6》无法在游戏内直接设置中文界面 + 外语配音的问题。
| Feature | Description |
|---|---|
| One-click swap | Replace language files with automatic backup / 一键替换,自动备份原始文件 |
| One-click restore | Restore original files anytime / 一键恢复原始状态 |
| Update detection | Detects if the game update reverted files, prompts re-swap / 检测游戏更新后文件是否被还原 |
| State inference | Recognizes manual swaps even without prior tool usage / 即使之前手动替换过,也能自动识别 |
| Remember game | Reopens last selected game on launch / 重进时自动选中上次操作的游戏 |
| Multi-voice support | Swap multiple voice languages independently / 可对同一游戏的多个语音语言分别替换 |
Go to Releases and download ForzaLangSwitcher.exe.
前往 Releases 页面下载 ForzaLangSwitcher.exe。
Requires .NET 8 Desktop Runtime (~55MB, install once for all .NET 8 apps).
需要 .NET 8 Desktop Runtime(约 55MB,安装一次后所有 .NET 8 应用通用)。
Run ForzaLangSwitcher.exe. The tool auto-detects your Steam library and fills the game path.
运行 ForzaLangSwitcher.exe,工具会自动检测 Steam 库并填充游戏路径。
| Field | What to choose | Example |
|---|---|---|
| Game / 游戏 | Select your game / 选择游戏 | Forza Horizon 6 |
| Voice Language / 语音语言 | The language you will select in-game / 游戏内要设置的语言 | English (UK) |
| Text Language / 界面语言 | The text you actually want to see / 实际想显示的界面文字 | 简体中文 |
Voice Language determines which
.zipfile gets replaced (e.g.,GB.zip). Text Language determines which.zipfile is copied into it (e.g.,CHS.zip).语音语言决定哪个
.zip文件被覆盖(如GB.zip)。 界面语言决定用哪个.zip的内容来覆盖(如CHS.zip)。
Click Apply Swap / 点击 应用替换.
The tool will:
- Backup the original file to
GB.zip.bak - Copy
CHS.zip→GB.zip - Save the swap state to
state.json
工具会自动:
- 将原始文件备份为
GB.zip.bak - 复制
CHS.zip→GB.zip - 将替换状态保存到
state.json
Open the game and set the language to English (UK). You will now see Chinese UI with English voice-over.
打开游戏,将语言设置为 English (UK)。现在你看到的就是中文界面 + 英文配音。
To restore the original game files, simply select the voice language you swapped and click Restore Original.
要恢复原始文件,选择你替换过的语音语言,点击 恢复原始 即可。
-
Game updates / 游戏更新:After a major game update, the replaced files may be reverted. The tool will detect this on next launch and prompt you to re-apply. / 大型游戏更新后,替换的文件可能被还原。下次启动时工具会检测到并提示重新替换。
-
First backup / 首次备份:The first time you swap a voice language, the tool creates a
.bakbackup. This backup is kept forever (unless you manually delete it) and is used for restore. / 首次替换某个语音语言时,工具会创建.bak备份。该备份永久保留(除非你手动删除),用于恢复操作。 -
Multiple swaps / 多次替换:You can swap multiple voice languages (e.g., both
GBandEN) independently. Each has its own backup and state. / 你可以独立替换多个语音语言(如同时替换GB和EN),每个都有独立的备份和状态。 -
Manual swaps detected / 手动替换识别:Even if you swapped files manually before using this tool, the tool will scan file hashes on launch and correctly identify the current state. / 即使你之前手动替换过文件,工具启动时也会扫描文件哈希并正确识别当前状态。
.
├── dist/ # Release build / 发布包
│ └── ForzaLangSwitcher.exe
├── src/ # Source code / 源代码
│ ├── ForzaLangSwitcher.csproj
│ ├── MainForm.cs
│ ├── Program.cs
│ ├── Models/
│ │ ├── GameProfile.cs
│ │ └── SwapState.cs
│ └── Services/
│ ├── GameLocator.cs
│ ├── LanguageSwapper.cs
│ ├── BackupManager.cs
│ ├── HashVerifier.cs
│ └── SettingsManager.cs
└── README.md
When you run the tool, these files are created in the same directory as the .exe:
| File | Purpose |
|---|---|
ForzaLangSwitcher.json |
Tracks swap states and remembers your last selected game / 记录替换状态与上次选择的游戏 |
cd src
dotnet publish -c Release --self-contained false -p:PublishSingleFile=true -o ../distMIT License. See LICENSE for details.
MIT 许可证。详见 LICENSE。