ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

Windows-Auto-Night-Mode社区贡献:如何参与翻译与功能开发

Windows-Auto-Night-Mode社区贡献:如何参与翻译与功能开发 Windows-Auto-Night-Mode社区贡献如何参与翻译与功能开发Windows-Auto-Night-Mode是一款自动切换Windows 10和Windows 11深色/浅色主题的开源工具项目路径为gh_mirrors/wi/Windows-Auto-Night-Mode。本文将详细介绍如何参与该项目的翻译工作和功能开发为全球用户提供更好的本地化体验和更丰富的功能。翻译贡献指南翻译文件结构项目的翻译资源集中在AutoDarkModeApp/Strings/目录下采用ResXResource XML格式存储多语言字符串。每个语言对应一个子目录如中文简体对应AutoDarkModeApp/Strings/zh-hans/其中的Resources.resw文件包含所有界面文本的翻译。翻译流程选择语言在AutoDarkModeApp/Strings/目录中选择目标语言目录若不存在可创建新目录需遵循ISO语言代码规范如fr对应法语。编辑翻译文件复制en-us/Resources.resw作为模板替换value标签中的英文内容为目标语言翻译。以下是中文翻译示例data nameAbout xml:spacepreserve value关于/value /data data nameAccentColor xml:spacepreserve value主题色/value /data验证格式确保XML格式正确无语法错误。可使用Visual Studio或XML验证工具检查。提交PR将修改后的文件提交至项目仓库PR标题建议格式[i18n] Add/Update [Language] translations。翻译规范术语一致性核心术语需保持统一如Auto Dark Mode保留原名主题切换对应Theme Switch。简洁性界面文本需简洁明了符合目标语言的表达习惯。上下文适配部分术语需结合使用场景调整如Conditions在设置界面中译为条件在代码注释中译为状态。功能开发指南开发环境搭建克隆仓库git clone https://gitcode.com/gh_mirrors/wi/Windows-Auto-Night-Mode.git打开项目使用Visual Studio 2022打开解决方案文件[Windows Auto Dark Mode.sln](https://gitcode.com/gh_mirrors/wi/Windows-Auto-Night-Mode/blob/b1e57f60d10e4c718ce1fbb90f0d7b79d500a6c5/Windows Auto Dark Mode.sln?utm_sourcegitcode_repo_files)。恢复依赖右键解决方案→还原NuGet包确保所有依赖项正确安装。设置启动项目将AutoDarkModeApp/AutoDarkModeApp.csproj设为启动项目按F5调试运行。核心模块开发主题切换逻辑主题切换的核心逻辑位于AutoDarkModeSvc/Core/ThemeManager.cs主要通过调用Windows API实现系统主题切换。以下是简化的切换逻辑代码public void SwitchTheme(Theme newTheme) { // 更新注册表中的主题设置 RegistryHandler.SetTheme(newTheme); // 通知系统主题变化 SystemEventHandler.NotifyThemeChanged(newTheme); // 执行组件切换如壁纸、光标 ComponentManager.ApplyComponents(newTheme); }新增功能示例自定义快捷键添加配置项在AutoDarkModeLib/Configs/AdmConfig.cs中添加快捷键配置模型public class HotkeySettings { public bool Enabled { get; set; } false; public Dictionarystring, string Shortcuts { get; set; } new Dictionarystring, string(); }实现快捷键注册在AutoDarkModeSvc/Handlers/HotkeyHandler.cs中添加全局快捷键监听逻辑使用Windows APIRegisterHotKey。UI集成在设置界面AutoDarkModeApp/Views/HotkeysPage.xaml添加配置控件并绑定ViewModelHotkeysViewModel.cs。模块开发规范代码风格遵循C#编码规范使用项目根目录中的.editorconfig文件统一格式。依赖注入新功能模块需通过依赖注入DI管理参考AutoDarkModeSvc/Services/中的现有服务实现。单元测试核心逻辑需编写单元测试测试项目位于AutoDarkModeTests/若不存在可创建。贡献示例扩展浏览器支持背景项目当前支持Edge浏览器的主题同步但未覆盖Chrome等其他浏览器。以下是扩展Chrome支持的开发步骤。实现步骤添加浏览器配置在AutoDarkModeLib/Enums.cs中扩展BrowserType枚举public enum BrowserType { Edge, Chrome, Firefox }实现Chrome主题切换在AutoDarkModeSvc/Handlers/AppsSwitchHandler.cs中添加Chrome注册表操作private void SetChromeTheme(Theme theme) { var regPath Software\Google\Chrome\AutoDarkMode; RegistryHandler.SetValue(RegistryHive.CurrentUser, regPath, Mode, theme Theme.Dark ? 1 : 0); }UI配置界面在AutoDarkModeApp/Views/SystemAreasPage.xaml添加Chrome开关控件CheckBox ContentGoogle Chrome IsChecked{x:Bind ViewModel.ChromeEnabled, ModeTwoWay} /测试验证使用Wiki/DarkReader_InstallationTutorial_MSEdge_1.png中的测试步骤替换为Chrome路径进行验证。社区贡献流程Issue管理Bug报告使用Issue模板填写复现步骤、环境信息如Windows版本、项目版本并附上AutoDarkModeSvc/Logs/中的相关日志。功能请求在Issue中详细描述需求场景标注enhancement标签。PR提交规范标题格式[Feature/Bugfix/Docs] Brief description如[Feature] Add Chrome theme synchronization。提交信息使用清晰的commit message如feat: add Chrome theme switch handler。关联Issue在PR描述中使用Fixes #123关联相关Issue实现自动关闭。代码审查响应速度维护者通常会在48小时内回复PR若未收到反馈可在Issue中维护者。修改要求根据审查意见修改代码确保通过CI检查如构建、单元测试。总结通过参与翻译和开发你可以帮助Windows-Auto-Night-Mode覆盖更多语言和功能场景。无论是修复一个翻译错误还是实现一个全新特性每一份贡献都能让项目更加完善。项目的成功离不开社区的支持期待你的参与资源链接官方文档Wiki/配置示例AutoDarkModeApp/appsettings.json开发指南CONTRIBUTING.md若不存在可参考PR模板创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表