Grasshopper 英文插件汉化操作方案

本方案用于说明:哪些 Grasshopper 电池可以直接改中文,哪些只能做中文索引或中文包装电池,以及建议按什么顺序操作。

底线:不要直接修改 .gha.dll.rhp 编译文件。插件的工具名、端口名、分类、搜索名通常写在编译代码里,硬改二进制很容易导致插件不能加载、签名失效、依赖断裂或 Rhino/GH 启动卡死。

一、可操作空间结论

对象能不能改成中文推荐方式风险
.ghuser 用户电池 可以 备份后修改 Name、NickName、Description、输入输出端口显示信息 低到中。GhPython 输入变量名被代码引用时不要乱改。
.gh / .ghx 文件里的自定义电池 可以局部改 备份后改画布对象名称、说明、分组备注 中。需要确认改名不会影响脚本变量。
GhPython 电池 可以改说明,变量端口需谨慎 单字母端口如 x/y/z/a/b/c/m/p/r/t/i/o 不改变量名,只在说明里写中文含义 中。端口变量名就是 Python 代码变量名,改错会直接报错。
.gha 编译插件 不要直接改本体 做中文索引,或为常用组件单独做中文包装电池 直接改本体风险高;包装电池风险低但会增加少量启动负担。
.dll / .rhp 不要改 只读分析依赖、版本和说明 高。它们可能是插件依赖或 Rhino 插件本体。

二、编译插件汉化的正确路线

路线 A:中文索引,最安全

从插件文件、教程、组件栏、作者说明里整理英文组件名、英文端口、分类,然后建立中文搜索表。优点是完全不改变插件,启动风险最低。缺点是 Grasshopper 搜索框里仍然主要显示原英文名。

路线 B:中文包装电池,适合高频组件

%APPDATA%\Grasshopper\UserObjects\CY中文包装\ 下为常用英文组件做 .ghuser 包装。包装电池使用中文名称、中文 NickName、中文说明、中文端口提示,内部仍调用原始英文组件,不改变原插件逻辑。

建议只包装常用组件,不要把大型插件所有组件一次性包装。包装太多会让组件服务器要加载更多 UserObjects,可能重新增加启动压力。

路线 C:从源码重建,只有拿到源码才适合

如果插件有源码,可以在源码里修改组件 Name、NickName、Description、RegisterInputParams、RegisterOutputParams,然后重新编译 Rhino 7 / .NET Framework 版本。这是最彻底的方式,但需要源码、依赖和编译环境。

三、建议操作顺序

  1. 先保持当前插件库稳定,确认 Grasshopper 能正常启动。
  2. 为所有插件建立 HTML 教程和中文索引,先解决“能查到、能看懂”。
  3. 挑选你最高频使用的 20 到 50 个英文组件,手工或半自动制作中文包装电池。
  4. 每做一批包装电池,就启动 Rhino 7 + Grasshopper 测试一次。
  5. 如果启动变慢,减少包装数量,优先保留最常用组件。

四、端口中文化注意事项

推荐结论:正式插件本体保持原样;教程和索引先补齐;之后只给常用组件做中文包装电池。这样既能中文搜索和理解,又不会破坏原插件逻辑。