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 版本。这是最彻底的方式,但需要源码、依赖和编译环境。
三、建议操作顺序
- 先保持当前插件库稳定,确认 Grasshopper 能正常启动。
- 为所有插件建立 HTML 教程和中文索引,先解决“能查到、能看懂”。
- 挑选你最高频使用的 20 到 50 个英文组件,手工或半自动制作中文包装电池。
- 每做一批包装电池,就启动 Rhino 7 + Grasshopper 测试一次。
- 如果启动变慢,减少包装数量,优先保留最常用组件。
四、端口中文化注意事项
- 编译插件原端口名不建议直接改,只能通过包装电池提供中文端口。
- GhPython 的输入端口名常常就是代码变量名,改端口名等于改变量名。
- 单字母端口如
x、y、z、a、b、c、m、p、r、t、i、o不建议改变量名。 - 建议保留 Brep、Mesh、Curve、Line、Point、Plane、Vector、Tree、Data、List、Item、Path 这些常用英文缩写。
推荐结论:正式插件本体保持原样;教程和索引先补齐;之后只给常用组件做中文包装电池。这样既能中文搜索和理解,又不会破坏原插件逻辑。