婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2007-12-5
|
本帖最后由 password 于 2026-5-29 23:32 编辑
都6代了还是不能界面、字幕语言和语音设置分开
让AI整了个powershell脚本,日语和中文语言包互换,这样设置日语就是日文语音+中文界面&字幕了,每次更新游戏后可以运行一次,带了个假名检测的功能避免错换
- Add-Type -AssemblyName System.IO.Compression.FileSystem
- # Target directory
- $dir = "C:\Program Files (x86)\Steam\steamapps\common\ForzaHorizon6\media\Stripped\StringTables"
- $chs = Join-Path $dir "CHS.zip"
- $jp = Join-Path $dir "JP.zip"
- $tmp = Join-Path $dir "TEMP_SWAP.zip"
- # Check files
- if (!(Test-Path $chs)) {
- Write-Host "CHS.zip not found"
- exit 1
- }
- if (!(Test-Path $jp)) {
- Write-Host "JP.zip not found"
- exit 1
- }
- try {
- # Open JP.zip
- $zip = [System.IO.Compression.ZipFile]::OpenRead($jp)
- # Find Main.str
- $entry = $zip.GetEntry("Main.str")
- if ($null -eq $entry) {
- Write-Host "Main.str not found in JP.zip"
- $zip.Dispose()
- exit 0
- }
- # Read Main.str as UTF-8
- $stream = $entry.Open()
- $reader = New-Object System.IO.StreamReader(
- $stream,
- [System.Text.Encoding]::UTF8
- )
- $content = $reader.ReadToEnd()
- $reader.Dispose()
- $stream.Dispose()
- $zip.Dispose()
- # Detect Japanese kana
- $hasJapaneseKana = $content -match '[\u3040-\u309F\u30A0-\u30FF]'
- if ($hasJapaneseKana) {
- Write-Host "Japanese kana detected, swapping files..."
- # CHS.zip -> TEMP_SWAP.zip
- Rename-Item -Path $chs -NewName "TEMP_SWAP.zip" -Force
- # JP.zip -> CHS.zip
- Rename-Item -Path $jp -NewName "CHS.zip" -Force
- # TEMP_SWAP.zip -> JP.zip
- Rename-Item -Path $tmp -NewName "JP.zip" -Force
- Write-Host "Swap completed"
- } else {
- Write-Host "No Japanese kana detected, no action taken"
- }
- }
- catch {
- Write-Host "Error:"
- Write-Host $_
- }
复制代码
顺便一说,也可以每次启动前自动执行,因为加了假名检测所以不会错换,启动选项示例:
- cmd /c "powershell -ExecutionPolicy Bypass -File C:\Scripts\myscript.ps1 && %command%"
复制代码
|
评分
-
查看全部评分
|