Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forza Language Switcher / Forza 语言切换器

.NET 8 License

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》无法在游戏内直接设置中文界面 + 外语配音的问题。


✨ Features / 功能

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 / 可对同一游戏的多个语音语言分别替换

📥 Download / 下载

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 应用通用)。


🚀 Quick Start / 快速开始

Step 1: Launch / 启动

Run ForzaLangSwitcher.exe. The tool auto-detects your Steam library and fills the game path.

运行 ForzaLangSwitcher.exe,工具会自动检测 Steam 库并填充游戏路径。

Step 2: Configure / 配置

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 .zip file gets replaced (e.g., GB.zip). Text Language determines which .zip file is copied into it (e.g., CHS.zip).

语音语言决定哪个 .zip 文件被覆盖(如 GB.zip)。 界面语言决定用哪个 .zip 的内容来覆盖(如 CHS.zip)。

Step 3: Apply / 应用

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

Step 4: Launch Game / 启动游戏

Open the game and set the language to English (UK). You will now see Chinese UI with English voice-over.

打开游戏,将语言设置为 English (UK)。现在你看到的就是中文界面 + 英文配音。


🔄 Restore / 恢复

To restore the original game files, simply select the voice language you swapped and click Restore Original.

要恢复原始文件,选择你替换过的语音语言,点击 恢复原始 即可。


⚠️ Notes / 注意事项

  1. 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. / 大型游戏更新后,替换的文件可能被还原。下次启动时工具会检测到并提示重新替换。

  2. First backup / 首次备份:The first time you swap a voice language, the tool creates a .bak backup. This backup is kept forever (unless you manually delete it) and is used for restore. / 首次替换某个语音语言时,工具会创建 .bak 备份。该备份永久保留(除非你手动删除),用于恢复操作。

  3. Multiple swaps / 多次替换:You can swap multiple voice languages (e.g., both GB and EN) independently. Each has its own backup and state. / 你可以独立替换多个语音语言(如同时替换 GB 和 EN),每个都有独立的备份和状态。

  4. 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. / 即使你之前手动替换过文件,工具启动时也会扫描文件哈希并正确识别当前状态。


📂 Project Structure / 项目结构

.
├── 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

Runtime files / 运行时文件

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 / 记录替换状态与上次选择的游戏

🛠️ Build from Source / 从源码编译

cd src
dotnet publish -c Release --self-contained false -p:PublishSingleFile=true -o ../dist

📄 License / 许可证

MIT License. See LICENSE for details.

MIT 许可证。详见 LICENSE。

About

No description, website, or topics provided.

Resources

Stars

38 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages