「切换语言」使用手册v1.6.1 - Blender 插件

插件下载链接1(官方在线扩展插件平台)插件下载链接2(Github Release)项目代码仓库链接离线文档 PDF 链接文档 LaTeX 源码链接
点击跳转点击跳转点击跳转点击跳转点击跳转

1   介绍

一款 blender 插件,旨在通过一键快速、轻松地在两种语言之间切换用户界面,而非重复打开偏好设置。

1.1   背景

在早期进行 blender 手册翻译工作时,因需要校对相关 UI 内容,本人频繁地在中英文之间切换软件的用户界面语言。但每次繁琐地使用偏好设置进行语言切换令人苦不堪言,索性就开发一款插件以简化这操作。

1.2   面向人群

本插件主要面向需要频繁切换界面语言的人群,常见的有如下人群:

  • 翻译者:校对相关内容。
  • CG 学习者:跟进外语教程。

1.3   插件目前实现的功能

  • 一键切换 UI 语言(支持 17 种语言相互切换)
  • 一键打开用户偏好设置
  • 一键设置自定义的blender偏好设置——「加载我的设置」功能
  • 一键切换提示模式:默认模式和开发者模式(拥有切换当前UI提示级别的菜单)
  • 一键删除当前场景集合和物体
  • 一键添加视频进度条

注:更多详细介绍请查看「插件功能」小节内容。

2   用法

若想获取插件的最新功能,请下载项目代码master分支的最新代码,然后参照本地安装步骤进行安装即可。

2.1   下载及安装(v4.2+)

2.1.1   在线安装

blender v4.2之后版本(含v4.2)上线了extensions插件功能,允许从官方维护的扩展平台中直接安装扩展插件。本插件已上架官方扩展平台,可以直接搜索「toggle language」进行安装。

安装步骤:

  1. 运行 Blender。
  2. 打开「Preferences/用户偏好设置」(Menu/菜单 >Edit/编辑 >Preferences/用户偏好设置)。
  3. 选择「Get Extensions/获取扩展」选项卡。
  4. 点击「Allow Online Access/允许在线访问」
  5. 搜索框内输入「toggle language」
  6. 点击「Install/安装」
图1.1: 在线安装步骤1&2
图1.2: 在线安装步骤3&4

2.1.2   本地安装

blender v4.2之后版本(含v4.2)的本地安装方式和blender v4.2之前版本类似,「Get Extensions/获取扩展」和「Add‐ons/插件」选项卡均有「Install from Disk.../从磁盘安装...」的选项,如图1.3和图1.4。具体安装步骤可以参见「下载及安装(v2.83-v4.1.1)」,从本地安装成功后,插件会自行启动。

图1.3: 获取扩展选项卡
图1.4: 插件选项卡

2.2   下载及安装(v2.83-v4.1.1)

2.2.1   下载步骤

注:blender v2.83默认是启用翻译功能,这也是本插件要求将v2.83作为最低版本的缘由。本插件也许在v2.83以下版本能够运行,但不推荐,因为没测试过。

2.2.2   安装步骤

  1. 运行 Blender。
  2. 打开「Preferences/用户偏好设置」(Menu/菜单 >Edit/编辑 >Preferences/用户偏好设置)。
  3. 选择「Add‐ons/插件」选项卡。
  4. 点击「Install.../安装」后,选择先前所下载好的 ToggleLanguage.zip 并点击确定。
  5. 启用插件。
图 1.5: 安装方法
图 1.6: 启用插件

2.3   插件 UI

如图 1.7 所示,启用插件后,可看见插件位于顶部菜单栏末尾处。插件 UI 从左往右看,有四个元素:

  1. 语言切换按钮
  2. 实用工具菜单
  3. 插件的个性化设置菜单
  4. 用户偏好设置按钮
图 1.7: 插件UI

2.4   插件功能

注:以下按照 UI 排列位置进行功能介绍。 UI 排列位置详见「插件UI」小节

  1. 语言切换按钮(快捷键 F5):在两种语言之间切换blender用户界面语言(支持 17 种语言相互切换)。
  2. 实用工具菜单:一些实用工具集合
    1. 删除所有集合和物体:清空场景,即删除当前场景中的所有集合和物体。
    2. 添加视频进度条:在VSE的频道顶部空白区域添加视频进度条,如图1.8和图1.9所示。视频进度条为一个复合片段,相关参数为:置于视频顶部,高度44px,透明度0.9,底部进度条颜色RGB(0.45, 0.45, 0.45),滚动进度条颜色RGB(0.255, 0.255, 0.255)。P.S. 后续会开发增设一个调整视频进度条参数的窗口。
  3. 设置菜单:插件的个性化设置。
    1. UI 提示方案菜单:选择相应 UI 提示的方案。
      1. 默认模式:禁用「开发选项」「Python 工具提示」,如图 1.10 所示。
      2. 开发者模式:启用「开发选项」「Python 工具提示」,如图 1.11 所示。
    2. 翻译新建数据块的名称按钮:启用/禁用新建数据块名称的翻译功能1,默认值为禁用,如图 1.12 所示,其对应在偏好设置中的选项如图 1.13 所示。在非英语界面环境中,启用该功能可使 blender 新建数据块的名称为当前语言,如图 1.14所示,新建平面的名称为「平面」,而非「plane」。
    3. 加载我的设置按钮:部署我个人的偏好设置。所涉及的设置选项详见我的设置。该功能默认会覆盖你原有的 blender 设置(启动文件和偏好设置),请详细了解所涉及的设置项后再确认是否使用该功能。2
    4. 加载初始设置按钮:加载初始的偏好设置和启动文件,即重置 blender,还原成初次安装blender时的状态。
  4. 用户偏好设置按钮(快捷键 Ctrl+Alt+U):打开用户偏好设置窗口。

2.4.1   插件切换语言的设置

在本插件的偏好设置面板中,可以设置切换语言功能所需的语言项,如图 1.6 所示,两个语言项的默认值分别为简体中文和英语。两个语言项不分前后顺序,只要设置好两种不同语言,插件便可以在这两种语言之间切换 UI 界面。

目前本插件在blender v4.0以后(含blender v4.0)支持 18 种语言3相互切换,详见下表:

  • Simplified Chinese (简体中文)
  • Traditional Chinese (繁體中文)
  • English (English)
  • Catalan (Català)
  • Spanish (Español)
  • French (Français)
  • Japanese (日本語)
  • Slovak (Slovenčina)
  • Czech (Čeština)
  • German (Deutsch)
  • Italian (Italiano)
  • Georgian (ქართული)
  • Korean (한국어)
  • Brazilian Portuguese (Português do Brasil)
  • Portuguese (Português)
  • Russian (Русский)
  • Ukrainian (Українська)
  • Vietnamese (Tiếng Việt)

目前本插件在blender v4.0以前(不含blender v4.0)支持 17 种语言4相互切换,详见下表:

  • Simplified Chinese (简体中文)
  • Traditional Chinese (繁體中文)
  • English (English)
  • Spanish (Español)
  • Japanese (日本語)
  • Slovak (Slovenčina)
  • Ukrainian (Український)
  • Vietnamese (tiếng Việt)
  • Arabic (ﺔﻴﺑﺮﻌﻟﺍ)
  • Czech (Český)
  • German (Deutsch)
  • French (Français)
  • Italian (Italiano)
  • Korean (한국 언어)
  • Brazilian Portuguese (Português do Brasil)
  • Portuguese (Português)
  • Russian (Русский)
图1.8:视频进度条-复合片段
图1.9:复合片段「视频进度条」内的子片段
图 1.10: UI 提示方案菜单:默认模式
图 1.11: UI 提示方案菜单:开发者模式
图 1.12: 插件中的翻译新建数据块名称的选项
图 1.13: 偏好设置中的翻译新建数据块名称的选项
图 1.14: 翻译新建数据块名称的效果(图示界面语言为简中)

2.4.2   我的设置(我本人的一些 blender 设置参数)

开发这个功能主要是为了方便我一键设置恢复个人的偏好设置,比如更换设备使用blender时,通过下载安装本插件就可以一键恢复设置,而无需拷贝配置文件。

详细的设置参数情况如下:

  1. 偏好设置部分:
    1. 界面 > 分辨率缩放到 1.3
    2. 界面>编辑器>状态栏>启用「场景统计数据」「系统内存」「显存」(v2.90以上版本才有)
    3. 主题 > White
    4. 插件 > 启用插件 Node Wrangler、Cell Fracture、Auto Tile Size、Development: Icon Viewer(v3.0以上版本的不含有Auto Tile Size插件)
    5. 视图切换 > 启用「围绕选择物体选择」和「缩放至鼠标位置」
    6. 键位映射 > 启用「Pie Menu on Drag」和「Extra Shading Pie Menu Items」
    7. 系统
      1. Cycles 渲染设备 > 有显卡设备时会自动选择启用显卡设备,无显卡时设置为默认 NONE(当检测到英伟达显卡时,若 OPTIX 可用时则优先选择。默认下仅启用显卡,不含 CPU,若需要 CPU 和 GPU 混合渲染,请在加载我的设置的设置参数中开启)
      2. 内存和限额 > 撤销次数 >256
      3. 声音 > 音频设备 > SDL(v2.83版本才有)
    8. 保存 & 加载 > 启用「压缩文件」、关闭「自动保存」
    9. 文件路径
      1. 纹理:H:/textures/
      2. 渲染输出:D:/process/
  2. 启动界面部分(注意:使用「我的偏好设置」功能,会同时将以下设置保存进启动界面文件):
    1. 属性编辑器
      1. 渲染属性
        1. 渲染引擎 > Cycles
        2. 设备 > GPU 计算(有GPU设备时会自动启用,无显卡则设置为CPU)
        3. 采样 > 启用「自适应采样」(v2.9 之后版本才有,含 v2.9。v3.0 之后版本默认启用)
        4. 采样>启用「自适应采样」>噪波阈值> 0.1
        5. 采样 > 最大采样 > 渲染设置为 250,视图设置为 1
        6. 采样 > 降噪 > 通道 > 反照和法向
        7. 采样 > 降噪 > 降噪器(当 OPTIX 可用时优先选择,v2.9 系列版本设置为 NLM,其余为 OPEN IMAGEDENOISE,v2.83 是自带的其他降噪方法)
        8. 采样>降噪>降噪器>OpenImageDenoise > 使用 GPU(v4.1 之后版本才有,含 v4.1)
        9. 采样 > 路径引导(纯 CPU 渲染才有,v3.4 之后版本才有,含 v3.4)
        10. 性能 > Auto Tile Size > Target Tile Size > 128(v3.0之前版本才有,不含v3.0,v3.0之后版本的不含有Auto Tile Size插件)
        11. 性能 > 内存 > 平铺尺寸 > 4096(v3.0之后版本才有,含v3.0,v3.0之前版本的没有分块渲染功能。设定值为4096是为了避免渲染4k图像时导致分块。)
        12. 性能 > 线程 > 多线程模式 > 固定
        13. 性能 > 线程 > 线程 > 总线程数量-2(自动检测总线程数量并计算设置,保留两个线程给系统。例如 CPU 总线程为 8,那么插件会设置为6)
        14. 性能 > 最终渲染 > 持久数据
      2. 输出属性 > 输出路径:D:/process/
    2. 顶部菜单栏>文件>外部数据>自动打包资源

