diff --git a/app/ts/zh_CN.ts b/app/ts/zh_CN.ts index efa8b1fad..858f3084f 100644 --- a/app/ts/zh_CN.ts +++ b/app/ts/zh_CN.ts @@ -4,98 +4,98 @@ AudioParams - + %1 Hz %1 Hz - + Mono 单声道 - + Stereo 立体声 - + 2.1 2.1 - + 5.1 5.1 - + 7.1 7.1 - - + + Unknown (0x%1) 未知 (0x%1) - + Unsigned 8-bit (Packed) 无符号8位(压缩) - + Signed 16-bit (Packed) 有符号16位(压缩) - + Signed 32-bit (Packed) 有符号32位(压缩) - + Signed 64-bit (Packed) 有符号64位(压缩) - + Float 32-bit (Packed) 浮点32位(压缩) - + Float 64-bit (Packed) 浮点64位(压缩) - + Unsigned 8-bit (Planar) 无符号8位(平面) - + Signed 16-bit (Planar) 有符号16位(平面) - + Signed 32-bit (Planar) 有符号32位(平面) - + Signed 64-bit (Planar) 有符号64位(平面) - + Float 32-bit (Planar) 浮点32位(平面) - + Float 64-bit (Planar) 浮点64位(平面) @@ -103,12 +103,12 @@ Config - + Error loading settings 加载设置时出错 - + Failed to load application settings. This session will use defaults. %1 @@ -117,89 +117,48 @@ %1 - + Error saving settings 保存设置时出错 - Failed to save application settings. The application may lack write permissions to this location. - 无法保存应用程序设置。应用程序可能没有对此位置的写入权限。 - - - + Failed to save application settings. The application may lack write permissions for this location. 未能保存应用程序设置。应用程序可能缺少此位置的写入权限. - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - 文件名:%1 - - - This footage is not valid for use - 此素材不能用 - - ImportTool - - Don't ask me again + + Don't ask me again 不再询问 - + No Active Sequence 没有活动序列 - + No sequence is currently open. Would you like to create one? 没有打开的序列。您要创建一个序列吗? - + Automatically Detect Parameters From Footage 自动检测素材参数 - + Set Parameters Manually 手动设置参数 - - MoveItemCommand - - Move Item - 移动项 - - - - NodeCopyPasteWidget - - Error pasting nodes - 粘贴节点时出错 - - - Failed to paste nodes: %1 - 无法粘贴节点:%1 - - NodeFactory - + None @@ -207,107 +166,107 @@ NodeValue - + None - + Integer 整数 - + Float 浮点数 - + Rational 有理数 - + Boolean 布尔值 - + Color 颜色 - + Matrix 矩阵 - + Text 文字 - + Font 字体 - + File 文件 - + Texture 纹理 - + Samples 采样 - + Vector 2D 矢量 2D - + Vector 3D 矢量 3D - + Vector 4D 矢量 4D - + Bezier 贝塞尔曲线 - + Video Parameters 视频参数 - + Audio Parameters 音频参数 - + Subtitle Parameters 字幕参数 - + Binary - + - + Unknown 未知 @@ -315,7 +274,7 @@ NodeViewContext - + %1 [%2] :: %3 - %4 %1 [%2] :: %3 - %4 @@ -323,12 +282,12 @@ NodeViewItem - + %1... %1... - + Output 输出 @@ -336,17 +295,17 @@ OlivePluginInstance - + Change %1 更改 %1 - + %1 (+%2) %1(+%2) - + Edit Parameters 编辑参数 @@ -354,32 +313,32 @@ PresetManager - + Save Preset 保存预设 - + Set preset name: 设置预设名称: - + Invalid preset name 无效的预设名称 - + You must enter a preset name 您必须输入预设名称 - + Preset exists 预设存在 - + A preset with this name already exists. Would you like to replace it? 存在具有此名称的预设。您要替换它吗? @@ -387,162 +346,114 @@ QObject - + Common Media Files - + - + Video Files - + - + Audio Files - + - + Image Files - + - + Plugin Error - + - + Plugin %1 failed because connected inputs have different frame rates. The last operation has been undone. - + - + Plugin %1 encountered an error: %2 The last operation has been undone. - + - + Plugin %1 failed to get clip preferences. The last operation has been undone. - + RatioDialog - - Enter custom ratio (e.g. "4:3", "16/9", etc.): + + Enter custom ratio (e.g. "4:3", "16/9", etc.): 输入自定义比率 (例如“4:3”、“16/9”,等): - + Invalid custom ratio 无效的自定义比率 - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. + + Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. 无法将“%1”解析为宽高比,请使用‘:’或‘/’分隔符组成的有理分式。 - - RenameItemCommand - - Rename Item - 重命名项 - - - - Sequence - - %1 FPS - %1 FPS - - Serializer - + %1 on line %2 %1 在线 %2 - - Stream - - %1: Audio - %2 Channels, %3Hz - %1:音频 - %2 声道,%3Hz - - - %1: Unknown - %1:未知 - - - %1: Image - %2x%3 - %1:图像 - %2x%3 - - - %1: Video - %2x%3 - %1:视频 - %2x%3 - - - - TimelineViewBlockItem - - %1 - -In: %2 -Out: %3 -Length: %4 - %1 - -入: %2 -出: %3 -长度: %4 - - Tool - + Empty 空白 - + Bars 彩条 - + Solid 纯色 - + Title 标题 - + Tone 音调 - + Unknown 未知 - + Shape 形状 - + Subtitle 字幕 @@ -550,12 +461,12 @@ Length: %4 UndoStack - + Undo %1 撤销 %1 - + Redo %1 重做 %1 @@ -563,77 +474,77 @@ Length: %4 VideoParams - + 8-bit 8 位 - + 10-bit Packed - + - + 16-bit Integer 16 位整型 - + Half-Float (16-bit) 半精度浮点型(16位) - + Full-Float (32-bit) 全精度浮点型(32位) - + Unknown (0x%1) 未知 (0x%1) - + %1 FPS %1 FPS - + Square Pixels (%1) 正方形像素 (%1) - + NTSC Standard (%1) NTSC 标准 (%1) - + NTSC Widescreen (%1) NTSC 宽屏 (%1) - + PAL Standard (%1) PAL 标准 (%1) - + PAL Widescreen (%1) PAL 宽屏 (%1) - + HD Anamorphic 1080 (%1) HD 变形 1080 (%1) - + Full 完全 - + 1/%1 1/%1 @@ -641,161 +552,130 @@ Length: %4 main - + No project filename set to decompress - + - - Failed to open file "%1" - + + Failed to open file "%1" + - + Decompressing project... - + - - + + Failed to decompress, project may be corrupt - + - - Outputting to file "%1" - + + Outputting to file "%1" + - - Failed to open output file "%1" - + + Failed to open output file "%1" + - + Decompressed successfully - + - + Show this help text 显示此帮助文本 - + Show application version 显示应用程序版本 - + Start in full-screen mode 以全屏模式启动 - + Export only (No GUI) 仅导出 (无 GUI) - + Override language with file 使用文件覆盖语言 - + qm-file qm文件 - + Decompress project file (No GUI) - + - + Project to open on startup 在启动时打开的项目 - - Don't load plugins - + + Don't load plugins + - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. + + Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. Please update your graphics driver to the latest version and try again. Current driver information: %1 %2 %3 - + - + Launch with debug console 使用调试控制台启动 - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Olive. - -Please update your graphics driver to the latest version and try again. - -Current driver information: %1 %2 %3 - 计算机的图形驱动程序似乎不支持帧缓冲区。这很可能意味着您的图形驱动程序不是最新的,或者您的图形卡太旧,无法运行Olive。 - -请将图形驱动程序更新到最新版本,然后重试。 - -当前驱动程序信息:%1 %2 %3 - - - - olive - - Center: - 居中: - - - Bezier - 贝塞尔曲线 - - - In: - 入: - - - Out: - 出: - olive::AV1Section - + Preset: 预设: - + This parameter governs the efficiency/encode-time trade-off. Lower presets will result in an output with better quality for a given file size, but will take longer to encode. Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - + - + Compression Method: 压缩方式: - + This parameter governs the quality/size trade-off. Higher CRF values will result in a final output that takes less space, but begins to lose detail. Lower CRF values retain more detail at the cost of larger file sizes. The possible range of CRF in SVT-AV1 is 1-63. - + - + Constant Rate Factor 恒定速率因子(CRF) @@ -803,97 +683,58 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::AboutDialog - + About %1 关于 %1 - + Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - + - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - + + This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. + - + <b>Oak Video Editor relies on support from the community to continue its development.</b> - + - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - + + Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. + - + <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - + - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive 是免费的非线性视频编辑器。此应用程序基于 GNU 通用公共许可证(GNU GPL)条款发布。 - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive 团队有义务告知用户可以从官网下载 Olive 的源码。翻译者已尝试用通俗易明的方式进行翻译,希望大家使用愉快。请支持自由开源软件,谢谢。 - - - + Welcome to %1 欢迎来到 %1 - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Olive是免费开源非线性视频编辑器.此软件在GNU GPL3下获得许可。 - - - <b>Olive relies on support from the community to continue its development.</b> - <b>Olive的发展依靠社区的支持</b> - - - Olive wouldn't be possible without the support of gracious donations from the following people. - 如果没有以下人士的慷慨捐赠,Olive不可能发展。 - - - <html>%1 If you like this project, please consider making a <a href='https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> - <html>%1如果您喜欢这个项目,请考虑给予<a href='https://olivevideoeditor.org/donate.php'>一次捐赠</a>或<a href='https://www.patreon.com/olivevideoeditor'>成为会员</a>支持其发展</html> - - - - Don't show this message again + + Don't show this message again 不再显示信息 olive::ActionSearch - + Search for action... 操作搜索... - - olive::AudioInput - - Audio Input - 音频输入 - - - Audio - 音频 - - - Import an audio footage stream. - 导入音频素材流。 - - olive::AudioManager - + No output device is set 未设置输出设备 @@ -901,7 +742,7 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::AudioMonitorPanel - + Audio Monitor 音频监视器 @@ -909,12 +750,12 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::AutoRecoveryDialog - + Auto-Recovery 自动恢复 - + Load 加载 @@ -922,22 +763,22 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::BezierWidget - + Center: 居中: - + Bezier 贝塞尔曲线 - + In: 入: - + Out: 出: @@ -945,93 +786,85 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::Block - + Length 长度 - Media In - 媒体输入 - - - + Enabled 已启用 - - Speed - 速度 - olive::BlurFilterNode - + Blur 模糊 - + Blurs an image. 使图像变模糊。 - + Input 输入 - + Method 方法 - + Box 盒式 - + Gaussian 高斯 - + Radius 半径 - + Horizontal 水平 - + Vertical 垂直 - + Repeat Edge Pixels 重复边缘像素 - + Directional 方向 - + Radial 圆角 - + Direction 方向 - + Center 居中 @@ -1039,62 +872,62 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ChromaKeyNode - + Chroma Key 色度键 - + A simple color key based on the distance from the chroma of a selected color. 基于与选定颜色的色度的距离的简单颜色键。 - + Input 输入 - + Garbage Matte 垃圾遮片 - + Core Matte 核心遮片 - + Key Color 基本色调 - + Shadows 阴影 - + Highlights 高光 - + Upper Tolerance 上限公差 - + Lower Tolerance 下限公差 - + Invert Mask 反转遮罩 - + Show Mask Only 只显示遮罩 @@ -1102,73 +935,73 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::CineformSection - + Quality: 质量: - + Film Scan 3+ 胶片扫描3+ - + Film Scan 3 胶片扫描2+ - + - + Film Scan 2+ 胶片扫描2+ - + Film Scan 2 胶片扫描2 - + Film Scan 1.5 胶片扫描1.5 - + Film Scan 1+ 胶片扫描1+ - + Film Scan 1 胶片扫描1 - + High+ 高+ - + High - + Medium+ 中等+ - + Medium 中等+ - + Low+ 低+ - + Low @@ -1176,63 +1009,63 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ClipBlock - + Clip 片段 - + A time-based node that represents a media source. 基于时间的节点,表示一段媒体源。 - + Buffer 缓冲区 - + Video Clip 视频片段 - + Audio Clip 音频片段 - + Media In 媒体输入 - + Speed 速度 - + Reverse 颠倒 - + Maintain Audio Pitch 保持音频音调 - - + + Loop 循环 - + None - + Clamp 夹钳 @@ -1240,86 +1073,82 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorCoding - + Red 红色 - + Maroon 紫褐色 - + Orange 橙色 - + Brown 棕色 - + Yellow 黄色 - Olive - 橄榄 - - - + Oak - + - + Lime 石灰 - + Green 绿色 - + Cyan 青色 - + Teal - + - + Blue 蓝色 - + Navy 深蓝色 - + Pink 粉色 - + Purple 紫色 - + Silver 银色 - + Gray 灰色 @@ -1327,7 +1156,7 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorDialog - + Select Color 选择颜色 @@ -1335,57 +1164,57 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorDifferenceKeyNode - + Color Difference Key 色差键 - + A simple color key based on the distance of one color from other colors. 基于一种颜色与其他颜色的距离的简单颜色键. - + Input 输入 - + Garbage Matte 垃圾遮片 - + Core Matte 核心遮片 - + Key Color 基本色调 - + Green 绿色 - + Blue 蓝色 - + Shadows 阴影 - + Highlights 高光 - + Show Mask Only 只显示遮罩 @@ -1393,80 +1222,45 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorLabelMenu - + Color 颜色 - - olive::ColorManager - - Configuration - 配置 - - - Default Input - 默认输入 - - - Reference Space - 参考空间 - - - Scene Linear - 场景线性 - - - Compositing Log - 合成日志 - - - (built-in) - 内置 - - - Color Manager - 色彩管理 - - - Color management configuration for project. - 项目色彩配置. - - olive::ColorSpaceChooser - + Color Management 颜色管理 - + Input: 输入: - + Color Space: 颜色空间: - + Display: 显示: - + View: 视图: - + Look: 风格: - + (None) (无) @@ -1474,12 +1268,12 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorSwatchChooser - + Save Color Here 在这保存颜色 - + Reset To Default 恢复默认 @@ -1487,32 +1281,32 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorValuesTab - + Red 红色 - + Green 绿色 - + Blue 蓝色 - + Use legacy (8-bit) values 使用传统(8位)值 - + Web 网络 - + (Invalid) 无效的 @@ -1520,22 +1314,22 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ColorValuesWidget - + Preview 预览 - + Input 输入 - + Reference 参考 - + Display 显示 @@ -1543,20 +1337,20 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::ConfigDialogBase - + Set Configuration - + olive::ConformTask - + Conforming Audio %1:%2 确认音频 %1:%2 - + Failed to open decoder for audio conform 无法打开解码器以符合音频 @@ -1564,198 +1358,166 @@ The possible range of CRF in SVT-AV1 is 1-63. olive::Core - + Import error 导入出错 - + Nothing to import 没有可导出的内容 - + Unsupported media - + - + Skipped %1 file(s) that are not allowed by the current media type filter. - + - + Importing... 正在导入... - + Import footage... 导入素材... - + Failed to import footage 无法导入素材 - + Failed to find active Project panel 找不到活动项目面板 - + No Active Project 没有活动项目 - + No project is currently open to set the properties for 当前没有用于设置属性的已打开项目 - + Failed to create new folder 无法创建新文件夹 - - + + Failed to find active project 找不到活动项目 - + New Folder 新建文件夹 - + Created New Folder - + - + Failed to create new sequence 无法创建新序列 - + Created New Sequence - + - + Imported %1 File(s) - + - + Possible image sequence detected 检测到可能的图像序列 - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? + + The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? 文件“%1”可能是图像序列的一部分。您要如此导入它吗? - + You must specify a project file to export 您必须指定要导出的项目文件 - + Specified project does not exist 指定的项目不存在 - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - + + Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. + - + Oak Project - + - + Oak Project (Uncompressed XML) - + - + Renamed %1 Node(s) - + - Project contains no sequences, nothing to export - 项目不包含任何序列,没有可导出的内容 - - - This project has multiple sequences. Which do you wish to export? - 此项目有多个序列。您要导出哪一个? - - - Enter number (or %1 to cancel): - 输入数字 (或%1来取消): - - - Invalid sequence number - 无效序列数字 - - - Export succeeded - 导出成功 - - - Export failed: %1 - 导出失败:%1 - - - Project failed to load: %1 - 项目无法加载:%1 - - - + Failed to open startup file 无法打开启动文件 - - The project "%1" doesn't exist. A new project will be started instead. + + The project "%1" doesn't exist. A new project will be started instead. 项目“%1”不存在。将打开一个新建项目。 - - + + Missing OpenTimelineIO Libraries 缺失 OpenTimelineIO 库 - - + + This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. 本构建未使用 OpenTimelineIO 编译,所以无法打开 OpenTimelineIO 文件。 - Save Project - 保存项目 - - - - + + Error 错误 - + This Sequence is empty. There is nothing to export. 此序列是空的。没有可导出的内容。 - + No valid sequence detected. Make sure a sequence is loaded and it has a connected Viewer node. @@ -1764,21 +1526,17 @@ Make sure a sequence is loaded and it has a connected Viewer node. 请确保序列已加载并连接到查看器节点。 - Olive Project - Olive 项目 - - - + OpenTimelineIO OpenTimelineIO - + The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - + - + The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. To remedy this, please do one of the following: @@ -1786,157 +1544,137 @@ To remedy this, please do one of the following: 1. Manually clear the disk cache in Disk preferences. 2. Increase the maximum disk cache size in Disk preferences. 3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - + - + Save Project As 另存项目为 - + Load Project 加载项目 - + Label Node 标签节点 - + Set node label 设置节点标签 - + Sequence %1 序列 %1 - + Cannot open recent project 无法打开最近项目 - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? + + The project "%1" doesn't exist. Would you like to remove this file from the recent list? 项目“%1”不存在。您要从最近列表移除此文件吗? - + Unsaved Changes 未保存的更改 - - The project '%1' has unsaved changes. Would you like to save them? + + The project '%1' has unsaved changes. Would you like to save them? 项目“%1”有未保存的更改。您要保存吗? - + Save 保存 - Save All - 全部保存 - - - - Don't Save + + Don't Save 不保存 - Don't Save All - 全部不保存 - - - + Failed to cache sequence 无法缓存序列 - + No active viewer found with this sequence. 没有找到此序列的活动查看器。 - + Open Project 打开项目 - + Multi-Layer Image 多层图像 - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? + + The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? 文件“%1”有多个层。您希望这些层跨多个轨迹分离还是合并到单个图像中? - + Multiple Layers 多层 - + Single Layer 单层 - - + + Revert 还原 - + This project has not yet been saved, therefore there is no last saved state to revert to. 此项目尚未保存,因此没有要恢复到的上次保存状态. - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? + + The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? 项目“%1”已打开。通过重新打开它,项目将恢复到上次保存的状态。任何未保存的更改都将丢失。是否要继续? - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? + + This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? 这将使项目“%1”恢复到上次保存的状态。所有未保存的更改都将丢失。是否要继续? - - + + Auto-Recovery Error 自动恢复错误 - Failed to save auto-recovery to "%1". Olive may not have permission to this directory. - 无法将自动恢复保存到“%1”。Olive可能没有此目录的权限。 - - - - Saved to "%1" successfully + + Saved to "%1" successfully 已成功保存到“%1” - Olive Project (Uncompressed XML) - Olive项目(未压缩的XML) - - - + All Supported Projects 所有支持的项目 - The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - 当Olive强制退出时,以下项目有未保存的更改。是否要加载它们? - - - + Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. Your recoverable projects are still available at: %1 @@ -1944,75 +1682,55 @@ Your recoverable projects are still available at: %1 您的可恢复项目仍位于:%1 - + The following project versions have been auto-saved: 以下项目版本已自动保存: - + Disk Cache Full 磁盘缓存已满 - - The disk cache is currently full and Olive is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. - -To remedy this, please do one of the following: - -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - 磁盘缓存当前已满,Olive必须删除旧帧以将其保持在磁盘首选项中设置的限制范围内。这将导致缓存性能显著降低。 - - -要解决此问题,请执行以下操作之一: - - -1.手动清除磁盘首选项中的磁盘缓存。 - -2.在磁盘首选项中增加最大磁盘缓存大小。 - -3.减少磁盘缓存的使用(例如,禁用自动缓存或仅缓存序列的特定部分)。 - olive::CornerPinDistortNode - + Texture 纹理 - + Perspective 透视 - + Top Left 左上方 - + Top Right 右上方 - + Bottom Right 右下角 - + Bottom Left 左下角 - + Corner Pin 边角 - + Distort the image by dragging the corners. 通过拖动角来扭曲图像. @@ -2020,77 +1738,57 @@ To remedy this, please do one of the following: olive::CrashHandlerDialog - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - 抱歉,Olive 崩溃了。请发送错误报告帮助我们修复它。 - - - + Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. 尽可能详细地描述您正在进行的操作。 如果可以,请您提供能重现此崩溃的步骤。 - + Crash Report: 崩溃报告: - + Send Error Report 发送错误报告 - - Don't Send + + Don't Send 不发送 - + Waiting for crash report to be generated... 正在等待崩溃报告生成... - + Upload Failed 上传失败 - Failed to send error report. Please try again later. - 无法发送错误报告。请稍后重试。 - - - No Crash Summary - 没有崩溃摘要 - - - Are you sure you want to send an error report with no crash summary? - 确定要发送没有崩溃摘要的错误报告? - - - + Oak Video Editor - + - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - + + We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. + - + Failed to send error report (%1). Please try again later. 无法发送错误报告(%1)。请稍后再试。 - + SSL Error SSL错误 - + Encountered the following SSL errors: %1 @@ -2099,33 +1797,33 @@ To remedy this, please do one of the following: %1 - + You must write a description to submit this crash report. 您必须写一个描述才能提交此崩溃报告。 - - + + Failed to send report 无法发送报告 - + Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. 未能找到发送报告所需的符号。这是一个包装问题。请通知此包的维护人员。 - + Failed to open symbol file. You may not have permission to access it. 未能打开符号文件。您可能无权访问它。 - + Confirm Close 确认关闭 - + Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? 崩溃报告仍在上传。现在关闭可能导致不发送报告。您确定要关闭吗? @@ -2133,42 +1831,42 @@ To remedy this, please do one of the following: olive::CropDistortNode - + Texture 纹理 - + Left - + Top 顶部 - + Right - + Bottom 底部 - + Feather 羽毛 - + Crop 裁剪 - + Crop the edges of an image. 裁剪图像的边缘。 @@ -2176,12 +1874,12 @@ To remedy this, please do one of the following: olive::CrossDissolveTransition - + Cross Dissolve 交叉溶解 - + Smoothly transition between two clips. 两个片段之间平滑转场。 @@ -2189,7 +1887,7 @@ To remedy this, please do one of the following: olive::CurvePanel - + Curve Editor 曲线编辑器 @@ -2197,117 +1895,117 @@ To remedy this, please do one of the following: olive::CurveView - + Zoom to Fit 适屏缩放 缩放到合适大小 - + Zoom to Fit Selected 缩放以适合选定对象 - + Reset Zoom 重置缩放 - + Moved Keyframe Bezier Control Point - + olive::CurveWidget - + Linear 线性 - + Bezier 贝塞尔曲线 - + Hold 保留 - + Changed Type of %1 Keyframe(s) to %2 - + olive::CustomCacheTask - - Caching custom range for "%1" + + Caching custom range for "%1" 正在缓存“%1”的自定义范围 olive::DespillNode - + Despill 去除溢色 - + Selection of simple depsill operations 选择简单的去除溢色操作 - + Input 输入 - + Key Color 关键颜色 - + Green 绿色 - + Blue 蓝色 - + Method 方法 - + Average 平均的 - + Double Red Average 双倍红色平均值 - + Double Average 双倍平均值 - + Limit 限制 - + Preserve Luminance 保持亮度 @@ -2315,17 +2013,17 @@ To remedy this, please do one of the following: olive::DipToColorTransition - + Dip To Color 浸入颜色 - + Transition between clips by dipping to a color. 通过浸入颜色在两个片段之间转场。 - + Color 颜色 @@ -2333,54 +2031,54 @@ To remedy this, please do one of the following: olive::DiskCacheDialog - + Disk Cache: %1 磁盘缓存:%1 - + Disk Cache Settings 磁盘缓存设置 - + Maximum Disk Cache: 最大磁盘缓存: - + %1 GB %1 GB - - - + + + Clear Disk Cache 清除磁盘缓存 - + Automatically clear disk cache on close 关闭时自动清除磁盘缓存 - - Are you sure you want to clear the disk cache in '%1'? + + Are you sure you want to clear the disk cache in '%1'? 您确定要清除“%1”中的磁盘缓存? - + Disk Cache Cleared 磁盘缓存已清除 - + Disk cache failed to fully clear. You may have to delete the cache files manually. 磁盘缓存无法完全清除。您可能需要手动删除缓存文件。 - + Disk Cache Partially Cleared 磁盘缓存已部分清除 @@ -2388,71 +2086,71 @@ To remedy this, please do one of the following: olive::DiskManager - - + + Disk Cache Error 磁盘缓存错误 - + Unable to set custom application disk cache. Using default instead. 无法设置自定义应用程序磁盘缓存。使用默认设置。 - + Disk Cache 磁盘缓存 - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? + + You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? 您已选择更改默认磁盘缓存位置。这将使当前缓存无效。您要继续吗? - - Failed to open disk cache at "%1". Try a different folder. - 无法打开位于 "%1" 的磁盘缓存。请尝试其他文件夹。 + + Failed to open disk cache at "%1". Try a different folder. + 无法打开位于 "%1" 的磁盘缓存。请尝试其他文件夹。 olive::DisplayTransformNode - + Display Transform 显示变换 - + Converts an image to or from a display color space. Converts an image to or from a display color space. - + Input 输入 - + Display 显示 - + View 视图 - + Direction 方向 - + Forward 向前 - + Inverse 反转 @@ -2460,47 +2158,47 @@ To remedy this, please do one of the following: olive::DropShadowFilter - + Texture 纹理 - + Color 颜色 - + Distance 距离 - + Angle - + Softness 柔化 - + Opacity 不透明度 - + Faster (Lower Quality) 更快(质量更低) - + Drop Shadow 放置阴影 - + Adds a drop shadow to an image. 向图像添加放置阴影。 @@ -2508,12 +2206,12 @@ To remedy this, please do one of the following: olive::ElapsedCounterWidget - + Elapsed: %1 经过:%1 - + Remaining: %1 剩余:%1 @@ -2521,47 +2219,47 @@ To remedy this, please do one of the following: olive::ExportAdvancedVideoDialog - + Advanced 高级 - + Pixel 像素 - + Pixel Format: 像素格式: - + Performance 性能 - + Threads: 线程: - + YUV Color Range: YUV颜色范围: - + Limited (16-235) 有限(16-235) - + Full (0-255) 完整(0-255) - + Auto 自动 @@ -2569,332 +2267,308 @@ To remedy this, please do one of the following: olive::ExportAudioTab - + Codec: 编解码器: - + Sample Rate: 采样率: - + Channel Layout: 通道布局: - + Format: 格式: - + Bit Rate: 比特率: - + %1 kbps - + olive::ExportCodec - + DNxHD DNxHD - + H.264 H.264 - + H.265 H.265 - + OpenEXR OpenEXR - + PNG PNG - + ProRes ProRes - + TIFF TIFF - + MP2 MP2 - + MP3 MP3 - + AAC AAC - + PCM (Uncompressed) PCM (Uncompressed) - + AV1 - + - + Unknown 未知 - + H.264 RGB H.264 RGB - + Cineform Cineform - + FLAC - + - + Opus - + - + Vorbis - + - + VP9 - + - + SubRip SRT - + olive::ExportDialog - + Filename: 文件名: - + Browse for exported file filename 浏览已导出的文件名 - + Preset: 预设: - Same As Source - High Quality - 与源相同 - 高质量 - - - Same As Source - Medium Quality - 与源相同 - 中等质量 - - - Same As Source - Low Quality - 与源相同 - 低质量 - - - + Range: 范围: - + Entire Sequence 整个序列 - + In to Out 入点至出点 - + Format: 格式: - + Export Video 导出视频 - + Export Audio 导出音频 - + Video 视频 - + Audio 音频 - + Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - + - - + + Export 导出 - + Preview 预览 - + Invalid parameters 无效的参数 - Both video and audio are disabled. There's nothing to export. - 视频和音频都已禁用。没有可导出的内容。 - - - - - + + + Invalid filename 无效文件名 - - The filename must contain the extension "%1". Would you like to append it automatically? + + The filename must contain the extension "%1". Would you like to append it automatically? 文件名必须包含扩展名“%1”。您要自动附加扩展名吗? - + Failed to create output directory 无法创建输出目录 - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - 指定的输出目录不存在且 Olive 无法创建它。请选择一个其他的文件名。 - - - + Confirm Overwrite 确认覆盖 - - The file "%1" already exists. Do you want to overwrite it? + + The file "%1" already exists. Do you want to overwrite it? 文件“%1”已存在。您要覆盖它吗? - + Invalid Parameters 无效的参数 - + Width and height must be multiples of 2. 宽度和高度必须是2的倍数。 - + Export Subtitles 导出字幕 - + Subtitles 字幕 - + Run In Background 在后台运行 - Exporting in the background allows you to continue using Olive while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - 在后台导出允许您在导出时继续使用Olive,但可能会导致导出速度变慢,并可能严重影响编辑和播放性能。 - - - + Import Result After Export Import Result After Export - + Cancel 取消 - - Video, audio, and subtitles are disabled. There's nothing to export. + + Video, audio, and subtitles are disabled. There's nothing to export. 已经禁用视频、音频和字幕。没有可以导出的东西。 - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - + + The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. + - + Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). 导出设置为图像序列,但文件名没有数字部分(格式为[######],其中#的数量是数字的数量)。 - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). + + Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). 文件名包含的位数不足,无法满足此导出所需的帧数(对于%n帧,需要%1)。 - + Default 默认 - + Last Used 最后使用的 @@ -2902,100 +2576,100 @@ To remedy this, please do one of the following: olive::ExportFormat - + DNxHD DNxHD - + Matroska Video Matroska Video - + MPEG-4 Video MPEG-4 Video - + OpenEXR OpenEXR - + PNG PNG - + TIFF TIFF - + QuickTime QuickTime - + Unknown 未知 - + MPEG-4 Audio - + - + Wave Audio - + - + AIFF - + - + MP3 MP3 - + FLAC - + - + Ogg - + - + WebM - + - + SubRip SRT - + olive::ExportFormatComboBox - + Video 视频 - + Audio 音频 - + Subtitle 字幕 @@ -3003,60 +2677,60 @@ To remedy this, please do one of the following: olive::ExportSavePresetDialog - + Name: 名称: - + Save Export Preset 保存导出预设 - + Invalid Name 无效的名称 - + You must enter a name to save an export preset. 必须输入名称才能保存导出预设。 - + Overwrite Preset 覆盖预设 - - A preset with the name "%1" already exists. Do you wish to overwrite it? + + A preset with the name "%1" already exists. Do you wish to overwrite it? 名为“%1”的预设已存在。是否要覆盖它? - + Write Error 写入错误 - - Failed to open file "%1" for writing. + + Failed to open file "%1" for writing. 无法打开文件“%1”进行写入。 olive::ExportSubtitlesTab - + Export to sidecar file 导出到附加文件 - + Sidecar Format: 附加格式: - + Codec: 编解码器: @@ -3064,36 +2738,32 @@ To remedy this, please do one of the following: olive::ExportTask - - Exporting "%1" - 正在导出 "%1" + + Exporting "%1" + 正在导出 "%1" - + Failed to create encoder 无法创建编码器 - Failed to open file - 无法打开文件 - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. + + Failed to overwrite "%1". Export has been saved as "%2" instead. 无法覆盖“%1”。导出将被保存为“%2”。 - + Failed to open file: %1 无法打开文件:%1 - + Failed to create subtitle encoder 无法创建字幕编码器 - + Failed to open subtitle sidecar file: %1 无法打开字幕侧边栏文件:%1 @@ -3101,82 +2771,77 @@ To remedy this, please do one of the following: olive::ExportVideoTab - Basic - Would "基本" / "基本的" be more appropriate? - 基本设置 - - - + Width: 宽度: - + Height: 高度: - + Maintain Aspect Ratio: 保持宽高比: - + Scaling Method: 缩放方式: - + Fit 适合 - + Stretch 拉伸 - + Crop 裁剪 - + Frame Rate: 帧率: - + Pixel Aspect Ratio: 像素宽高比: - + Interlacing: 交错: - + Quality: 质量: - + Codec 编解码器 - + Codec: 编解码器: - + Advanced 高级 - + General 常规 @@ -3184,128 +2849,26 @@ To remedy this, please do one of the following: olive::FFmpegEncoder - - Failed to allocate output context - 无法分配输出上下文 - - - + Failed to find suitable pixel format for this buffer 未能找到适合此缓冲区的像素格式 - - Failed to configure filter graph - 无法配置筛选器图表 - - - - Failed to open IO context - 无法打开IO上下文 - - - - Failed to write format header - 无法写入格式标头 - - - - Failed to add frame to filter graph - 未能将框架添加到筛选器图 - - - - Failed to retrieve frame from buffer sink - 无法从缓冲区接收器检索帧 - - - - Failed to allocate sample array - 未能分配样本数组 - - - - Failed to resample audio - 无法重新采样音频 - - - - - - - Failed to write interleaved packet - 写入交错数据包失败 - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - 无法将帧发送到编码器 - - - - Failed to receive packet from decoder - 无法从解码器接收数据包 - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - 无法初始化非视频、音频或字幕类型的流 - - - - Failed to find codec for 0x%1 - 找不到0x%1的编解码器 - - - - Retrieved unexpected codec type %1 for codec %2 - 已检索到编解码器%2的意外编解码器类型%1 - - - - Failed to allocate AVStream - 分配AVStream失败 - - - - Failed to allocate AVCodecContext - 无法分配AVCodecContext - - - - Failed to open encoder - 无法打开编码器 - - - - Failed to copy codec parameters to stream - 无法将编解码器参数复制到流 - - - - Failed to create resampling context - 无法创建重新采样上下文 - - - - Failed to create audio frame - 无法创建音频帧 + + Failed to create encoder + 无法创建编码器 olive::FileField - + Open Directory 打开目录 - + + Open File 打开文件 @@ -3313,27 +2876,27 @@ To remedy this, please do one of the following: olive::FlipDistortNode - + Flip 翻转 - + Flips an image horizontally or vertically 水平或垂直翻转图像 - + Input 输入 - + Horizontal 水平 - + Vertical 垂直 @@ -3341,39 +2904,35 @@ To remedy this, please do one of the following: olive::FloatSlider - + %1 dB %1 dB - + %1% %1% - + ∞ - - - - ∞ - + olive::Folder - + Children 孩子 - + Folder 文件夹 - + Organize several items into a single collection. 将多个项目组织成一个集合. @@ -3381,69 +2940,69 @@ To remedy this, please do one of the following: olive::Footage - + Filename 文件名 - + %1: Image - %2x%3 %1:图像 - %2x%3 - + %1: Video - %2x%3 %1:视频 - %2x%3 - + %1: Audio - %n Channel(s), %2Hz %1:音频-%n频道,%2Hz - + %1: Subtitle %1:字幕 - + Video 视频 - + Audio 音频 - + Subtitle 字幕 - + Unknown 未知 - + Filename: %1 文件名:%1 - + Invalid 无效的 - + Media 媒体 - + Import video, audio, or still image files into the composition. 将视频、音频或静止图像文件导入合成。 @@ -3451,32 +3010,57 @@ To remedy this, please do one of the following: olive::FootagePropertiesDialog - - "%1" Properties - "%1" 属性 + + "%1" Properties + "%1" 属性 - + Name: 名称: - + + Source Start Time: + 源起始时间: + + + + Set + 设置 + + + + (set manually) + (手动设置) + + + + (auto-detected: %1) + (自动检测: %1) + + + + (not detected) + (未检测到) + + + Tracks: 轨道: - - Set Footage "%1" Properties - + + Set Footage "%1" Properties + - + Subtitles 字幕 - + Unknown 未知 @@ -3484,54 +3068,50 @@ To remedy this, please do one of the following: olive::FootageRelinkDialog - + Footage 素材 - + Filename 文件名 - + Actions 操作 - + Browse 浏览 - + Relink Footage 重新链接素材 - - Relink "%1" - 重新链接 "%1" + + Relink "%1" + 重新链接 "%1" - + Unsupported media - + - + This file type is not allowed by the current media type filter. - - - - All Files - 全部文件 + olive::FootageViewerPanel - + Footage Viewer 素材查看器 @@ -3539,32 +3119,32 @@ To remedy this, please do one of the following: olive::FrameRateComboBox - + Custom Frame Rate 自定义帧速率 - + Enter custom frame rate: 输入自定义帧速率: - + Invalid Input 无效的输入 - - Failed to convert "%1" to a frame rate. + + Failed to convert "%1" to a frame rate. 无法将“%1”转换为帧速率。 - + Custom... 自定义... - + Custom (%1) 自定义 (%1) @@ -3572,12 +3152,12 @@ To remedy this, please do one of the following: olive::GapBlock - + Gap 空隙 - + A time-based node that represents an empty space. 基于时间的节点,表示一段空白空间。 @@ -3585,7 +3165,7 @@ To remedy this, please do one of the following: olive::GeneratorWithMerge - + Base 底色 @@ -3593,17 +3173,17 @@ To remedy this, please do one of the following: olive::H264BitRateSection - + Target Bit Rate (Mbps): 目标码率 (Mbps): - + Maximum Bit Rate (Mbps): 最大码率 (Mbps): - + Two-Pass Two-Pass @@ -3611,12 +3191,12 @@ To remedy this, please do one of the following: olive::H264FileSizeSection - + Target File Size (MB): 目标文件大小 (MB): - + Two-Pass Two-Pass @@ -3624,32 +3204,32 @@ To remedy this, please do one of the following: olive::H264Section - + Compression Method: 压缩方式: - + Constant Rate Factor 恒定速率因子(CRF) - + Target Bit Rate 目标码率 - + Target File Size 目标文件大小 - + Encode Speed: 编码速度: - + This setting allows you to tweak the ratio of export speed to compression quality. If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. @@ -3669,47 +3249,47 @@ This setting is equivalent to the `preset` setting in libx264. 此设置相当于libx264中的“预设”设置。 - + Ultra Fast 极致快 - + Super Fast 超快 - + Very Fast 非常快 - + Faster 更快 - + Fast - + Medium 中等 - + Slow - + Slower 更慢 - + Very Slow 非常慢 @@ -3717,20 +3297,20 @@ This setting is equivalent to the `preset` setting in libx264. olive::HistoryPanel - + History - + olive::ImageSection - + Image Sequence: 图像序列: - + Frame to Export: 要导出的框架: @@ -3738,17 +3318,17 @@ This setting is equivalent to the `preset` setting in libx264. olive::InterlacedComboBox - + None (Progressive) 无 (渐进) - + Top-Field First 上场优先 - + Bottom-Field First 下场优先 @@ -3756,122 +3336,99 @@ This setting is equivalent to the `preset` setting in libx264. olive::KeyframePropertiesDialog - + Keyframe Properties 关键帧属性 - + In: 入: - + Out: 出: - + Linear 线性 - + Hold 保留 - + Bezier 贝塞尔曲线 - + Set Keyframe Properties - + olive::KeyframeView - + Deleted %1 Keyframe(s) - + - + Pasted %1 Keyframe(s) - + - + Moved %1 Keyframe(s) - + - + Linear 线性 - + Bezier 贝塞尔曲线 - + Hold 保留 - + P&roperties 属性(&R) - + Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - 线性 - - - Bezier - 贝塞尔曲线 - - - Hold - 保留 - - - P&roperties - 属性(&R) + olive::LoadOTIOTask - Failed to load OpenTimelineIO from file "%1" - 无法从文件 "%1" 加载 OpenTimelineIO - - - + Unknown OpenTimelineIO root element 未知的 OpenTimelineIO 根元素 - + Failed to load clip 无法加载片段 - - Failed to load OpenTimelineIO from file "%1" + + Failed to load OpenTimelineIO from file "%1" OpenTimelineIO Error: @@ -3883,772 +3440,748 @@ OpenTimelineIO错误: %2 - + Sequence %1 序列 %1 + + olive::LutFileField + + + Other (Custom File)... + 其他(自定义文件)... + + olive::MainMenu - - &Save '%1' - 保存 '%1'(&S) + + &Save '%1' + 保存 '%1'(&S) - - Save '%1' &As - 另存 '%1' 为(&A) + + Save '%1' &As + 另存 '%1' 为(&A) - Close '%1' - 关闭 '%1' - - - Close All Except '%1' - 除‘%1’外关闭所有 - - - + &Save Project 保存项目(&S) - + Save Project &As 另存项目为(&A) - Close Project - 关闭项目 - - - Close All Except Current Project - 除当前项目外关闭所有 - - - + (None) (无) - + &File 文件(&F) - + &New 新建(&N) - + &Open Project 打开项目(&O) - + Open &Recent 打开最近(&R) - + &Clear Recent List 清除最近列表(&C) - Sa&ve All Projects - 保存所有项目(&V) - - - + &Import... 导入(&I)... - + &Export 导出(&E) - + &Media... 媒体(&M)... - &Project Properties... - 项目属性(&P)... - - - Close All Projects - 关闭所有项目 - - - + E&xit 退出(&X) - + &Edit 编辑(&E) - + Insert 插入 - + Overwrite 覆盖 - + Select &All 全选(&A) - + Deselect All 取消全选 - + Ripple to In Point 涟漪删除至入点 - + Ripple to Out Point 涟漪删除至出点 - + Edit to In Point 剪辑至入点 - + Edit to Out Point 剪辑至出点 - + Delete In/Out Point 删除入点/出点 - + Ripple Delete In/Out Point 涟漪删除入点/出点 - + Set/Edit Marker 设置/编辑标记 - + &View 视图(&V) - + Zoom In 放大 - + Zoom Out 缩小 - + Increase Track Height 增加轨道高度 - + Decrease Track Height 降低轨道高度 - + Toggle Show All 轨道全部显示 - + Full Screen 全屏 - + Full Screen Viewer 全屏查看器 - + &Playback 回放(&P) - + Go to Start 回到起始帧 - + Previous Frame 前一帧 - + Play/Pause 播放/暂停 - + Play In to Out 播放入点至出点 - + Next Frame 后一帧 - + Go to End 转到结束帧 - + Go to Previous Cut 转到前一切点 - + Go to Next Cut 转到后一切点 - + Go to In Point 转到入点 - + Go to Out Point 转到出点 - + Shuttle Left 向左播放 - + Shuttle Stop 停止播放 - + Shuttle Right 向右播放 - + Loop 循环 - + &Sequence 序列(&S) - + Cache Entire Sequence 缓存整个序列 - + Cache Sequence In/Out 缓存序列入点/出点 - + Maximize Panel 最大化面板 - Lock Panels - 锁定面板 - - - + Reset to Default Layout 重置为默认布局 - + &Tools 工具(&T) - + Pointer Tool 指针工具 - + Edit Tool 编辑工具 - + Ripple Tool 涟漪工具 - + Rolling Tool 滚动工具 - + Razor Tool 刀片工具 - + Slip Tool 滑移工具 - + Slide Tool 滑动工具 - + Hand Tool 手形工具 - + Zoom Tool 缩放工具 - + Transition Tool 转场工具 - + Enable Snapping 启用吸附 - + Proxy Settings... - + - + Preferences 首选项 - + Add Tool Item - + - + &Help 帮助(&H) - + A&ction Search 操作搜索(&C) - + Send &Feedback... 发送反馈(&F)... - + &About... 关于(&A)... - + Ctrl+O - + - + Ctrl+S - + - + Ctrl+Shift+S - + - + F12 - + - + Ctrl+I - + - + Ctrl+M - + - + Shift+F10 - + - + Ctrl+Z - + - + Ctrl+Shift+Z - + - + Backspace - + - + Ctrl+A - + - + Ctrl+Shift+A - + - + , - + - + . - + - + Q - + - + W - + - + Ctrl+Alt+Q - + - + Ctrl+Alt+W - + - + Alt+Left - + - + Alt+Right - + - + [ - + - + ] - + - + ; - + - - ' - + + ' + - + M M - + = - + - + - - + - + Ctrl+= - + - + Ctrl+- - + - + \ - + - + F11 - + - + Home - + - + Left - + - + Space - + - + Shift+Space - + - + Right - + - + End - + - + Up - + - + Down - + - + Shift+I - + - + Shift+O - + - + J J - + K - + - + L L - + ` - + - + V - + - + D - + - + X - + - + B B - + N - + - + C C - + Y - + - + U U - + H - + - + Z - + - + T - + - + A - + - + R R - + S S - + Ctrl+, - + - + / - + - + Revert 还原 - + Project Properties 项目属性 - + Delete (alt) - + - + Nudge Left 向左微移 - + Nudge Right 向右微移 - + Move In Point to Playhead 移入点到播放头 - + Move Out Point to Playhead 移出点到播放头 - + Clear Disk Cache 清除磁盘缓存 - + &Window &窗口 - + Track Select Tool 轨道选择工具 - + Add Tool 添加工具 - + Record Tool 录制工具 @@ -4656,16 +4189,12 @@ OpenTimelineIO错误: olive::MainStatusBar - + Welcome to %1 %2 欢迎使用 %1 %2 - - Running %1 background tasks - 正在运行 %1 后台任务 - - + Running %n background task(s) 正在运行%n后台任务 @@ -4675,70 +4204,62 @@ OpenTimelineIO错误: olive::MainWindow - + Set Footage Workarea - + - + Driver Warning 驱动程序警告 - + Oak Video Editor has detected your system is using the Nouveau graphics driver. This driver is known to have stability and performance issues with Oak Video Editor. It is highly recommended you install the proprietary NVIDIA driver before continuing to use Oak Video Editor. - - - - Olive has detected your system is using the Nouveau graphics driver. - -This driver is known to have stability and performance issues with Olive. It is highly recommended you install the proprietary NVIDIA driver before continuing to use Olive. - Olive 检测到您的系统正在使用 Nouveau 图形驱动程序。 - -此驱动程序用于 Olive 会有稳定性和性能问题。强烈建议您在继续使用 Olive 之前安装 NVIDIA 专有驱动程序。 + olive::ManagedDisplayWidget - + Color Space 颜色空间 - + No color manager connected 没有已连接的颜色管理器 - + Display 显示 - + View 视图 - + Look 风格 - + (None) (无) - + OpenColorIO Error OpenColorIO 错误 - + Failed to set color configuration: %1 无法设置颜色配置:%1 @@ -4746,12 +4267,12 @@ This driver is known to have stability and performance issues with Olive. It is olive::ManagedPixelSamplerWidget - + Display 显示 - + Reference 参考 @@ -4759,80 +4280,80 @@ This driver is known to have stability and performance issues with Olive. It is olive::MarkerPropertiesDialog - + Time 时间 - + In: 入: - + Out: 出: - + Color: 颜色: - + Name: 名称: - + (multiple) (多个) - + Edit Markers 编辑标记 - + Invalid Values 无效值 - + In point must be less than or equal to out point. 输入点必须小于或等于输出点。 - + Set Marker Properties - + olive::MaskDistortNode - + Texture 纹理 - + Invert 倒转 - + Feather 削薄 - + Mask 遮罩 - + Apply a polygonal mask. 应用多边形遮罩. @@ -4840,71 +4361,51 @@ This driver is known to have stability and performance issues with Olive. It is olive::MathNode - + Math 数学 - + Perform a mathematical operation between two values. 在两个值之间进行数学运算。 - + Method 方法 - - + + Value - - Add - - - - Subtract - - - - Multiply - - - - Divide - - - - Power - - olive::MathNodeBase - + Add 增加 - + Subtract - + Multiply - + Divide - + Power @@ -4912,277 +4413,270 @@ This driver is known to have stability and performance issues with Olive. It is olive::MatrixGenerator - + Orthographic Matrix 正交矩阵 - + Ortho 正交 - + Generate an orthographic matrix using position, rotation, and scale. 使用位置、旋转和缩放生成正交矩阵。 - + Position 位置 - + Rotation 旋转 - + Scale 缩放 - + Uniform Scale 统一缩放 - + Anchor Point 锚点 - - olive::MediaInput - - Footage - 素材 - - olive::MenuShared - + &Project 项目(&P) - + &Sequence 序列(&S) - + &Folder 文件夹(&F) - + Cu&t 剪切(&T) - + Cop&y 复制(&Y) - + &Paste 粘帖(&P) - + Paste Insert 粘贴插入 - + Duplicate 复制 - + Delete 删除 - + Ripple Delete 涟漪删除 - + Split 切断 - + Set In Point 设置入点 - + Set Out Point 设置出点 - + Reset In Point 重置入点 - + Reset Out Point 重置出点 - + Clear In/Out Point 清除入点/出点 - + Add Default Transition 添加默认转场效果 - + Link/Unlink 链接/取消链接 - + Enable/Disable 启用/禁用 - + Nest 嵌套 - + Frames - + Drop Frame 丢帧 - + Non-Drop Frame 不丢帧 - + Milliseconds 毫秒 - + Seconds - + Ctrl+N - + - + Ctrl+Shift+N - + - + Ctrl+X - + - + Ctrl+C - + - + Ctrl+V - + - + Ctrl+Shift+V - + - + Ctrl+D - + - + F2 - + - + Del - + - + Shift+Del - + - + Ctrl+K - + - + Ctrl+R - + - + I I - + O - + - + G - + - + Ctrl+Shift+D - + - + Ctrl+L - + - + Shift+E - + - + Rename 重命名 - + Speed/Duration 速度/持续时间 @@ -5190,22 +4684,22 @@ This driver is known to have stability and performance issues with Olive. It is olive::MergeNode - + Merge 合并 - + Merge two textures together. 合并两个纹理到一起。 - + Base 底色 - + Blend 混合 @@ -5213,27 +4707,27 @@ This driver is known to have stability and performance issues with Olive. It is olive::MosaicFilterNode - + Texture 纹理 - + Horizontal 水平 - + Vertical 垂直 - + Mosaic - + - + Apply a pixelated mosaic filter to video. 对视频应用像素化马赛克过滤器. @@ -5241,47 +4735,47 @@ This driver is known to have stability and performance issues with Olive. It is olive::MultiCamNode - + Multi-Cam 多凸轮 - + Allows easy switching between multiple sources. 允许在多个源之间轻松切换。 - + Current 现在的 - + Sources - + Sequence 序列 - + Sequence Type 序列类型 - + Video 视频 - + Audio 音频 - + %1: %2 %1: %2 @@ -5289,7 +4783,7 @@ This driver is known to have stability and performance issues with Olive. It is olive::MulticamPanel - + Multi-Cam 多凸轮 @@ -5297,107 +4791,95 @@ This driver is known to have stability and performance issues with Olive. It is olive::MulticamWidget - + Switched Multi-Camera Source - + olive::Node - Input - 输入 - - - + Output 输出 - General - 常规 - - - + Math 数学 - + Color 颜色 - + Filter 滤镜 - + Timeline 时间线 - + Generator 生成器 - Channel - 通道 - - - + Transition 转场 - + Uncategorized 未分类 - + Enabled 已启用 - + Connected %1 to %2 - %3 - + - + Disconnected %1 from %2 - %3 - + - + %1 (%2) %1 (%2) - + Distort 变形 - + Keying 键入 - + Project 项目 - + OpenFX - + - + Time 时间 @@ -5405,137 +4887,48 @@ This driver is known to have stability and performance issues with Olive. It is olive::NodeGroup - + Group - + A group of nodes that is represented as a single node. 表示为单个节点的一组节点。 - - olive::NodeInput - - Input - 输入 - - - - olive::NodeOutput - - Output - 输出 - - olive::NodePanel - + Node Editor 节点编辑器 - - olive::NodeParam - - Value - - - - None - - - - Integer - 整数 - - - Float - 浮点数 - - - Rational - 有理数 - - - Boolean - 布尔值 - - - Color - 颜色 - - - Matrix - 矩阵 - - - Text - 文字 - - - Font - 字体 - - - File - 文件 - - - Texture - 纹理 - - - Samples - 采样 - - - Footage - 素材 - - - Vector 2D - 矢量 2D - - - Vector 3D - 矢量 3D - - - Vector 4D - 矢量 4D - - - Unknown - 未知 - - olive::NodeParamView - + %1 Nodes %1 节点 - + Other 其他 - + Deleted %1 Node(s) - + - + Paste Nodes 粘贴节点 - + The following node types already exist in this context: %1 @@ -5548,46 +4941,38 @@ Do you wish to paste values onto the existing nodes or paste new nodes? 要将值粘贴到现有节点还是粘贴新节点? - + Paste As Values 粘贴为值 - + Paste As Nodes 粘贴为节点 - + Pasted %1 Node(s) - + olive::NodeParamViewArrayButton - + + + - + - - + olive::NodeParamViewArrayWidget - - + - + - - - %1 elements - %1 个元素 - - + %n element(s) %n 个元素 @@ -5597,17 +4982,17 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeParamViewConnectedLabel - + Connected to 已连接到 - + Nothing 无内容 - + Disconnect 断开连接 @@ -5615,27 +5000,23 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeParamViewContext - + Added %1 to Node Chain - + olive::NodeParamViewItem - %1 (%2) - %1 (%2) - - - + Clear - + olive::NodeParamViewItemBase - + %1 (%2) %1 (%2) @@ -5643,59 +5024,59 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeParamViewItemBody - - + + %1: %1: - + Appended Array Element In %1 - %2 - + - + Inserted Array Element In %1 - %2 - + - + Removed Array Element In %1 - %2 - + olive::NodeParamViewKeyframeControl - + Toggled Keyframe - + - + Enabled Keyframing On %1 - %2 - + - + Warning 警告 - + Are you sure you want to disable keyframing on this value? This will clear all existing keyframes. 您确定要禁用当前值上的关键帧?这会清除所有已存在的关键帧。 - + Disabled Keyframing On %1 - %2 - + olive::NodeParamViewTextEdit - + Edit In Viewer 在查看器中编辑 @@ -5703,15 +5084,15 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeParamViewWidgetBridge - + Edited Value Of %1 - %2 - + olive::NodeTablePanel - + Table View 表格视图 @@ -5719,37 +5100,37 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeTableView - + Type 类型 - + Source - + R/X R/X - + G/Y G/Y - + B/Z B/Z - + A/W A/W - + (unknown) (未知) @@ -5757,65 +5138,65 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeTreeView - + Nodes 节点 - + R R - + X - + - + G - + - + Y - + - + B B - + Z - + - + A - + - + W - + olive::NodeValueTree - + Type 类型 - + Value - + Source @@ -5823,146 +5204,132 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NodeView - Label - 标签 - - - Auto-Position - 自动定位 - - - + Smooth Edges 平滑边缘 - Filter - 滤镜 - - - Show All - 全部显示 - - - Show Selected Blocks Only - 仅显示选中的方块 - - - + Direction 方向 - + Top to Bottom 从上到下 - + Bottom to Top 从下到上 - + Left to Right 从左到右 - + Right to Left 从右到左 - + Add 添加 - + Nodes must be placed inside a context. 节点必须放置在上下文中。 - + + Shift+P + Shift+P + + + Deleted %1 Node(s) - + - + Set Color of %1 Node(s) - + - - + + Moved %1 Node(s) - + - + Dropped %1 Node(s) - + - + Ungroup 取消分组 - + Group 分组 - + Open in Viewer 在查看器中打开 - + + Show in Parameter Editor 在参数编辑器中显示 - + P&roperties 属性(&R) - + Failed to group nodes 无法对节点进行分组 - - Nodes can only be grouped if they're in the same context. - Nodes can only be grouped if they're in the same context. + + Nodes can only be grouped if they're in the same context. + Nodes can only be grouped if they're in the same context. - + Grouped Nodes - + - + Ungrouped Nodes - + - - Input "%1" is currently connected to node "%2", which is not visible in this context. By connecting this, that connection will be removed. Do you wish to continue? + + Input "%1" is currently connected to node "%2", which is not visible in this context. By connecting this, that connection will be removed. Do you wish to continue? 输入“%1”当前连接到节点“%2”,该节点在此上下文中不可见。通过连接此,将删除该连接。是否要继续? olive::NodeViewToolBar - + Add Node 添加节点 - + Toggle Mini-Map 切换小地图 @@ -5970,27 +5337,27 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::NoiseGeneratorNode - + Noise 噪音 - + Generates noise patterns 生成噪波模式 - + Base 底色 - + Strength 强度 - + Color 颜色 @@ -5998,67 +5365,67 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::OCIOGradingTransformLinearNode - + OCIO Color Grading (Linear) OCIO颜色分级(线性) - + Simple linear color grading using OpenColorIO. 使用OpenColorIO进行简单的线性颜色分级。 - + Input 输入 - + Contrast 对比 - + Offset 补偿 - + Exposure 曝光 - + Exposure increments in stops. 停止时的曝光增量。 - + Saturation 饱和 - + Pivot 支点 - + Enable Black Clamp 启用黑色钳制 - + Black Clamp 黑色钳制 - + Enable White Clamp 启用白色钳制 - + White Clamp 白色钳制 @@ -6066,55 +5433,70 @@ Do you wish to paste values onto the existing nodes or paste new nodes? olive::OCIOLutNode - + LUT Files (*.cube *.3dl);;Cube LUT (*.cube);;3DL LUT (*.3dl);;All Files (*) - + - + Select a .cube or .3dl LUT file - + - + OCIO LUT - + - + Applies a LUT file through OpenColorIO. - + - + Input 输入 - + LUT File - + - + Direction 方向 - + Forward 向前 - + Inverse 反转 + + + OCIO LUT: file does not exist: %1 + OCIO LUT: 文件不存在: %1 + + + + OCIO LUT: unsupported LUT file extension (expected .cube or .3dl): %1 + OCIO LUT: 不支持的 LUT 文件扩展名(应为 .cube 或 .3dl): %1 + + + + OCIO LUT: failed to load LUT file: %1 + OCIO LUT: 加载 LUT 文件失败: %1 + olive::OTIOPropertiesDialog - + OpenTimelineIO files do not store sequence parameters (resolution, frame rate, etc.) Please set the correct parameters on the sequences below (they have been set to your default sequence parameters as a starting point). @@ -6123,22 +5505,22 @@ Please set the correct parameters on the sequences below (they have been set to 请在以下序列上设置正确的参数(它们已设置为默认序列参数作为起点)。 - + Sequence 序列 - + Actions 操作 - + Settings 设置 - + Load OpenTimelineIO Project 加载OpenTimelineIO项目 @@ -6146,19 +5528,19 @@ Please set the correct parameters on the sequences below (they have been set to olive::OpacityEffect - + Texture 纹理 - - + + Opacity 不透明度 - - Alter a video's opacity. + + Alter a video's opacity. This is equivalent to multiplying a video by a number between 0.0 and 1.0. 改变视频的不透明度。 @@ -6169,18 +5551,18 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PanNode - - + + Pan 音频平移 - + Adjust the stereo panning of an audio source. 调整音频源的立体声平移。 - + Samples 采样 @@ -6188,7 +5570,7 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PanelWidget - + %1: %2 %1: %2 @@ -6196,28 +5578,20 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::ParamPanel - + Parameter Editor 参数编辑器 - - (none) - (无) - - - (multiple) - (多个) - olive::PathWidget - + Browse 浏览 - + Browse for path 浏览路径 @@ -6225,17 +5599,17 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PixelAspectRatioComboBox - + Set Custom Pixel Aspect Ratio 设置自定义像素宽高比 - + Custom... 自定义... - + Custom (%1) 自定义 (%1) @@ -6243,7 +5617,7 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PixelSamplerPanel - + Pixel Sampler 像素采样器 @@ -6251,39 +5625,35 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PixelSamplerWidget - + Color 颜色 - <html><font color='#FF8080'>R: %1</font><br><font color='#80FF80'>G: %2</font><br><font color='#8080FF'>B: %3</font><br>A: %4</html> - <html><font color='#FF8080'>R: %1</font><br><font color='#80FF80'>G: %2</font><br><font color='#8080FF'>B: %3</font><br>A: %4</html> - - - - <html><font color='#FF8080'>R: %1 (%5)</font><br><font color='#80FF80'>G: %2 (%6)</font><br><font color='#8080FF'>B: %3 (%7)</font><br>A: %4 (%8)</html> - + + <html><font color='#FF8080'>R: %1 (%5)</font><br><font color='#80FF80'>G: %2 (%6)</font><br><font color='#8080FF'>B: %3 (%7)</font><br>A: %4 (%8)</html> + olive::PolygonGenerator - + Polygon 多边形 - + Generate a 2D polygon of any amount of points. 生成任意点数量的2D多边形。 - + Points - + Color 颜色 @@ -6291,7 +5661,7 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreCacheTask - + Pre-caching %1:%2 正在预缓存 %1:%2 @@ -6299,21 +5669,17 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesAppearanceTab - + Theme 主题 - Node Color Scheme - 节点配色方案 - - - + Default Node Colors 默认节点颜色 - + Miscellaneous 混杂的 @@ -6321,86 +5687,58 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesAudioTab - Output Device: - 输出设备: - - - Input Device: - 输入设备: - - - + Sample Rate: 采样率: - Audio Recording: - 音频录制: - - - Mono - 单声道 - - - Stereo - 立体声 - - - + Refresh Devices 刷新设备 - Please wait... - 请等待... - - - Default - 默认 - - - + Backend: 后端: - + Output 输出 - - + + Device: 装置: - + Advanced 高级 - + Channel Layout: 通道布局: - + Sample Format: 示例格式: - + Input 输入 - + Recording 记录中 - + Format: 格式: @@ -6408,187 +5746,107 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesBehaviorTab - - Behavior - 行为 - - - - General - 常规 - - - - Enable hover focus - 启用悬停聚焦 - - - - Panels will be considered focused when the mouse cursor is over them without having to click them. - 面板会在鼠标指针悬停在上方时获取焦点,而无需点击。 - - - Scroll wheel zooms by default instead of scrolling - 滚轮默认缩放而不是滚动 - - - Holding CTRL while using Olive toggles this setting - 使用 Olive 时按住 CTRL 来切换此设置 - - - - Audio - 音频 - - - - Enable audio scrubbing - 启用音频搓擦 - - - - Timeline - 时间线 - - - + Auto-Seek to Imported Clips 自动寻找并导入片段 - + Edit Tool Also Seeks 编辑工具并寻找 - + Edit Tool Selects Links 编辑工具选择链接 - + Enable Drag Files to Timeline 启用拖放文件到时间线 - + Invert Timeline Scroll Axes 反转时间线滚动轴 - + Hold ALT on any UI element to switch scrolling axes 在任意 UI 元素上按住 ALT 来切换滚动轴 - + Seek Also Selects 查找并选择 - + Seek to the End of Pastes 查找至最后粘帖 - + Selecting Also Seeks 选择并查找 - - Playback - 回放 - - - + Ask For Name When Setting Marker 设置标记时询问名称 - + Automatically rewind at the end of a sequence 序列结束时自动倒带 - - Project - 项目 - - - + Drop Files on Media to Replace 拖放文件到媒体进行替换 - - Nodes - 节点 - - - + Add Default Effects to New Clips 添加默认效果到新的片段 - + Auto-Scale By Default 默认情况下自动缩放 - + Splitting Clips Copies Dependencies 切断片段副本依赖 - + Multiple clips can share the same nodes. Disable this to automatically share node dependencies among clips when copying or splitting them. 多个片段可以共享相同节点。禁用此项来在复制或切断片段时在其中共享节点依赖。 - - Enable slider ladder - 启用滑块阶梯 - - - - - Scrolling zooms by default - 默认情况下滚动缩放 - - - - By default, scrolling will move the view around, and holding Ctrl/Cmd will make it zoom instead. Enabling this will switch those, scrolling will zoom by default, and holding Ctrl/Cmd will move the view instead. - 默认情况下,滚动将移动视图,按住Ctrl/Cmd将使其变为缩放。启用此选项将切换这些视图,默认情况下滚动将缩放,而按住Ctrl/Cmd将移动视图。 - - - - Rendering - 渲染 - - - + Graphics Backend 图形后端 - + Selects the graphics API Oak should request on next launch. Vulkan is experimental: on most systems it will fall back to OpenGL or use a prototype Vulkan path that is not yet fully validated. 选择 Oak 在下次启动时应请求的图形 API。Vulkan 是实验性的:在大多数系统上它会回退到 OpenGL,或使用尚未完全验证的原型 Vulkan 路径。 - - + OpenGL OpenGL - + Vulkan (experimental) Vulkan(实验性) - + Use glFinish 使用glFinish @@ -6596,127 +5854,161 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesDialog - + Preferences 首选项 - + General 常规 - + Appearance 外观 - + Audio 音频 - + Timeline 时间线 - + Playback 回放 - + Project 项目 - + Nodes 节点 - + Rendering 渲染 - + Disk 磁盘 - + + + LUT + LUT + + + + Keyboard + 键盘 + olive::PreferencesDiskTab - + Disk Management 磁盘管理 - + Disk Cache Location: 磁盘缓存位置: - + Disk Cache Settings 磁盘缓存设置 - + Cache Behavior 缓存行为 - + Cache Ahead: 向前缓存: - - + + %1 seconds %1 秒 - + Cache Behind: 向后缓存: - + Proxy Settings - + - + Proxy Width: - + - + Proxy Height: - + - + Proxy CRF: - + - + Proxy Preset: - + - + + Include audio in proxies + 在代理中包含音频 + + + + ffmpeg Executable: + ffmpeg 可执行文件: + + + + Auto-detect + 自动检测 + + + + Browse... + 浏览... + + + + Select ffmpeg Executable + 选择 ffmpeg 可执行文件 + + + Disk Cache 磁盘缓存 - + Failed to set disk cache location. Access was denied. 无法设置磁盘缓存位置。访问被拒绝。 @@ -6724,82 +6016,82 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesGeneralTab - + Language: 语言: - + Auto-Scroll Method: 自动滚动模式: - + None - + Page Scrolling 页面滚动 - + Smooth Scrolling 平滑滚动 - + Rectified Waveforms: 整流波形: - + Default Still Image Length: 默认静态图像长度: - + %1 seconds %1 秒 - + %1 (%2) %1 (%2) - + Locale 区域 - + Timeline 时间线 - + Auto-Recovery 自动恢复 - + Enable Auto-Recovery: 启用自动恢复: - + Auto-Recovery Interval: 自动恢复间隔: - + Maximum Versions Per Project: 每个项目的最大版本数: - + Browse Auto-Recoveries 浏览自动恢复 @@ -6807,91 +6099,119 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::PreferencesKeyboardTab - + Search for action or shortcut 搜索操作或者快捷键 - + Action 操作 - + Shortcut 快捷键 - + Import 输入 - + Export 导出 - + Reset Selected 重新选择 - + Reset All 全部重置 - + Confirm Reset All Shortcuts 确认重置所有快捷键 - + Are you sure you wish to reset all keyboard shortcuts to their defaults? 您确定要将所有键盘快捷键重置为默认值吗? - + Import Keyboard Shortcuts 导入键盘快捷键配置 - - + + Error saving shortcuts 保存键盘快捷键时发生错误 - + Failed to open file for reading 无法读取文件 - + Export Keyboard Shortcuts 导出键盘快捷键 - + Export Shortcuts 导出快捷键 - + Shortcuts exported successfully 快捷键导出成功 - + Failed to open file for writing 无法打开文件进行写入 + + olive::PreferencesLutTab + + + LUT Library + LUT 库 + + + + Directories scanned for .cube and .3dl LUT files. LUT nodes offer these locations when picking a LUT file. + 将扫描 .cube 和 .3dl LUT 文件的目录。选择 LUT 文件时,LUT 节点会提供这些位置。 + + + + Add... + 添加... + + + + Add LUT Library Directory + 添加 LUT 库目录 + + + + Remove + 移除 + + olive::ProgressDialog - + Cancel 取消 @@ -6899,125 +6219,87 @@ This is equivalent to multiplying a video by a number between 0.0 and 1.0. olive::Project - - + + (untitled) (未命名) - + Root - + olive::ProjectExplorer - + &New 新建(&N) - + &Import... 输入(&I)... - &Project Properties... - 项目属性(&P)... - - - + Open in New Tab 在新标签页中打开 - + Open in New Window 在新窗口中打开 - + Reveal in Explorer 在资源管理器中显示 - + Reveal in Finder 在 Finder 中显示 - + Reveal in File Manager 在文件管理器中显示 - Pre-Cache - 预缓存 - - - No sequences exist in project - 项目中不存在序列 - - - For "%1" - 对于 "%1" - - - + P&roperties 属性(&R) - + Unsupported media - + - + This file type is not allowed by the current media type filter. - + - + Replaced Footage - + - + Deleted %1 Item(s) - + - Confirm Footage Deletion - 确认删除素材 - - - The footage "%1" is currently used in the following sequence(s): - -%2 -What would you like to do with these clips? - 素材 "%1" 已在以下序列中使用: - -%2 -您相对这些片段做什么? - - - Offline Footage - 离线素材 - - - Delete Clips - 删除片段 - - - + Confirm Item Deletion 确认项目删除 - - The item "%1" is currently connected to the following nodes: + + The item "%1" is currently connected to the following nodes: %2 @@ -7029,48 +6311,53 @@ Are you sure you wish to delete this footage? 您确定要删除此视频吗? - + %1 (%2) %1 (%2) - - + + Replace Footage 替换素材 - + Proxy 代理 - + Generate Proxy 生成代理 - + Use Proxy 使用代理 - + Reveal Proxy 显示代理 - + Delete Proxy 删除代理 - + + Proxy Settings... + 代理设置... + + + Rename 重命名 - + Delete 删除 @@ -7078,7 +6365,7 @@ Are you sure you wish to delete this footage? olive::ProjectExplorerNavigation - + Go to parent folder 转到上级文件夹 @@ -7086,28 +6373,20 @@ Are you sure you wish to delete this footage? olive::ProjectImportErrorDialog - + Import Error 导入出错 - + The following files failed to import. Oak Video Editor likely does not support their formats. - - - - The following files failed to import. Olive likely does not support their formats. - 下列文件无法导入。Olive 可能不支持这些文件格式。 + olive::ProjectImportTask - - Importing %1 files - 正在导入 %1 文件 - - + Importing %n file(s) 正在导入 %n 个文件 @@ -7117,57 +6396,45 @@ Are you sure you wish to delete this footage? olive::ProjectLoadBaseTask - - Loading '%1' - 正在加载 '%1' + + Loading '%1' + 正在加载 '%1' olive::ProjectLoadTask - This project is newer than this version of Olive and cannot be opened. - 这个项目版本高于比当前 Olive 版本,无法读取。 + + Failed to read file "%1" for reading. + 无法读取文件 "%1"。 - This project is from a version of Olive that is no longer supported in this version. - 这个项目来自当前版本已不支持的 Olive 版本。 - - - - Failed to read file "%1" for reading. - 无法读取文件 "%1"。 - - - This project is from a newer version of Olive and cannot be opened in this version. - 此项目来自较新版本的Olive,无法在此版本中打开。 - - - + This project is from a version of Oak Video Editor that is no longer supported in this version. - + - + This project is from a newer version of Oak Video Editor and cannot be opened in this version. - + - + Failed to determine project version. 无法确定项目版本。 - + Failed to read XML document. File may be corrupt. Error was: %1 无法读取XML文档。文件可能已损坏。错误为:%1 - + Failed to find any data to parse. 找不到任何要分析的数据。 - + Unknown error. 未知错误。 @@ -7175,17 +6442,17 @@ Are you sure you wish to delete this footage? olive::ProjectPanel - + Folder 文件夹 - + Project 项目 - + (none) (无) @@ -7193,102 +6460,98 @@ Are you sure you wish to delete this footage? olive::ProjectPropertiesDialog - - Project Properties for '%1' - '%1' 的项目属性 + + Project Properties for '%1' + '%1' 的项目属性 - + OpenColorIO Configuration: OpenColorIO 配置: - + (default) (默认) - + Default Input Color Space: 默认输入颜色空间: - + Reference Space: - + - + Scene Linear 场景线性 - + Compositing Log 合成日志 - + Browse 浏览 - + Color Management 色彩管理 颜色管理 - + Use Default Location 使用默认位置 - + Use Custom Location: 使用默认位置: - + Disk Cache Settings 磁盘缓存设置 - + Disk Cache 磁盘缓存 - + OpenColorIO Config Error OpenColorIO 配置错误 - + Failed to set OpenColorIO configuration: %1 无法设置 OpenColorIO 配置:%1 - + Invalid path 无效的路径 - The cache path is invalid. Please check it and try again. - 缓存路径无效。请检查后重试。 - - - + Browse for OpenColorIO configuration 浏览 OpenColorIO 配置 - + Store Alongside Project 项目旁边的仓库 - + The custom cache path is invalid. Please check it and try again. 自定义缓存路径无效。请检查并重试。 @@ -7296,128 +6559,65 @@ Are you sure you wish to delete this footage? olive::ProjectSaveTask - - Saving '%1' - 正在保存 '%1' + + Saving '%1' + 正在保存 '%1' - Failed to write XML data - 无法写入 XML 数据 + + Failed to overwrite "%1". Project has been saved as "%2" instead. + 无法覆盖 "%1"。项目已保存为 "%2"。 - - Failed to overwrite "%1". Project has been saved as "%2" instead. - 无法覆盖 "%1"。项目已保存为 "%2"。 - - - Failed to open temporary file "%1" for writing. - 无法打开临时文件 "%1" 进行写入。 - - - + Failed to write XML data. 无法写入XML数据。 - - Failed to open file "%1" for writing. + + Failed to open file "%1" for writing. 无法打开文件“%1”进行写入。 - + Unknown error. 未知错误。 - - olive::ProjectSettingsNode - - Disk Cache Location - 磁盘缓存位置 - - - Disk Cache Path - 磁盘缓存路径 - - - Use Default Location - 使用默认位置 - - - Store Alongside Project - 项目旁边的仓库 - - - Use Custom Location - 使用默认位置 - - - (default) - (默认) - - - Project Settings - 项目设置 - - - Settings used throughout the project. - 整个项目中使用的设置。 - - olive::ProjectToolbar - + New... 新建... - + Open Project 打开项目 - + Save Project 保存项目 - Undo - 撤销 - - - Redo - 重做 - - - + Search media, markers, etc. 搜索媒体、标记等。 - Switch to Tree View - 切换到树视图 - - - Switch to List View - 切换到列表视图 - - - Switch to Icon View - 切换到图标视图 - - - + Tree View 树视图 - + List View 列表视图 - + Icon View 图标视图 @@ -7425,103 +6625,197 @@ Are you sure you wish to delete this footage? olive::ProjectViewModel - + Name 名称 - + Duration 持续时间 - + Rate 帧率 速率 - - Renamed Item "%1" to "%2" - + + Renamed Item "%1" to "%2" + - + Move %1 Item(s) - + - Move Items - 移动项 - - - + Modified 调整 - + Created 创建 + + olive::ProxyDialog + + + Proxy Settings + 代理设置 + + + + Selected Footage + 选中的素材 + + + + Footage + 素材 + + + + Proxy State + 代理状态 + + + + Use custom settings for selected footage + 为选中的素材使用自定义设置 + + + + Global Proxy Settings + 全局代理设置 + + + + Proxy Width: + 代理宽度: + + + + Proxy Height: + 代理高度: + + + + Proxy CRF: + 代理 CRF: + + + + Proxy Preset: + 代理预设: + + + + Include audio in proxies + 在代理中包含音频 + + + + ffmpeg Executable: + ffmpeg 可执行文件: + + + + Auto-detect + 自动检测 + + + + Browse... + 浏览... + + + + Generate Proxies + 生成代理 + + + + Delete Proxies + 删除代理 + + + + Close + 关闭 + + + + %1 (custom settings) + %1(自定义设置) + + + + Select ffmpeg Executable + 选择 ffmpeg 可执行文件 + + olive::ProxyTask - + Generating Proxy %1:%2 - + - - Failed to generate proxy: ffmpeg executable was not found - + + Failed to generate proxy: ffmpeg executable was not found. Set the ffmpeg path in Preferences > Disk > Proxy Settings. + 无法生成代理: 未找到 ffmpeg 可执行文件。请在 偏好设置 > 磁盘 > 代理设置 中设置 ffmpeg 路径。 - + Failed to create proxy output directory - + - + Failed to start ffmpeg for proxy generation - + - + Proxy generation was cancelled - + - + ffmpeg failed to generate proxy: %1 - + - + ffmpeg finished but proxy file was not created - + olive::RationalSlider - + NaN - + - + Float 浮点数 - + Rational 有理数 - + Time 时间 @@ -7529,131 +6823,56 @@ Are you sure you wish to delete this footage? olive::RenderCancelDialog - + Waiting for workers to finish... 正在等待工作器完成... - + Renderer 渲染器 渲染器 - - olive::RichTextDialog - - B - B - - - Bold - 粗体 - - - I - I - - - Italic - 斜体 - - - U - U - - - Underline - 下划线 - - - S - S - - - Strikethrough - 删除线 - - - Font Family - 字体系列 - - - Font Size - 字体大小 - - - L - L - - - Left Align - 左对齐 - - - C - C - - - Center Align - 居中对齐 - - - R - R - - - Right Align - 右对齐 - - - J - J - - - Justify Align - 两端对齐 - - olive::RippleDistortNode - + Ripple 波纹 - + Distorts an image with a ripple effect. 使用涟漪效果扭曲图像。 - + Input 输入 - + Frequency 频率 - + Intensity 强度 - + Evolution 渐进 - + Position 位置 - + Stretch 拉伸 @@ -7661,44 +6880,40 @@ Are you sure you wish to delete this footage? olive::SaveOTIOTask - + Exporting project to OpenTimelineIO 正在导出项目到 OpenTimelineIO - + Project contains no sequences to export. 项目不包含可导出的序列。 - - Failed to serialize sequence "%1" - 序列化序列 "%1" 失败 + + Failed to serialize sequence "%1" + 序列化序列 "%1" 失败 olive::ScopePanel - + Waveform 波形 - + Vectorscope - + - + Histogram 直方图 - Scope - 范围 - - - + Scopes 范围 @@ -7706,65 +6921,65 @@ Are you sure you wish to delete this footage? olive::SeekableWidget - + Deleted %1 Marker(s) - + - + Pasted %1 Marker(s) - + - + Moved %1 Marker(s) - + - + Changed Color of %1 Marker(s) - + - + Properties 属性 - + Changed Marker Length - + - + Changed Workarea Length - + olive::Sequence - + Video Tracks 视频轨道 - + Audio Tracks 音频轨道 - + Subtitle Tracks 字幕轨道 - + Sequence 序列 - + A series of cuts that result in an edited video. Also called a timeline. 生成编辑视频的一系列剪辑。也称为时间线. @@ -7772,47 +6987,47 @@ Are you sure you wish to delete this footage? olive::SequenceDialog - + Name: 名称: - + New Sequence 新建序列 - - Editing "%1" - 正在编辑 "%1" + + Editing "%1" + 正在编辑 "%1" - + Error editing Sequence 编辑序列时出错 - + Please enter a name for this Sequence. 请输入此序列名称. - + Set As Default 设置为默认值 - - Don't ask me again + + Don't ask me again 不再询问 - + Low Quality Preview 低质量预览 - + The preview resolution has been set to a non-float format. This may cause banding and clipping artifacts in the preview. Do you wish to continue? @@ -7821,17 +7036,17 @@ Do you wish to continue? 是否要继续? - - Set Sequence Parameters For "%1" - + + Set Sequence Parameters For "%1" + - + Confirm Set As Default 确认设置为默认值 - + Are you sure you want to set the current parameters as defaults? 是否确实要将当前参数设置为默认值? @@ -7839,72 +7054,72 @@ Do you wish to continue? olive::SequenceDialogParameterTab - + Video 视频 - + Width: 宽度: - + Height: 高度: - + Frame Rate: 帧率: - + Pixel Aspect Ratio: 像素宽高比: - + Interlacing: 交错: - + Audio 音频 - + Sample Rate: 采样率: - + Channels: 声道: - + Preview 预览 - + Resolution: 分辨率: - + Quality: 质量: - + Save Preset 保存预设 - + (%1x%2) (%1x%2) @@ -7912,77 +7127,77 @@ Do you wish to continue? olive::SequenceDialogPresetTab - + Preset 预设 - + My Presets 我的预设 - + 4K UHD 4K UHD - + 1080p 1080p - + 720p 720p - + NTSC NTSC - + PAL PAL - + %1 23.976 FPS %1 23.976 FPS - + %1 25 FPS %1 25 FPS - + %1 29.97 FPS %1 29.97 FPS - + %1 50 FPS %1 50 FPS - + %1 59.94 FPS %1 59.94 FPS - + %1 Standard %1 标准 - + %1 Widescreen %1 宽屏 - + Delete Preset 删除预设 @@ -7990,7 +7205,7 @@ Do you wish to continue? olive::SequenceViewerPanel - + Sequence Viewer 序列查看器 @@ -7998,37 +7213,37 @@ Do you wish to continue? olive::ShapeNode - + Shape 形状 - + Generate a 2D primitive shape. 生成二维基本体形状。 - + Type 类型 - + Radius 半径 - + Rectangle 长方形 - + Ellipse 椭圆 - + Rounded Rectangle 圆角矩形 @@ -8036,17 +7251,17 @@ Do you wish to continue? olive::ShapeNodeBase - + Position 位置 - + Size 大小 - + Color 颜色 @@ -8054,42 +7269,42 @@ Do you wish to continue? olive::SliderBase - + Invalid Value 无效的值 - + The entered value is not valid for this field. 输入的值在在这个字段无效。 - + --- - + - + %n minute(s) - + olive::SolidGenerator - + Solid 纯色 - + Generate a solid color. 生成纯色。 - + Color 颜色 @@ -8097,81 +7312,81 @@ Do you wish to continue? olive::SpeedDurationDialog - + Clip Properties 剪辑财产 - + Speed/Duration 速度/持续时间 - + Speed: 速度: - + Duration: 持续时间: - + Link Speed and Duration 链路速度和持续时间 - + Reverse 颠倒 - + Maintain Audio Pitch 保持音频音调 - + Ripple Trailing Clips 涟漪尾部剪辑 - - + + Loop 循环 - + Loop: 循环: - + None - + Clamp 夹钳 - + Set %1 Clip Properties - + - - Set Clip "%1" Properties - + + Set Clip "%1" Properties + olive::StringSlider - + (none) (无) @@ -8179,37 +7394,37 @@ Do you wish to continue? olive::StrokeFilterNode - + Stroke 笔画 - + Creates a stroke outline around an image. 围绕图像创建一个笔画轮廓。 - + Input 输入 - + Color 颜色 - + Radius 半径 - + Opacity 不透明度 - + Inner 内部 @@ -8217,17 +7432,17 @@ Do you wish to continue? olive::SubtitleBlock - + Subtitle 字幕 - + A time-based node representing a single subtitle element for a certain period of time. 一种基于时间的节点,表示特定时间段内的单个字幕元素。 - + Text 文字 @@ -8235,32 +7450,32 @@ Do you wish to continue? olive::SwirlDistortNode - + Swirl 旋转 - + Distorts an image along a sine wave. 沿正弦扭曲图像。 - + Input 输入 - + Radius 半径 - + Angle - + Position 位置 @@ -8268,12 +7483,12 @@ Do you wish to continue? olive::Task - + Task 任务 - + Unknown error 未知错误 @@ -8281,7 +7496,7 @@ Do you wish to continue? olive::TaskDialog - + Task Failed 任务失败 @@ -8289,7 +7504,7 @@ Do you wish to continue? olive::TaskManagerPanel - + Task Manager 任务管理器 @@ -8297,113 +7512,70 @@ Do you wish to continue? olive::TaskViewItem - + Error: %1 错误:%1 - - olive::TextGenerator - - Sample Text - 文字样本 - - - Text - 文字 - - - Generate rich text. - 生成富文本。 - - - Font - 字体 - - - Font Size - 字体大小 - - - Color - 颜色 - - - Vertical Align - 垂直对齐 - - - Top - 顶部 - - - Center - 居中 - - - Bottom - 底部 - - olive::TextGeneratorV1 - + Sample Text 文字样本 - + Text (Legacy) 文本(传统) - + Generate rich text. 生成富文本。 - + Text 文字 - + Enable HTML 启用HTML - + Font 字体 - + Font Size 字体大小 - + Color 颜色 - + Vertical Align 垂直对齐 - + Top 顶部 - + Center 居中 - + Bottom 底部 @@ -8411,57 +7583,57 @@ Do you wish to continue? olive::TextGeneratorV2 - + Sample Text 文字样本 - + Text (Legacy) 文本(传统) - + Generate rich text. 生成富文本。 - + Text 文字 - + Enable HTML 启用HTML - + Font 字体 - + Font Size 字体大小 - + Vertical Align 垂直对齐 - + Top 顶部 - + Center 居中 - + Bottom 底部 @@ -8469,192 +7641,192 @@ Do you wish to continue? olive::TextGeneratorV3 - + Sample Text 文字样本 - - + + Text 文字 - + Generate rich text. 生成富文本。 - + Vertical Alignment 垂直对齐方式 - + Top 顶部 - + Middle 中间 - + Bottom 底部 - + Arguments 参数 - + Set Text Vertical Alignment - + olive::TextGizmo - + Edit Text - + olive::ThreeWayColorNode - + Input 输入 - + Shadows 阴影 - + Midtones - + - + Highlights 高光 - + Shadows Amount - + - + Midtones Amount - + - + Highlights Amount - + - + Three-Way Color - + - + Adjusts shadows, midtones, and highlights separately. - + olive::TileDistortNode - + Tile 平铺 - + Infinitely tile an image horizontally and vertically. 水平和垂直无限平铺图像。 - + Input 输入 - + Scale 缩放 - + Position 位置 - + Mirror Horizontally 水平镜像 - + Mirror Vertically 垂直镜像 - + Anchor - + Top-Left 左上方 - + Top-Center 顶部居中 - + Top-Right 右上方 - + Middle-Left 中间偏左 - + Middle-Center 中间居中 - + Middle-Right 中间偏右 - + Bottom-Left 左下角 - + Bottom-Center 底部居中 - + Bottom-Right 右下角 @@ -8662,7 +7834,7 @@ Do you wish to continue? olive::TimeBasedPanel - + (none) (无) @@ -8670,58 +7842,50 @@ Do you wish to continue? olive::TimeBasedWidget - Set Marker - 设置标记 - - - Marker name: - 标记名称: - - - + Set In/Out Point - + - + Reset In/Out Points - + - + Cleared In/Out Points - + - + Added Marker - + olive::TimeFormatNode - + Time Format 时间格式 - + Format time (in Unix epoch seconds) into a string. 将时间(以Unix纪元秒为单位)格式化为字符串。 - + Time 时间 - + Format 格式 - + Interpret time as local time 将时间解释为本地时间 @@ -8729,16 +7893,12 @@ Do you wish to continue? olive::TimeInput - + Time 时间 - Generates the time (in seconds) at this frame - 在这一帧生成时间 (以秒为单位) - - - + Generates the time (in seconds) at this frame. 在这一帧生成时间 (以秒为单位). @@ -8746,12 +7906,12 @@ Do you wish to continue? olive::TimeOffsetNode - + Time Offset 时间偏移量 - + Offset time passing through the graph. 通过图形的偏移时间。 @@ -8759,12 +7919,12 @@ Do you wish to continue? olive::TimeRemapNode - + Time Remap 时间重映射 - + Arbitrarily remap time through the nodes. 通过节点任意重新映射时间。 @@ -8772,7 +7932,7 @@ Do you wish to continue? olive::TimelinePanel - + Timeline 时间线 @@ -8780,7 +7940,7 @@ Do you wish to continue? olive::TimelineView - + In: %1 Out: %2 Duration: %3 @@ -8792,213 +7952,238 @@ Duration: %3 olive::TimelineWidget - - + + Properties 属性 - + Use Audio Time Units 使用音频时间单位 - + Nested Sequence %1 嵌套序列%1 - + Split Clips At Playhead - + - + Deleted Clips - + - + Inserted Footage At Playhead - + - + Overwrote Footage At Playhead - + - + Linked Clips - + - + Added Default Transitions - + - + Deleted In To Out - + - + Toggled Clips Enabled - + - + Set Colors of %1 Clips - + - + Synchronize Clips by Source Time - + - + + Select at least 2 clips with cached waveforms to sync by waveform + 请至少选择 2 个具有已缓存波形的片段以按波形同步 + + + + Could not find a usable waveform offset for the selected clips + 无法为所选片段找到可用的波形偏移量 + + + Synchronize Clips by Waveform - + - + + Synchronized %1 clip(s) by waveform + 已按波形同步 %1 个片段 + + + Recorded Audio Clip - + - + Nested Clips - + - + Synchronize by Source Time - + - + Synchronize by Waveform - + - + + Synchronize by Waveform (Adjust Speed) + 按波形同步(调整速度) + + + Cache 缓存 - + Auto-Cache 自动缓存 - + Cache All 缓存全部 - + Cache In/Out 缓存输入/输出 - + Discard 丢弃 - + Proxy 代理 - + Generate Proxy 生成代理 - + Use Proxy 使用代理 - + Reveal Proxy 显示代理 - + Delete Proxy 删除代理 - + + Proxy Settings... + 代理设置... + + + Reveal in Footage Viewer 在素材查看器中显示 - + Reveal in Project 在项目中显示 - + Multi-Cam 多凸轮 - + Show Thumbnails 显示缩略图 - + Disabled 关闭 - + Only At In Points 仅在输入点 - + Enabled 已启用 - + Show Waveforms 显示波形 - + Renamed %1 Clip(s) - + - + Created Subtitle Track - + - + Enabled Auto-Caching On %1 Clip(s) - + - + Disabled Auto-Caching On %1 Clip(s) - + - + Discard Cache 丢弃缓存 - + This will discard all cache for this clip. If the clip has auto-cache enabled, it will be recached immediately. This cannot be undone. Do you wish to continue? @@ -9007,45 +8192,45 @@ Do you wish to continue? 是否要继续? - + Multi-Cam Enabled On %1 Clip(s) - + - + Multi-Cam Disabled On %1 Clip(s) - + - + Nudged Clips - + - + Moved Clip(s) To Point - + - + Rippled Clip(s) To Point - + - + Cut Clip(s) To Point - + - + Pasted %1 Clip(s) - + olive::ToolPanel - + Tools 工具 @@ -9053,72 +8238,72 @@ Do you wish to continue? olive::Toolbar - + Pointer Tool 指针工具 - + Edit Tool 编辑工具 - + Ripple Tool 涟漪工具 - + Rolling Tool 滚动工具 - + Razor Tool 刀片工具 - + Slip Tool 滑移工具 - + Slide Tool 滑动工具 - + Hand Tool 手形工具 - + Zoom Tool 缩放工具 - + Transition Tool 转场工具 - + Record Tool 录制工具 - + Add Tool 添加工具 - + Toggle Snapping 切换吸附 - + Track Select Tool 轨道选择工具 @@ -9126,129 +8311,86 @@ Do you wish to continue? olive::Track - + Video Track %1 视频轨道 %1 - + Audio Track %1 音频轨道 %1 - + Subtitle Track %1 字幕轨道 %1 - + Track 轨道 - + Node for representing and processing a single array of Blocks sorted by time. Also represents the end of a Sequence. 代表并处理单组方块节点,以时间排序,也代表序列的结尾。 - + Blocks 方块 - + Muted 已静音 - + V - + - + A - + - + S S - - olive::TrackOutput - - Track - 轨道 - - - Node for representing and processing a single array of Blocks sorted by time. Also represents the end of a Sequence. - 代表并处理单组方块节点,以时间排序,也代表序列的结尾。 - - - Blocks - 方块 - - - Muted - 已静音 - - - Video %1 - 视频 %1 - - - Audio %1 - 音频 %1 - - - Subtitle %1 - 字幕 %1 - - - Track %1 - 轨道 %1 - - olive::TrackViewItem - M - M - - - L - L - - - + &Delete - + - + Delete All &Empty - + - - Deleted Track "%1" - + + Deleted Track "%1" + - - + + Delete All Empty 删除全部空片段 - + No tracks are currently empty 当前没有空轨道 - + This will delete the following tracks: %1 @@ -9261,75 +8403,75 @@ Do you wish to continue? 是否要继续? - + Deleted All Empty Tracks - + olive::TransformDistortNode - + Parent 父级 - + Auto-Scale 自动缩放 - + Texture 纹理 - + Interpolation 插值 - + None - + Fit 适合 - + Fill 填满 - + Stretch 拉伸 - + Nearest Neighbor 最短距离 - + Bilinear 双线性 - + Mipmapped Bilinear Mipmap双线性 - + Transform 变换 - + Transform an image in 2D space. Equivalent to multiplying by an orthographic matrix. 在2D空间中变换图像。相当于乘以正交矩阵。 @@ -9337,37 +8479,37 @@ Do you wish to continue? olive::TransitionBlock - + From - + To - + Curve 曲线 - + Linear 线性 - + Exponential 指数 - + Logarithmic 对数 - + Center Offset 中心偏移量 @@ -9375,67 +8517,67 @@ Do you wish to continue? olive::TrigonometryNode - + Trigonometry 三角函数 - + Perform a trigonometry operation on a value. 对一个值进行三角函数运算。 - + Sine 正弦 - + Cosine 余弦 - + Tangent 正切 - + Inverse Sine 反正弦 - + Inverse Cosine 反余弦 - + Inverse Tangent 反正切 - + Hyperbolic Sine 双曲正弦 - + Hyperbolic Cosine 双曲余弦 - + Hyperbolic Tangent 双曲正切 - + Method 方法 - + Value @@ -9443,124 +8585,98 @@ Do you wish to continue? olive::UndoStack - + New/Open Project - + - + Command - + olive::ValueNode - + Value - + Create a single value that can be connected to various other inputs. 创建一个可以连接到其他各种输入的值。 - - olive::VideoDividerComboBox - - Full - 完全 - - - 1/%1 - 1/%1 - - - - olive::VideoInput - - Video Input - 视频输入 - - - Video - 视频 - - - Import a video footage stream. - 导入视频素材流。 - - olive::VideoStreamProperties - + Pixel Aspect: 像素宽高比: - + Interlacing: 交错: - + Color Space: 颜色空间: - + Default (%1) 默认 (%1) - + Premultiplied Alpha 预乘 Alpha - + Image Sequence 图像序列 - + Start Index: 起始索引: - + End Index: 结束索引: - + Frame Rate: 帧率: - + Invalid Configuration 无效的配置 - + Image sequence end index must be a value higher than the start index. 图像序列结束索引必须是比起始索引大的值。 - + Color Range: 颜色范围: - + Limited (16-235) 有限(16-235) - + Full (0-255) 完整(0-255) @@ -9568,84 +8684,72 @@ Do you wish to continue? olive::ViewerDisplayWidget - + %n skipped frame(s) detected during playback 播放过程中检测到%n个跳过的帧 - + %1 FPS %1 FPS - + %1 frames skipped 跳过%1帧 - + Dragged Gizmo - + olive::ViewerOutput - + Viewer 查看器 - + Interface between a Viewer panel and the node system. 查看器面板与节点系统之间的接口。 - + Texture 纹理 - + Samples 采样 - Video Tracks - 视频轨道 - - - Audio Tracks - 音频轨道 - - - Subtitle Tracks - 字幕轨道 - - - + %1 FPS %1 FPS - + %1 Hz %1 Hz - + Video Parameters 音频参数 - + Audio Parameters 音频参数 - + Subtitle Parameters 字幕参数 @@ -9653,7 +8757,7 @@ Do you wish to continue? olive::ViewerPanel - + Viewer 查看器 @@ -9661,24 +8765,24 @@ Do you wish to continue? olive::ViewerTextEditorToolBar - + Stretch: 拉伸: - - - + + + %1% %1% - + Kerning: 字距: - + Line Height: 线条高度: @@ -9686,111 +8790,83 @@ Do you wish to continue? olive::ViewerWidget - + Error 错误 - + No in or out points are set to cache. 未设置要缓存的入点或出点。 - + Created Shape - + - - + + Safe Margins 安全边距 - + Zoom 缩放 - + Fit 适合 - + %1% %1% - + Full Screen 全屏 - + Screen %1: %2x%3 屏幕 %1:%2x%3 - + Deinterlace 去交错 - Scopes - 范围 - - - Cache - 缓存 - - - Auto-Cache - 自动缓存 - - - Pause Auto-Cache During Playback - 在回放过程中暂停自动缓存 - - - Cache Entire Sequence - 缓存整个序列 - - - Cache Sequence In/Out - 缓存序列入点至出点 - - - + Off 关闭 - + On 开启 - + Custom Aspect 自定义宽高比 - Show Audio Waveform - 显示音频波形 - - - + Audio scrubbing failed: %1 音频清理失败:%1 - + Audio Error 音频错误 - + Failed to start audio: %1 Please check your audio preferences and try again. @@ -9799,88 +8875,88 @@ Please check your audio preferences and try again. 请检查您的音频首选项,然后重试。 - + Changed Playback Resolution - + - + Playback Resolution 播放分辨率 - + Stop Playback On Last Frame 在最后一帧停止播放 - + Audio Waveform 音频波形 - + Automatically Show/Hide 自动显示/隐藏 - + Show Waveform Only 显示音频波形 - + Show Both Viewer And Waveform 显示查看器和波形 - + Show FPS 显示FPS - + Subtitles 字幕 - + Show Subtitles 显示字幕 - + Subtitle Properties 字幕财产 - + Use Anti-aliasing 使用抗锯齿 - + Save Frame As Image 将帧另存为图像 - - + + Audio Recording 音频录制 - + Project must be saved before you can record audio. 必须先保存项目,然后才能录制音频。 - + audio 音频 - + Failed to start audio recording: %1 无法启动音频录制:%1 @@ -9888,18 +8964,18 @@ Please check your audio preferences and try again. olive::VolumeNode - - + + Volume 音量 - + Adjusts the volume of an audio source. 调整音频源的音量。 - + Samples 采样 @@ -9907,47 +8983,47 @@ Please check your audio preferences and try again. olive::WaveDistortNode - + Wave 波形 - + Distorts an image along a sine wave. 沿正弦扭曲图像。 - + Input 输入 - + Frequency 频率 - + Intensity 强度 - + Evolution 渐进 - + Direction 方向 - + Horizontal 水平 - + Vertical 垂直 @@ -9955,44 +9031,44 @@ Please check your audio preferences and try again. olive::plugin::PluginNode - + Source - + From - + To - + Filter 滤镜 - + Generator 生成器 - + Transition 转场 - + General 常规 - + Texture 纹理 - + \ No newline at end of file diff --git a/app/widget/filefield/CMakeLists.txt b/app/widget/filefield/CMakeLists.txt index 8561f7cb6..b4001c334 100644 --- a/app/widget/filefield/CMakeLists.txt +++ b/app/widget/filefield/CMakeLists.txt @@ -18,5 +18,7 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} widget/filefield/filefield.cpp widget/filefield/filefield.h + widget/filefield/lutfilefield.cpp + widget/filefield/lutfilefield.h PARENT_SCOPE ) diff --git a/app/widget/filefield/filefield.h b/app/widget/filefield/filefield.h index a5dea1910..cf1b1e248 100644 --- a/app/widget/filefield/filefield.h +++ b/app/widget/filefield/filefield.h @@ -38,7 +38,7 @@ public: return line_edit_->text(); } - void SetFilename(const QString &s) + virtual void SetFilename(const QString &s) { line_edit_->setText(s); } diff --git a/app/widget/filefield/lutfilefield.cpp b/app/widget/filefield/lutfilefield.cpp new file mode 100644 index 000000000..126e24843 --- /dev/null +++ b/app/widget/filefield/lutfilefield.cpp @@ -0,0 +1,89 @@ +/*** + + Oak - Non-Linear Video Editor + Copyright (C) 2026 Oak Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "lutfilefield.h" + +#include +#include + +#include "render/lutlibrary.h" + +namespace olive +{ + +LutFileField::LutFileField(QWidget *parent) : FileField(parent) +{ + library_combo_ = new QComboBox(); + library_combo_->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon); + library_combo_->setMinimumContentsLength(12); + static_cast(layout())->insertWidget(0, library_combo_, 1); + + RefreshLibraryEntries(); + + connect(library_combo_, + static_cast(&QComboBox::activated), this, + [this](int index) { + const QString path = + library_combo_->itemData(index).toString(); + if (!path.isEmpty()) { + SetFilename(path); + emit FilenameChanged(path); + } + }); + + // Keep the combo in sync when the path is edited directly + connect(this, &FileField::FilenameChanged, this, [this](const QString &) { + RefreshLibraryEntries(); + }); +} + +void LutFileField::SetFilename(const QString &s) +{ + FileField::SetFilename(s); + RefreshLibraryEntries(); +} + +void LutFileField::RefreshLibraryEntries() +{ + const QString current = GetFilename(); + + const QSignalBlocker blocker(library_combo_); + library_combo_->clear(); + library_combo_->addItem(tr("Other (Custom File)..."), QString()); + + const QStringList library_dirs = LUTLibrary::GetDirectories(); + const QStringList luts = LUTLibrary::GetLutFiles(); + for (const QString &lut : luts) { + // Show the path relative to the library directory that contains it + QString display = lut; + for (const QString &dir : library_dirs) { + if (lut.startsWith(dir)) { + display = QDir(dir).relativeFilePath(lut); + break; + } + } + library_combo_->addItem(display, lut); + } + + const int index = library_combo_->findData(current); + library_combo_->setCurrentIndex(index >= 0 ? index : 0); +} + +} diff --git a/app/widget/filefield/lutfilefield.h b/app/widget/filefield/lutfilefield.h new file mode 100644 index 000000000..c37384cc4 --- /dev/null +++ b/app/widget/filefield/lutfilefield.h @@ -0,0 +1,71 @@ +/*** + + Oak - Non-Linear Video Editor + Copyright (C) 2026 Oak Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef LUTFILEFIELD_H +#define LUTFILEFIELD_H + +#include + +#include "filefield.h" + +namespace olive +{ + +/** + * @brief A FileField with a combo box for picking LUTs from the global LUT + * library + * + * The combo lists every LUT found by LUTLibrary::GetLutFiles() plus an + * "Other" entry for custom file paths. Picking a library entry fills in the + * file path (through the regular FilenameChanged signal, so undo keeps + * working); picking "Other" or entering a path that is not in the library + * leaves the path untouched and shows the combo's "Other" entry. + */ +class LutFileField : public FileField { + Q_OBJECT +public: + LutFileField(QWidget *parent = nullptr); + + virtual void SetFilename(const QString &s) override; + + /** + * @brief The combo box listing the LUT library entries + * + * Exposed for inspection and UI tests; prefer SetFilename()/GetFilename() + * for interacting with the field itself. + */ + QComboBox *library_combo() const + { + return library_combo_; + } + +private: + /** + * @brief Repopulates the combo from the LUT library and syncs the + * selection with the current filename + */ + void RefreshLibraryEntries(); + + QComboBox *library_combo_; +}; + +} + +#endif // LUTFILEFIELD_H diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index f573bb971..d41b89442 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -42,6 +42,7 @@ #include "widget/bezier/bezierwidget.h" #include "widget/colorbutton/colorbutton.h" #include "widget/filefield/filefield.h" +#include "widget/filefield/lutfilefield.h" #include "widget/slider/floatslider.h" #include "widget/slider/integerslider.h" #include "widget/slider/rationalslider.h" @@ -141,7 +142,15 @@ void NodeParamViewWidgetBridge::CreateWidgets() break; } case NodeValue::kFile: { - FileField *file_field = new FileField(parent); + FileField *file_field; + if (GetInnerInput().GetProperty(QStringLiteral("lut_library")) + .toBool()) { + // File inputs that accept LUTs get a combo box for picking + // from the global LUT library + file_field = new LutFileField(parent); + } else { + file_field = new FileField(parent); + } widgets_.append(file_field); connect(file_field, &FileField::FilenameChanged, this, &NodeParamViewWidgetBridge::WidgetCallback); diff --git a/docs/project-file-reference.md b/docs/project-file-reference.md index 8fc5328ca..cd0f68397 100644 --- a/docs/project-file-reference.md +++ b/docs/project-file-reference.md @@ -352,6 +352,7 @@ Default `Node::SaveCustom()` writes nothing. Specific node subclasses may overri 1740000000 /path/to/proxy.mp4 + /path/to/proxy.mov 1/25 ... @@ -370,12 +371,24 @@ Default `Node::SaveCustom()` writes nothing. Specific node subclasses may overri - `stream`:代理使用的视频流索引。 - `preset`: proxy preset version. - `preset`:代理预设版本。 + - `custom` (optional): `1` when the footage uses per-footage custom proxy parameters instead of the global settings. + - `custom`(可选):为 `1` 表示该素材使用独立的自定义代理参数,而不是全局设置。 + - `pwidth`, `pheight` (optional, requires `custom="1"`): custom proxy dimensions. + - `pwidth`、`pheight`(可选,需 `custom="1"`):自定义代理分辨率。 + - `pcrf` (optional): custom x264 CRF value. + - `pcrf`(可选):自定义 x264 CRF 值。 + - `ppreset` (optional): custom x264 preset name. + - `ppreset`(可选):自定义 x264 预设名称。 + - `pext` (optional): custom proxy container extension (e.g. `mp4`, `mov`). + - `pext`(可选):自定义代理容器扩展名(如 `mp4`、`mov`)。 + - `paudio` (optional): `1` if the proxy includes audio streams, `0` for video-only. Proxies generated with audio store the video stream at index 0 followed by the source audio streams in source order. + - `paudio`(可选):`1` 表示代理包含音频流,`0` 表示仅视频。包含音频的代理将视频流放在索引 0,其后按源顺序跟随音频流。 - Text content: proxy file path (may be empty if `enabled` is true but proxy is not yet generated). - 文本内容:代理文件路径(如果 `enabled` 为 true 但代理尚未生成,则可能为空)。 - ``: source start time offset. - ``:源起始时间偏移。 - - `source` attribute: source identifier (e.g. `timecode`). - - `source` 属性:源标识符(如 `timecode`)。 + - `source` attribute: source identifier (e.g. `timecode`, `bwf_time_reference`, or `manual` when entered by the user). + - `source` 属性:源标识符(如 `timecode`、`bwf_time_reference`,或用户手动输入时的 `manual`)。 - Text: rational `numerator/denominator`. - 文本:有理数 `numerator/denominator`。 - ``: see `ViewerOutput` below. diff --git a/tests/gtest/CMakeLists.txt b/tests/gtest/CMakeLists.txt index ad60f8a42..a927d6e5a 100644 --- a/tests/gtest/CMakeLists.txt +++ b/tests/gtest/CMakeLists.txt @@ -46,6 +46,7 @@ add_executable(olive-gtest project_serializer_test.cpp proxy_manager_test.cpp proxy_dialog_test.cpp + lut_file_field_test.cpp timeline_marker_test.cpp undo_stack_test.cpp plugin_support_test.cpp diff --git a/tests/gtest/lut_file_field_test.cpp b/tests/gtest/lut_file_field_test.cpp new file mode 100644 index 000000000..957d93eec --- /dev/null +++ b/tests/gtest/lut_file_field_test.cpp @@ -0,0 +1,107 @@ +#include + +#include +#include +#include +#include + +#include "config/config.h" +#include "render/lutlibrary.h" +#include "widget/filefield/lutfilefield.h" + +namespace +{ + +class LutLibraryConfigGuard { +public: + LutLibraryConfigGuard() + : previous_(olive::Config::Current()[QStringLiteral("LUTLibraryPaths")] + .toString()) + { + } + + ~LutLibraryConfigGuard() + { + olive::Config::Current()[QStringLiteral("LUTLibraryPaths")] = previous_; + } + +private: + QString previous_; +}; + +QString WriteFile(const QString &path) +{ + QFile file(path); + if (!file.open(QIODevice::WriteOnly)) { + return QString(); + } + file.close(); + return path; +} + +} // namespace + +TEST(LutFileField, PopulatesComboFromLibrary) +{ + LutLibraryConfigGuard guard; + + QTemporaryDir dir; + ASSERT_TRUE(dir.isValid()); + + const QString cube = + WriteFile(QDir(dir.path()).filePath(QStringLiteral("a.cube"))); + const QString three_dl = + WriteFile(QDir(dir.path()).filePath(QStringLiteral("b.3dl"))); + const QString other = + WriteFile(QDir(dir.path()).filePath(QStringLiteral("c.txt"))); + ASSERT_FALSE(cube.isEmpty()); + ASSERT_FALSE(three_dl.isEmpty()); + ASSERT_FALSE(other.isEmpty()); + + olive::LUTLibrary::SetDirectories({ dir.path() }); + + olive::LutFileField field; + + // One "Other" entry plus one entry per supported LUT + ASSERT_EQ(field.library_combo()->count(), 3); + EXPECT_TRUE(field.library_combo()->itemData(0).toString().isEmpty()); + EXPECT_GE(field.library_combo()->findData(cube), 1); + EXPECT_GE(field.library_combo()->findData(three_dl), 1); + EXPECT_EQ(field.library_combo()->findData(other), -1); +} + +TEST(LutFileField, SelectionFollowsFilenameAndEmitsOnPick) +{ + LutLibraryConfigGuard guard; + + QTemporaryDir dir; + ASSERT_TRUE(dir.isValid()); + + const QString cube = + WriteFile(QDir(dir.path()).filePath(QStringLiteral("a.cube"))); + ASSERT_FALSE(cube.isEmpty()); + + olive::LUTLibrary::SetDirectories({ dir.path() }); + + olive::LutFileField field; + + // A path that is not in the library shows the "Other" entry + field.SetFilename(QStringLiteral("/custom/elsewhere.cube")); + EXPECT_EQ(field.library_combo()->currentIndex(), 0); + + // A library path selects its entry + field.SetFilename(cube); + EXPECT_GT(field.library_combo()->currentIndex(), 0); + + // Picking a library entry updates the filename and emits the change + // signal so the parameter bridge applies it like any other edit + field.SetFilename(QString()); + QSignalSpy spy(&field, &olive::FileField::FilenameChanged); + const int index = field.library_combo()->findData(cube); + ASSERT_GE(index, 1); + emit field.library_combo()->activated(index); + + EXPECT_EQ(field.GetFilename(), cube); + ASSERT_EQ(spy.count(), 1); + EXPECT_EQ(spy.first().first().toString(), cube); +}