如何用 tiny11builder 制作多语言国际版 Tiny11语言包与区域设置完整指南【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder读完本文你能用 tiny11builder 打包出一款带指定语言包与区域设置的国际版 Windows 11 精简镜像先识别镜像当前的语言环境再批量注入 .cab 语言包然后把区域与默认语言一次性写死最后输出一张可在目标国家直接部署的 tiny11.iso解决「tiny11 多语言镜像怎么做」这类问题。一、动手前的准备工作在改任何脚本之前先把五样东西备齐缺一样后面都会卡住一台 Windows 11 主机以管理员身份运行 PowerShell 5.1原版 Windows 11 ISO并挂载到本地得到镜像盘符例如E:一块空闲磁盘作为临时工作盘脚本的-SCRATCH参数建议至少 30GB 可用空间tiny11builder 源码在目标目录执行git clone https://gitcode.com/GitHub_Trending/ti/tiny11builder与镜像同版本的 .cab 语言包放在脚本目录下新建的LanguagePacks文件夹中。语言包必须和你手里的 Windows 11 构建版本严格对应跨大版本比如 22H2 的包装进 23H2 的镜像必然失败。脚本入口是 tiny11maker.ps1它的运行参数只有两个盘符.\tiny11maker.ps1 -ISO E -SCRATCH D注意如果你打算做「装完还能继续加语言、打补丁」的镜像务必用tiny11maker.ps1而不是tiny11Coremaker.ps1——后者为了极致精简裁掉了系统组件存储镜像生成后无法再添加语言包这一点在 README.md 中有明确说明。二、识别镜像当前的语言环境改配置之前先搞清楚镜像「现在是什么语言」。脚本挂载install.wim到scratchdir之后就是读取语言信息的时间点。对应的核心命令只有一条dism /English /Get-Intl /Image:D:\scratchdir输出里有一行Default system UI language : xx-XX比如en-US。tiny11maker.ps1 第 167–175 行就是用正则匹配这一行拿到语言代码再打印到控制台如果匹配不到会输出Default system UI language code not found.通常意味着镜像挂载不完整先别往下走。记下这个语言代码有两个用途确认你注入语言包之前镜像的基线语言以及判断autounattend.xml里该写哪个UILanguage。如果基线语言和目标语言一致你甚至可以只补区域格式不注入额外语言包。三、批量注入语言包的命令DISMDeployment Image Servicing and Management是 Windows 自带的离线映像管理工具语言包的「装进去」和「拆出来」都靠它对离线镜像执行/Add-Package不需要进系统装。所以注入语言包的正确时机是镜像已挂载、清理组件/Cleanup-Image执行之前。把代码插到 tiny11maker.ps1 中Mounting complete! Performing removal of applications...这条日志约第 196 行之后的位置遍历LanguagePacks目录逐个安装Get-ChildItem $PSScriptRoot\LanguagePacks\*.cab | ForEach-Object { dism /English /Image:D:\scratchdir /Add-Package /PackagePath:$_.FullName }三点提醒D:换成你实际的-SCRATCH盘符或者直接用脚本里的变量$ScratchDisk建议把每个包的输出重定向追加到LanguagePackInstall.log方便定位是哪个包失败注入顺序无所谓但全部成功后再继续走后面的注册表和清理流程任何一个包报错就先处理不要带伤打包。四、一次性写入区域与默认语言语言决定「界面显示什么文字」区域决定「日期、数字、货币长什么样」。这两件事要改两个地方合在一起一次改完避免顾此失彼。第一处autounattend.xml 的 windowsPE 阶段。仓库里现有的 autounattend.xml 目前只有oobeSystem隐藏微软账号界面和windowsPE压缩安装两节。在settings passwindowsPE节点内补上国际区域组件component nameMicrosoft-Windows-International-Core-WinPE processorArchitectureamd64 publicKeyToken31bf3856ad364e35 languageneutral versionScopenonSxS SetupUILanguageUILanguagezh-CN/UILanguage/SetupUILanguage InputLocale0804:00000804/InputLocale SystemLocalezh-CN/SystemLocale UILanguagezh-CN/UILanguage UserLocalezh-CN/UserLocale /component脚本在两个阶段会自动拷贝这个文件约第 324 行拷进镜像的Sysprep目录约第 440 行拷到 ISO 根目录所以你只需要改仓库根目录这一份不用动脚本。UILanguage写的是 OOBE 首屏语言UserLocale/SystemLocale控制区域格式InputLocale是键盘布局——三者要对齐到同一目标区域例如做中文中国镜像时统一为zh-CN系列值。第二处离线注册表把默认语言写进系统配置。脚本会把镜像的SYSTEM、SOFTWARE等注册表单元以HKLM\zSYSTEM、HKLM\zSOFTWARE等名称加载进来。在 tiny11maker.ps1 的reg load完成之后约第 287 行起和现有的Set-RegistryValue调用放在一起追加Set-RegistryValue HKLM\zSYSTEM\ControlSet001\Control\International LocaleName REG_SZ zh-CN Set-RegistryValue HKLM\zSYSTEM\ControlSet001\Control\MUI\Settings PreferredUILanguages REG_MULTI_SZ zh-CN这两行分别锁定系统区域和首选 UI 语言。位置很关键必须夹在reg load和reg unload之间写早了没挂上单元、写晚了单元已卸载。autounattend 负责「装机过程中」的语言注册表负责「装完开机后」的语言两处一致才不会出现安装界面中文、进系统又跳回英文的分裂现象。五、打包镜像并做有效性验证后面的流程脚本全自动清理组件存储 → 卸载镜像 → 重新导出install.wim→ 调用 oscdimg 生成tiny11.iso。产出物就在脚本所在目录名为tiny11.iso。打包完先做一次离线验证不用急着装系统。对成品install.wim查包和语言信息dism /English /Get-Packages /ImageFile:D:\tiny11\sources\install.wim | Select-String LanguagePack dism /English /Get-Intl /ImageFile:D:\tiny11\sources\install.wimLanguagePack条目里应能看到你注入的所有语言Get-Intl的默认 UI 语言应指向预期值。再做一次装机验证在虚拟机里用 ISO 启动走到 OOBE 观察首屏语言是否为autounattend.xml里写的UILanguage进入桌面后打开「设置 → 时间和语言」核对已安装语言列表、区域格式、日期与货币显示。两边都对了这张国际版镜像才算交付完成。六、踩坑排查清单现象可能原因处理方式语言包安装报0x800f0820或提示版本不匹配.cab 语言包与镜像的 Windows 11 版本不一致更换与镜像构建版本完全对应的语言包不要跨大版本混用注入时报磁盘空间不足临时盘剩余空间不够语言包展开后体积不小给-SCRATCH换一块空间更大的盘清掉旧的tiny11/scratchdir残留装完 OOBE 首屏语言不对autounattend.xml的区域组件没放进windowsPE节或UILanguage写了镜像不支持的值对照第四节的 XML 结构检查组件位置UILanguage必须是镜像里已存在的语言代码进入系统后区域格式仍是默认值注册表写入时机错误在reg load之前或reg unload之后执行把Set-RegistryValue两行挪到第 287 行reg load HKLM\zSYSTEM之后、第 384 行reg unload之前脚本提示Default system UI language code not found.install.wim挂载失败或选错了镜像索引重新运行脚本确认输入的镜像索引SKU与install.wim中的条目一致最终 ISO 无法启动或脚本中途退出oscdimg.exe 缺失或路径不对安装 Windows ADK或让脚本自动下载捆绑版 oscdimg.exe 后再跑区域配置不生效但日志全绿两处配置互相矛盾XML 与注册表语言代码不一致统一autounattend.xml与注册表中所有语言/区域代码到同一个值后重新打包从识别语言环境到打包验证整条链路就是「读基线 → 注语言包 → 锁区域 → 验成品」四步。走完这张清单你的 tiny11.iso 就是一张语言与区域都锁死的国际版镜像写入 U 盘即可部署。【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考