考虑到「加载我的设置」功能比较偏个性化,并非适合所有人,所以我专门又开发设计了一些设置值来控制其中部分功能。如果你想用「加载我的设置」功能,但又不喜欢其中所有功能,就可以通过这些设置值来单独控制。这些设置值位于插件偏好设置面板中,如图 1.15 所示,首先设置对应参数,再应用「加载我的设置」功能。

关于「加载我的设置」的一些设置参数如下:

  • 禁用路径设置:禁用路径参数设置(默认不启用,即设置路径参数)。
  • 禁用主题设置:禁用主题参数设置(默认不启用,即设置个性化主题)。
  • 禁止保存启动文件:在应用「加载我的设置」时,禁止保存启动文件,因此所设置的参数不会写入启动文件中(默认不启用,即保存启动文件)。
  • 在 GPU 渲染设置中使用 CPU:Cycles 渲染设备中同时选择 CPU(默认不启用,即纯 GPU 渲染,不含 CPU 设备。启用后效果是 CPU 和 GPU 混合渲染)。
  • 预设主题:blender 主题(默认白色,当启用「禁用主题设置」后,该选项无效)。
图 1.15: 关于「加载我的设置」的一些设置参数

2.4.3   关于使用翻译新建数据块的名称按钮的说明

需要注意的是,翻译新建数据块的名称按钮设置值是无法随用户偏好设置自动保存。该功能的代码实现:其 property 属性值是注册在 bpy.types.Scene 中。因此,无法通过用户偏好设置中自动保存设置的功能进行存储。不像本插件偏好设置面板中的两种语言的属性值,后者是通过 bpy.types.AddonPreferences 类实现的,它可以通过用户偏好设置中自动保存设置的功能进行存储5

建议:若需要保存该功能的设置值,请保存一个工程文件6(.blend),该功能的设置值会保存在这个工程文件。

3   已知问题

3.1   加载初始设置按钮导致闪退

在未保存工程文件7(.blend)的情况下,加载初始设置功能会有机率引起异常码EXCEPTION_ACCESS_VIOLATION,从而导致 blender 闪退,目前暂未查明原因。在导致 blender 闪退时,重置功能的代码执行的不完整,一般是成功地加载初始偏好设置并保存,而初始启动文件并未成功加载并保存。因此,在该功能导致 blender 闪退后,还请用户自行重置偏好设置及启动文件。

建议:在使用该功能之前,请先保存一个工程文件(.blend)。

4   开发记录

4.1   开发及测试环境

OS: Win10 v22H2 / Kali Linux 2021.3 / Mac
Blender: v2.83 ‑ v4.2

4.2   更新历史

表 1.1 记录了本插件各个版本的更新历史。

表 1.1: 插件的更新历史
版本更新日期更新内容
v1.6.12024-07-01在blender v4.1中为OpenImageDenoise启用gpu;支持blender v4.2
v1.62023-11-19修复并适配blender v4.0
v1.5.12023/08/23修复:optix_exist 变量引用前未分配;优化:润色翻译
v1.52023/04/21新增功能:添加视频进度条;新增功能:添加实用工具菜单……
v1.42023/04/16新增功能:删除所有集合和物体;新增功能:添加复选框禁用保存启动文件……
v1.3.12023/03/29更新文档链接
v1.32023/01/24修复:optix_exist 变量引用前未分配;优化降噪设置⋯⋯
v1.22023/01/15优化「加载我的设置」功能;优化「翻译新建数据块名称」 功能⋯⋯
v1.12022/10/16修复偏好设置一直被修改导致无法消星的情况;移除keymaps.py中的注释代码……
v1.02022/01/12移除F6快捷键的支持;paths路径统一为小写格式……
v0.92021/11/06重构:拆分文件规范化开发;加载我的设置功能支持更多的系统和硬件平台……
v0.82021/08/30支持切换更多语言;支持完整翻译插件 UI;为某些功能添加交互提示(信息框,确认框等)……
v0.72021/07/11我的偏好设置支持 blender v2.93;重写 property 代码
v0.62021/03/10添加布尔值按钮‐新数据翻译;支持快捷键;代码重构,插件翻译重构……
v0.52020/12/08支持 blender v2.91;支持从.zip 文件安装插件……
v0.5‐beta2020/09/20添加菜单用以选择 UI 提示方案
v0.42020/08/03代码项目重命名为 ToggleLanguage;按钮 UI 放置于最右端;添加新按钮以快速查看 preferences
v0.32020/06/05更新至 blender 2.83 API;修改部分类名;添加文档链接;修改完善许可说明
v0.22020/05/21清除未使用属性的报错
v0.12020/05/12完成基础的功能设计「一键切换」

注:更多详细的信息,请查看 Release Notes

5   作者

ToggleLanguage © Mr. Kin, 项目代码采用 GNU GPL v3.0 许可协议进行发布。
由 Mr. Kin 著作并维护。

6   参考文献

[1] CONLAN C. The Blender Python API[M]. Bethesda, Maryland: Apress, 2017: 65-85. DOI: 10.1007/978-1-4842-2802-9.
[2] Blender Python API Documentation[EB/OL]. https://docs.blender.org/api/current/index.html.
[3] Blender Stackexchange[EB/OL]. https://blender.stackexchange.com/questions/.
[4] 一花一世界,一叶一乾坤. Blender 插件编写指南[EB/OL]. https://www.cnblogs.com/yaoyu126/p/9319746.html.
[5] Python Documentation[EB/OL]. https://docs.python.org/3/library/functions.html?highlight=dir#dir.
[6] Nikita. Localization of Blender add-ons –with API[EB/OL]. https://b3d.interplanety.org/en/localization-of-blender-add-ons-with-api/.
[7] Nikita. Add-on preferences panel[EB/OL]. https://b3d.interplanety.org/en/add-on-preferences-panel/.
[8] Blendermonkey. How to save custom user preferences for an addon[EB/OL]. https://devtalk.blender.org/t/how-to-save-custom-user-preferences-for-an-addon/10362.
[9] Skylumz. How to popup simple message box from python console?[EB/OL]. https://blender.stackexchange.com/questions/109711/how-to-popup-simple-message-box-from-python-console.
[10] P2or. How to call a confirmation dialog box?[EB/OL]. https://blender.stackexchange.com/questions/73286/how-to-call-a-confirmation-dialog-box.
[11] Nikita. Creating pop-up panels with user UI in Blender add-on[EB/OL]. https://b3d.interplanety.org/en/creating-pop-up-panels-with-user-ui-in-blender-add-on/.
[12] TEUSINK D. Force GPU rendering python script[EB/OL]. https://developer.blender.org/T54099.
[13] Lewis2e. Need a way to detect if a valid GPU device is available from Python[EB/OL]. https://devtalk.blender.org/t/need-a-way-to-detect-if-a-valid-gpu-device-is-available-from-python/17080.
[14] NEUMANN N. Python API for getting available devices is getting even more awkward in 2.81[EB/OL]. https://developer.blender.org/T71172.
[15] Quarkpol. How setup Cycles Compute Device in console[EB/OL]. https://blender.stackexchange.com/questions/154249/how-setup-cycles-compute-device-in-console.
[16] User2746401. Render using all cores except one (or N)[EB/OL]. https://blender.stackexchange.com/questions/45213/render-using-all-cores-except-one-or-n.
[17] Nikita. Class naming conventions in Blender 2.8 Python API[EB/OL]. https://b3d.interplanety.org/en/class-naming-conventions-in-blender-2-8-python-api/.
[18] BARTON C. Python API, changes to type registration in 2.8[EB/OL]. https://developer.blender.org/T52599.
[19] Blender Addon UI Cookbook[EB/OL]. https://archive.blender.org/wiki/index.php/Dev:Py/Scripts/Cookbook/Code_snippets/Interface/.
[20] Rendering on command‑line with GPU?[EB/OL]. https://blender.stackexchange.com/questions/156503/rendering‑on‑command‑line‑with‑gpu/156680#.
[21] Why does getting Cycles devices fail with Blender 3.0?[EB/OL]. https://blender.stackexchange.com/questions/255371/why‑does‑getting‑cycles‑devices‑fail‑with‑blender‑3‑0.
[22] Python API for getting available devices is getting even more awkward in 2.81[EB/OL]. https://developer.blender.org/T71172.
[23] How to use bpy.context.scene.use_denoising in Blender 2.8?[EB/OL]. https://blender.stackexchange.com/questions/163941/how‑to‑use‑bpy‑context‑scene‑use‑denoising‑in‑blender‑2‑8?noredirect=1&lq=1.
[24] How Do I Speed Up My Render Times In Cycles And Cycles X?[EB/OL]. https://www.blenderbasecamp.com/home/how-do-i-speed-my-render-times-in-cycles-and-cycles-x/.
[25] How to speed up Blender's Cycles X rendering engine[EB/OL]. https://irendering.net/how-to-speed-up-blenders-cycles-x-rendering-engine/.
[26] SCRIPT TO DELETE ALL OBJECTS IN 3D WINDOW[EB/OL]. https://blendernet.blogspot.com/2020/10/script‑to‑delete‑all‑objects‑in‑3d.html.
[27] How to list all collections and their objects?[EB/OL]. https://blender.stackexchange.com/questions/144928/how‑to‑list‑all‑collections‑and‑their‑objects.
[28] How to get all collections of the current scene?[EB/OL]. https://blender.stackexchange.com/questions/167878/how‑to‑get‑all‑collections‑of‑the‑current‑scene.
[29] Selecting a specific Collection by name and then deleting it[EB/OL]. https://blender.stackexchange.com/questions/173867/selecting‑a‑specific‑collection‑by‑name‑and‑then‑deleting‑it.
[30] How to programmatically add an effect strip[EB/OL]. https://blender.stackexchange.com/questions/73955/how‑to‑programmatically‑add‑an‑effect‑strip#.
[31] Blender, video sequencer, insert keyframes for transform.offset by script[EB/OL]. https://stackoverflow.com/questions/44238673/blender‑video‑sequencer‑insert‑keyframes‑for‑transform‑offset‑by‑script.
[32] How to Create Extensions[EB/OL]. https://docs.blender.org/manual/en/4.2/advanced/extensions/getting_started.html.


  1. 1.v1.1之后版本不再是强制接管该功能。虽然可以通过用户偏好设置来设置一个不同于插件的设置值,但在使用插件的该功能或者语言切换按钮后,插件会对该项改写修正为插件的设置值。
  2. 2.理论上支持任意系统、任意安装路径、任意显卡平台的情况,但Linux OS和Mac OS比较少测试,可能会存在有bug。
  3. 3.即blender v4.0以后(含blender v4.0)内置翻译语言列表中 Complete 和 In Progress 两个列表中的语言,共18种。暂不考虑加入 Starting 列表中的语言,因为其变动性较高,有可能被删除或者新添加。
  4. 4.即blender v4.0以前(不含blender v4.0)内置翻译语言列表中 Complete 和 In Progress 两个列表中的语言,共17种。暂不考虑加入 Starting 列表中的语言,因为其变动性较高,有可能被删除或者新添加。
  5. 5.实际上,在禁用用户偏好设置的自动保存设置功能后,本插件偏好设置面板中的两种语言的属性值也无法自动存储,需要保存在某一工程文件中才行。
  6. 6.保存在启动文件也是可行的。
  7. 7.例如通过安装路径打开主程序的情况或者打开一个工程文件后进行修改却未保存的情况。