auricui-skill 0.0.0-stage → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +29 -2
- package/bin/install.mjs +66 -0
- package/package.json +29 -4
- package/skill/SKILL.md +64 -0
- package/skill/agents/openai.yaml +4 -0
- package/skill/assets/examples/ApprovalCard.tsx +8 -0
- package/skill/assets/examples/BasicApp.tsx +38 -0
- package/skill/assets/examples/BriefingCard.tsx +8 -0
- package/skill/assets/examples/ChatControls.tsx +49 -0
- package/skill/assets/examples/ChatPanel.tsx +73 -0
- package/skill/assets/examples/Checkbox.tsx +13 -0
- package/skill/assets/examples/Combobox.tsx +14 -0
- package/skill/assets/examples/Drawer.tsx +10 -0
- package/skill/assets/examples/MemoryCard.tsx +9 -0
- package/skill/assets/examples/MessageList.tsx +8 -0
- package/skill/assets/examples/Theme.tsx +14 -0
- package/skill/assets/examples/ToolCall.tsx +8 -0
- package/skill/assets/examples/Tree.tsx +15 -0
- package/skill/assets/examples/examples.css +11 -0
- package/skill/assets/library/auricui-0.1.0-preview.1.tgz +0 -0
- package/skill/assets/library/auricui-0.1.0-preview.3.tgz +0 -0
- package/skill/assets/library/auricui-0.1.0-preview.4.tgz +0 -0
- package/skill/assets/upstream/LICENSE +21 -0
- package/skill/assets/upstream/apps/desktop/chat/src/App.tsx +1099 -0
- package/skill/assets/upstream/apps/desktop/chat/src/app-bridge.ts +154 -0
- package/skill/assets/upstream/apps/desktop/chat/src/chat.css +1812 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/AddSkill.tsx +223 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/AgentActivityRow.tsx +716 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/AgentIcons.tsx +46 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/AttachmentCard.tsx +34 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/AttachmentPreview.tsx +331 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/BalanceNotice.tsx +22 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/BrandLogo.tsx +35 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/ComposerCard.tsx +182 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/ConversationSessionBar.tsx +292 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/CopyDiagnostics.tsx +24 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/Divider.tsx +47 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/FileChangesList.tsx +119 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/Markdown.tsx +198 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/ModelPopover.tsx +280 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/NoticeCard.tsx +87 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/Popover.tsx +195 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/PreviewFrame.tsx +129 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/ProjectConversation.tsx +852 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/ProjectStarters.tsx +118 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/Tooltip.tsx +191 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/TurnLog.tsx +583 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/TurnQuestionCard.tsx +133 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/dock-pane-bar.ts +14 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/project-version.ts +37 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/MentionMenuPlugin.tsx +372 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/PromptEditor.tsx +476 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/PromptPill.tsx +399 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/PromptReferenceNode.tsx +164 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/index.ts +31 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/mention-menu.ts +206 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/prompt-editor/prompt-text.ts +171 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/useStickToBottom.ts +320 -0
- package/skill/assets/upstream/apps/desktop/chat/src/components/useTicker.ts +55 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/index.ts +42 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/en-US.ts +408 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/es.ts +407 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/ja.ts +407 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/ko.ts +403 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/words.ts +6 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/locales/zh-CN.ts +407 -0
- package/skill/assets/upstream/apps/desktop/chat/src/i18n/lookup.ts +12 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/agent-activity-runs.ts +154 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/agent-menu-rows.ts +41 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/agent-refs.ts +105 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/agent-transcript.ts +440 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/asset-lists.ts +75 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/attachment-place.ts +17 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/balance.ts +16 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/chat-layer.ts +10 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/chat-menu.ts +18 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/chat-store.ts +101 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/composer-attachments.ts +189 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/desktop-attachments.ts +178 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/desktop-bridge.ts +291 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/developer.ts +39 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/esc-stop.ts +23 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/file-changes.ts +32 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/live-activity.ts +20 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/local-agent-run.ts +1174 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/local-sessions.ts +25 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/model-calls.ts +87 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/pretty-json.ts +12 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/preview-top.ts +15 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/project-resources.ts +66 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/project-sessions.ts +66 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/project-versions.ts +116 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/ref-pictures.ts +119 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/relative-time.ts +46 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/skill-pages.ts +29 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/step-file.ts +23 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/structural-share.ts +52 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/studio-film.ts +44 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/studio-transfer.ts +40 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/unprompted.ts +27 -0
- package/skill/assets/upstream/apps/desktop/chat/src/lib/upload-limits.ts +53 -0
- package/skill/assets/upstream/apps/desktop/chat/src/mount.tsx +19 -0
- package/skill/assets/upstream/apps/desktop/chat/src/state/local-agent-store.ts +296 -0
- package/skill/assets/upstream/apps/desktop/chat/src/studio-refs.ts +307 -0
- package/skill/assets/upstream/apps/desktop/package.json +51 -0
- package/skill/assets/upstream/apps/desktop/shell/bridge.ts +415 -0
- package/skill/assets/upstream/apps/desktop/shell/index.html +27 -0
- package/skill/assets/upstream/apps/desktop/shell/main.tsx +17 -0
- package/skill/assets/upstream/apps/desktop/shell/shell.css +17 -0
- package/skill/assets/upstream/apps/desktop/shell/vite.config.ts +65 -0
- package/skill/assets/upstream/apps/desktop/src/agent-definitions.mjs +31 -0
- package/skill/assets/upstream/packages/openfilm/LICENSE +21 -0
- package/skill/assets/upstream/packages/openfilm/package.json +88 -0
- package/skill/assets/upstream/packages/openfilm/src/film-doc.d.mts +125 -0
- package/skill/assets/upstream/packages/openfilm/src/film-doc.mjs +986 -0
- package/skill/assets/upstream/packages/openfilm/src/overrides.mjs +73 -0
- package/skill/assets/upstream/packages/openfilm/src/timeline.mjs +1280 -0
- package/skill/assets/upstream/packages/openfilm/studio/server/bridge.js +209 -0
- package/skill/assets/upstream/packages/openfilm/studio/server/film-subtitle.mjs +785 -0
- package/skill/assets/upstream/packages/openfilm/studio/server/ops.mjs +403 -0
- package/skill/assets/upstream/packages/openfilm/studio/server/stage.js +1649 -0
- package/skill/assets/upstream/packages/openfilm/studio/server/track-layout.mjs +43 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/App.tsx +156 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/api.ts +328 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/AudioMeters.tsx +188 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/BlockThumbs.tsx +84 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/BlockWaveform.tsx +201 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/BrandLoadingScreen.tsx +56 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/BrandLogo.tsx +25 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Card.tsx +89 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ColorPicker.tsx +204 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ConfirmDialog.tsx +96 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ContextMenu.tsx +422 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/DesktopDialog.tsx +271 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ExamplesGallery.tsx +372 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FilmFullscreenBar.tsx +147 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FilmInspector.tsx +2310 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FilmStageSelect.tsx +3296 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FocusNav.tsx +28 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FontFamilyPicker.tsx +293 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/FramePicker.tsx +69 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/InspectorPanel.tsx +25 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Launcher.tsx +38 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/LayersPanel.tsx +277 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/LiveTime.tsx +101 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/MediaPool.tsx +1413 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/MediaPreview.tsx +188 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/MenuSelect.tsx +161 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/MgOutline.tsx +24 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/OperationHistory.tsx +184 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/PaneDivider.tsx +292 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/PasteAttrsDialog.tsx +69 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/PlaybackMenu.tsx +110 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Popover.tsx +159 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectCover.tsx +60 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectHistoryControls.tsx +748 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectLayoutMenu.tsx +82 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectMenu.tsx +111 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectSources.tsx +587 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectView.tsx +3222 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectsLibrary.tsx +567 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ProjectsView.tsx +1593 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/PropertiesSection.tsx +418 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ResourceInspector.tsx +100 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SelectionToolbar.tsx +157 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SkillsLibrary.tsx +504 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SourcePreview.tsx +464 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SpendAsks.tsx +88 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/StageMaskOverlay.tsx +299 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/StageTransformFrame.tsx +246 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SubtitleInspector.module.css +46 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SubtitleInspector.tsx +884 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SubtitleOverlay.tsx +148 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/SubtitleRow.tsx +419 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/TabStrip.tsx +188 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Timeline.tsx +4911 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/TimelineMarkers.tsx +329 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Toast.tsx +55 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/Tooltip.tsx +193 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/UpdateButton.tsx +104 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/ViewerBar.tsx +98 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/WhatsNew.tsx +147 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/dock-pane-bar.ts +16 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/export/ExportCenter.tsx +1502 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/export/ExportTray.tsx +284 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/film-stage-hit.ts +18 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/inspector-fields.tsx +863 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/inspector-look.tsx +1357 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/player-controls/controls-bar.tsx +397 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/player-controls/transport.tsx +294 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/replace-drop.ts +20 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/AgentsSection.tsx +613 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/CustomServices.tsx +104 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/DiagnosticsGroup.tsx +202 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/ModelsSection.tsx +179 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/ProviderMark.tsx +24 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/ProvidersSection.tsx +177 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/SettingsModal.tsx +511 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/SettingsSelect.tsx +84 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/ShortcutsSection.tsx +291 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/StorageGroup.tsx +119 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/theme.ts +47 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/ui.tsx +139 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/settings/use-settings.ts +10 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/stage-menu.tsx +283 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/timeline-head-extras.tsx +91 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/typing-target.ts +45 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/use-editor-tools.tsx +408 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/use-page-changes.ts +48 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/use-project-history.ts +113 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/components/useBlockDrag.ts +639 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/Preview.tsx +426 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/player.ts +558 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/preview-frames.ts +36 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/steps.ts +36 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/undo.ts +156 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/use-film.ts +212 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/editor/use-preview-renders.ts +89 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/globals.css +559 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/en.ts +1901 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/es.ts +1900 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/index.ts +130 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/ja.ts +1900 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/ko.ts +1896 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/words.ts +6 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/i18n/zh-CN.ts +1901 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/agent-row.ts +21 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/asset-timeline.ts +469 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/audio-levels.ts +60 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/batch-map.ts +28 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/browser.ts +10 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/canvas-fit.ts +116 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/chat-marks.ts +114 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/clip-attrs.ts +102 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/clip-fade.ts +70 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/clip-look.ts +520 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/clip-mask.ts +536 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/clip-replace.ts +60 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/component-props.ts +128 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/context-length.ts +12 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/desktop-build.ts +44 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/diagnostics.ts +68 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/double-press.ts +22 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/dropped-overrides.ts +139 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/export-jobs.ts +191 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/export-spec.ts +261 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/field-input.ts +155 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/film-clip-edits.ts +82 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/film-frame.ts +134 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/film-overrides.ts +107 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/film-shape.ts +172 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/film.ts +80 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/font-menu.ts +236 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/font-styles.ts +129 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/freeze-frame.ts +49 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/host.ts +438 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/inspect-scrub.ts +26 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/keymap-store.ts +74 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/keymap.ts +529 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/layers-tree.ts +133 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/look.ts +83 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/loudness.ts +58 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/markers.ts +152 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/media-bar.ts +58 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/media-folders.ts +45 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/media-place.ts +102 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/media-queue.ts +107 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/media-selection.ts +64 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/menu-position.ts +77 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/mg-transform.ts +111 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/mixed.ts +3 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/page-changes.ts +45 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/picture-files.ts +19 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/preview-prefs.ts +46 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/preview-renders.ts +71 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/project-delete.ts +20 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/project-folders.ts +144 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/project-history.ts +188 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/project-sources.ts +283 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/projects-page.ts +40 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/provider-marks.ts +35 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/providers.ts +163 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/resource-drag.ts +131 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/retry-image.ts +17 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/saved-insert.ts +40 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/saved.ts +125 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/selection-toolbar.ts +158 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/shortcut-hint.ts +21 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/similar-layers.ts +46 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/solo.ts +19 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-clip.ts +60 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-crop.ts +232 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-gesture.ts +277 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-layers.ts +71 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-mask.ts +176 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-measure.ts +53 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/stage-types.ts +155 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/studio-refs.ts +248 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/studio-version.ts +41 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/subtitle-cues.ts +238 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/subtitles.ts +263 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/tab-menu.ts +6 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/template-controls.ts +131 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/theme-changes.ts +31 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/thumb-cache.ts +63 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/thumb-cell.ts +8 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/thumb-frame.ts +76 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/thumb-pick.ts +42 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timecode.ts +161 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-clipboard.ts +279 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-drag.ts +589 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-edit.ts +1138 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-keys.ts +63 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-layout.ts +1038 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-nav.ts +160 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-prefs.ts +73 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-split.ts +40 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/timeline-view.ts +105 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/title.ts +39 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/track-heights.ts +55 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/track-lock.ts +27 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/transitions.ts +459 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/type-metrics.ts +83 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-film-subtitles.ts +111 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-fonts.ts +181 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-loaded-thumbs.ts +91 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-subtitle-edits.ts +134 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-subtitle-font.ts +51 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/use-subtitle-style.ts +68 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/waveform-columns.ts +48 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/web-update.ts +41 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/whats-new.ts +401 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/lib/workspace-resources.ts +373 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/src/main.tsx +10 -0
- package/skill/assets/upstream/packages/openfilm/studio/ui/vite.config.ts +12 -0
- package/skill/assets/upstream/packages/shared/package.json +45 -0
- package/skill/assets/upstream/packages/shared/src/agent-activity.ts +263 -0
- package/skill/assets/upstream/packages/shared/src/contract.ts +285 -0
- package/skill/assets/upstream/packages/shared/src/index.ts +17 -0
- package/skill/assets/upstream/packages/shared/src/markdown-blocks.ts +252 -0
- package/skill/assets/upstream/packages/shared/src/modality.ts +4 -0
- package/skill/assets/upstream/packages/shared/src/prompt-reference.ts +113 -0
- package/skill/assets/upstream/packages/shared/src/title.ts +76 -0
- package/skill/assets/upstream/packages/shared/src/turn.ts +68 -0
- package/skill/assets/upstream/packages/shared/src/video.ts +26 -0
- package/skill/references/agent-components.md +33 -0
- package/skill/references/api-index.json +2693 -0
- package/skill/references/chat-components.md +65 -0
- package/skill/references/components.md +23 -0
- package/skill/references/core-components.md +44 -0
- package/skill/references/dependencies.md +22 -0
- package/skill/references/esm-package.md +48 -0
- package/skill/references/integration.md +43 -0
- package/skill/references/library-manifest.json +12 -0
- package/skill/references/source-manifest.json +325 -0
- package/skill/references/studio-components.md +24 -0
- package/skill/references/theme-motion.md +49 -0
- package/skill/references/troubleshooting.md +27 -0
- package/skill/references/verification.md +13 -0
- package/skill/scripts/check_dependencies.py +109 -0
- package/skill/scripts/inspect_api.py +60 -0
|
@@ -0,0 +1,1901 @@
|
|
|
1
|
+
/** The UI's words (简体中文). Looked up by dotted path with useT(). */
|
|
2
|
+
import type { Words } from './words.ts';
|
|
3
|
+
|
|
4
|
+
/** what the system's file manager is called here */
|
|
5
|
+
const FILES = typeof navigator !== 'undefined' && /^win/i.test(navigator.platform) ? '文件资源管理器'
|
|
6
|
+
: typeof navigator !== 'undefined' && /^mac/i.test(navigator.platform) ? '访达' : '文件管理器';
|
|
7
|
+
/* the system's trash, by its name there */
|
|
8
|
+
const TRASH = typeof navigator !== 'undefined' && /^win/i.test(navigator.platform) ? '回收站'
|
|
9
|
+
: typeof navigator !== 'undefined' && /^mac/i.test(navigator.platform) ? '废纸篓' : '回收站';
|
|
10
|
+
|
|
11
|
+
export const zhCN: Words = {
|
|
12
|
+
nav: {
|
|
13
|
+
projects: '项目',
|
|
14
|
+
desktop: '桌面版',
|
|
15
|
+
},
|
|
16
|
+
/* the app window's tabs (TabStrip), a new tab's launcher, and the examples (ExamplesGallery) */
|
|
17
|
+
tabs: { label: '标签页', new: '打开项目', close: '关闭标签页', closeOthers: '关闭其他标签页', closeRight: '关闭右侧标签页' },
|
|
18
|
+
launcher: { projects: '我的项目', examples: '示例' },
|
|
19
|
+
gallery: {
|
|
20
|
+
chooseCover: "选择封面",
|
|
21
|
+
changeCover: "更换封面",
|
|
22
|
+
removeCover: "移除封面",
|
|
23
|
+
coverSaving: "保存中…",
|
|
24
|
+
coverInvalid: "请选择有效的 PNG、JPEG 或 WebP 图片,最大 5 MB。",
|
|
25
|
+
title: '示例',
|
|
26
|
+
community: '社区',
|
|
27
|
+
discoverNote: '用 OpenFilm 做的片子,可以从它开始,也可以参考它的做法。',
|
|
28
|
+
noSkills: '还没有你的 skill。把品牌、系列风格、固定片头片尾存成 skill,以后每部片子都能保持一致。可以从链接或文件夹添加,也可以在做完一部满意的片子后,让 agent 把它存成 skill。',
|
|
29
|
+
all: '全部',
|
|
30
|
+
workflow: '场景',
|
|
31
|
+
style: '风格',
|
|
32
|
+
skillKinds: 'Skill 有两种:\n· 你自己的:存着只有你知道的东西,比如你的品牌、系列风格、固定的片头片尾。AI 再聪明也猜不到,存一次,以后每部片子都能用上。\n· OpenFilm 提供的:做某一类片子的现成做法,帮你快速上手。AI 越来越强,这类会越来越用不上。',
|
|
33
|
+
search: '搜索 skill',
|
|
34
|
+
noMatch: '没有匹配的 skill。',
|
|
35
|
+
aboutSkills: '关于 skill',
|
|
36
|
+
fromFolder: '文件夹',
|
|
37
|
+
made: '你做的',
|
|
38
|
+
skills: 'Skill',
|
|
39
|
+
loading: '正在读取示例…',
|
|
40
|
+
empty: '没有可显示的示例。示例从 GitHub 读取,请检查网络。',
|
|
41
|
+
start: '用它开始',
|
|
42
|
+
startNew: '用它开始一部新片',
|
|
43
|
+
startHow: '会复制一份成为你的新项目,源码可以直接改。',
|
|
44
|
+
reference: '在这部片子里参考',
|
|
45
|
+
referencePart: '参考这一段',
|
|
46
|
+
referenceHow: '会放进你的消息里。agent 会读它是怎么做的(页面和时间),照着用在你的片子里。',
|
|
47
|
+
referenceNote: '选一个示例,或者其中一段,让 agent 参考着做',
|
|
48
|
+
parts: '分段',
|
|
49
|
+
whole: '整部',
|
|
50
|
+
partsHint: '点一段,或者在条上拖出一段。',
|
|
51
|
+
viewSource: '在 GitHub 上查看',
|
|
52
|
+
back: '返回',
|
|
53
|
+
installed: '已安装',
|
|
54
|
+
discover: '发现',
|
|
55
|
+
mineHint: '在你的 Skills 文件夹里',
|
|
56
|
+
fromOpenFilm: '来自 OpenFilm',
|
|
57
|
+
officialHint: '从“发现”安装',
|
|
58
|
+
projectHint: '随这部片子保存',
|
|
59
|
+
noneInstalled: '还没有安装。去这里找 OpenFilm 的:',
|
|
60
|
+
fromAgent: '来自 {name}',
|
|
61
|
+
agentHint: '智能体自己的,开启后才会用。',
|
|
62
|
+
removeTitle: `把「{name}」移到${TRASH}?`,
|
|
63
|
+
removeHint: `智能体不会再用它。需要时可以从${TRASH}放回来。`,
|
|
64
|
+
remove: `移到${TRASH}`,
|
|
65
|
+
tryNow: '试一试',
|
|
66
|
+
tryOff: '开启后才能试',
|
|
67
|
+
details: '详情',
|
|
68
|
+
uninstall: '卸载',
|
|
69
|
+
offLine: '已关闭,智能体不会用它。',
|
|
70
|
+
installedOne: '已安装',
|
|
71
|
+
install: '安装',
|
|
72
|
+
more: '更多',
|
|
73
|
+
turnOn: '开启 {name}',
|
|
74
|
+
turnOff: '关闭 {name}',
|
|
75
|
+
skillOff: '已关闭。重新开启前,智能体不会用到它。',
|
|
76
|
+
mine: '我的',
|
|
77
|
+
project: '本项目',
|
|
78
|
+
addSkill: '添加 skill',
|
|
79
|
+
cat: { launch: '产品发布', explainer: '科普讲解', slides: '幻灯片转视频', captions: '字幕与花字', ads: '广告', commerce: '电商卖点', music: '音乐' },
|
|
80
|
+
},
|
|
81
|
+
/* the app's update, ready to install (Studio's top bar, in an app that has updates: lib/host.ts `update`) */
|
|
82
|
+
update: {
|
|
83
|
+
restart: '重启以更新',
|
|
84
|
+
ready: 'OpenFilm {version} 已准备好。现在重启即可更新;或者退出时自动安装,下次打开就是新版本。',
|
|
85
|
+
agentBusy: '智能体还在工作,等它完成后再重启。',
|
|
86
|
+
exporting: '正在导出,导出完成后再重启。',
|
|
87
|
+
installFailed: 'OpenFilm {version} 暂时无法安装。退出 OpenFilm 后重新打开即可安装。',
|
|
88
|
+
installing: '正在重启…',
|
|
89
|
+
webUpdate: '更新',
|
|
90
|
+
webAvailable: 'OpenFilm {version} 已发布。更新后 Studio 会在新版本上重启,已打开的页面会自动回来。',
|
|
91
|
+
webUpdating: '正在更新…',
|
|
92
|
+
webExporting: '正在导出,导出完成后再更新。',
|
|
93
|
+
webMaking: '正在生成素材,完成后再更新。',
|
|
94
|
+
webFailed: '更新失败:{error}',
|
|
95
|
+
},
|
|
96
|
+
whatsNew: {
|
|
97
|
+
eyebrow: '已更新',
|
|
98
|
+
title: 'OpenFilm {version} 有哪些新内容',
|
|
99
|
+
close: '关闭',
|
|
100
|
+
changelog: '完整更新日志',
|
|
101
|
+
ok: '知道了',
|
|
102
|
+
kind: {
|
|
103
|
+
new: '新功能',
|
|
104
|
+
improved: '改进',
|
|
105
|
+
fixed: '修复',
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
host: {
|
|
109
|
+
refer: '在对话中引用',
|
|
110
|
+
regionHint: '拖出一个框,在对话中引用',
|
|
111
|
+
rangeDrag: '拖进对话 · I 和 O 设置起止 · X 清除',
|
|
112
|
+
},
|
|
113
|
+
selectionBar: {
|
|
114
|
+
toolbar: '选中内容的工具',
|
|
115
|
+
addToChat: '添加到对话',
|
|
116
|
+
oneClip: '1 个片段',
|
|
117
|
+
clips: '{n} 个片段',
|
|
118
|
+
layers: '{n} 个图层',
|
|
119
|
+
plusRange: '{what} + 区间',
|
|
120
|
+
range: '区间',
|
|
121
|
+
mute: '静音',
|
|
122
|
+
unmute: '取消静音',
|
|
123
|
+
noSound: '没有可静音的声音',
|
|
124
|
+
more: '更多',
|
|
125
|
+
crop: '裁剪',
|
|
126
|
+
mask: '蒙版',
|
|
127
|
+
playRange: '播放区间',
|
|
128
|
+
clearRange: '清除区间',
|
|
129
|
+
splitSelected: '在播放头处分割选中的片段',
|
|
130
|
+
splitNone: '播放头不在选中的片段上',
|
|
131
|
+
},
|
|
132
|
+
desktop: {
|
|
133
|
+
title: 'OpenFilm 桌面版',
|
|
134
|
+
tagline: '智能体与影片,并排在一起。',
|
|
135
|
+
intro: '把 Studio 做成桌面应用,智能体的对话就在影片旁边,并和编辑器的每个部分打通。提出要求,看着改动落地,也可以随手亲自修改。',
|
|
136
|
+
worksWith: '支持',
|
|
137
|
+
orOwnKey: '或你自己的 API key',
|
|
138
|
+
features: {
|
|
139
|
+
sync: { title: '与编辑器双向联动', body: '把片段、图层、画面区域或素材文件放进消息;智能体提到的任何片段,点一下就跳到 Studio 里对应的位置。' },
|
|
140
|
+
live: { title: '改动实时呈现', body: '每处修改写下时就出现在画面和时间线上。可以亲手微调,也可以在版本历史里退回。' },
|
|
141
|
+
drop: { title: '素材直接拖进来', body: '把视频、图片或声音拖进对话,直接进入影片的文件夹,马上能用。' },
|
|
142
|
+
agents: { title: '主流智能体随心切换', body: 'Claude Code、Codex、Copilot、Cursor 等,自动发现你电脑上已有的。在对话里随时切换,也可以用自己的 API key。' },
|
|
143
|
+
speed: { title: '预览和导出更快更稳', body: '内置固定版本的渲染引擎,播放更流畅;电脑有硬件视频编码器时,导出会用它加速。' },
|
|
144
|
+
setup: { title: '无需终端,无需管理依赖', body: '不用装 Node、npm,也不用管包的版本:ffmpeg 和渲染器都已内置,并和 Studio 一起测试过。' },
|
|
145
|
+
updates: { title: '始终保持最新', body: '更新在后台下载,重启时安装,绝不会打断正在进行的导出或回复。' },
|
|
146
|
+
history: { title: '每部影片都留着对话', body: '打开就是上次的影片,对话都在,你和智能体接着上次继续。' },
|
|
147
|
+
},
|
|
148
|
+
picture: {
|
|
149
|
+
clip: '标题 · 0:02–0:06',
|
|
150
|
+
ask: '把这个标题放大一些,再放慢一点。',
|
|
151
|
+
reply: '好了:标题放大了 20%,并在一秒内缓缓进入。',
|
|
152
|
+
},
|
|
153
|
+
status: '免费 · 无需注册账号',
|
|
154
|
+
downloadFor: '下载 {system} 版',
|
|
155
|
+
otherSystems: '支持 macOS 和 Windows',
|
|
156
|
+
getIt: '获取 macOS 或 Windows 版',
|
|
157
|
+
close: '关闭',
|
|
158
|
+
},
|
|
159
|
+
connection: {
|
|
160
|
+
lost: '与 Studio 的连接中断了,正在重新连接…',
|
|
161
|
+
gone: 'Studio 已停止运行。在终端运行下面这条命令,或让智能体重新打开 OpenFilm,这个页面会自动重新连上。',
|
|
162
|
+
goneApp: 'Studio 已停止运行。退出并重新打开 OpenFilm 应用即可恢复。',
|
|
163
|
+
copied: '已复制',
|
|
164
|
+
lockedTitle: '这个浏览器还没有登录 Studio',
|
|
165
|
+
lockedBody: 'Studio 正在运行,但只接受用带 key 的地址打开过一次的浏览器。请打开 `openfilm open`(开发时是 `pnpm dev`)打印的完整地址,也就是带 ?key= 的那个;打开一次之后,这个浏览器就能直接用 Studio 的地址了。',
|
|
166
|
+
lockedHow: '想重新拿到地址,运行',
|
|
167
|
+
},
|
|
168
|
+
projects: {
|
|
169
|
+
newProject: '新建项目',
|
|
170
|
+
localProjectFailed: '无法创建项目,请重试。',
|
|
171
|
+
loadFailed: '无法加载你的项目。',
|
|
172
|
+
loadRetry: '重试',
|
|
173
|
+
revealFolder: `在${FILES}中显示`,
|
|
174
|
+
folderAll: '全部',
|
|
175
|
+
folderUp: '返回上一级',
|
|
176
|
+
untitledFolder: '未命名文件夹',
|
|
177
|
+
folderCount: '{n} 个项目',
|
|
178
|
+
folderCountOne: '1 个项目',
|
|
179
|
+
newFolder: '新建文件夹',
|
|
180
|
+
openFolder: '打开文件夹…',
|
|
181
|
+
openFolderFailed: '无法打开这个文件夹:{error}',
|
|
182
|
+
dropFolder: '拖入一个文件夹,即可作为项目打开。',
|
|
183
|
+
folderNamePlaceholder: '文件夹名称',
|
|
184
|
+
renameFolder: '重命名文件夹',
|
|
185
|
+
deleteFolder: '删除文件夹',
|
|
186
|
+
deleteFolderHint: `删除此文件夹,并将其中的 {n} 个项目移到${TRASH},你可以从那里找回。`,
|
|
187
|
+
deleteFolderHintOne: `删除此文件夹,并将其中的项目移到${TRASH},你可以从那里找回。`,
|
|
188
|
+
deleteFolderHintEmpty: '删除此文件夹。其中没有项目。',
|
|
189
|
+
renameTaken: '“{name}”已被占用:已有同名文件夹。请换一个名称。',
|
|
190
|
+
moveToTitle: '移动「{name}」',
|
|
191
|
+
moveHint: '选择要放到哪里。',
|
|
192
|
+
move: '移动',
|
|
193
|
+
moveTo: '移到…',
|
|
194
|
+
hereNow: '当前位置',
|
|
195
|
+
newFolderName: '新文件夹名称',
|
|
196
|
+
moveToFolder: '移到文件夹',
|
|
197
|
+
changeCover: '更换封面…',
|
|
198
|
+
restoreCover: '恢复自动封面',
|
|
199
|
+
coverFromFrame: '将当前画面设为封面',
|
|
200
|
+
setAsCover: '设为项目封面',
|
|
201
|
+
coverSet: '已设为封面',
|
|
202
|
+
coverFailed: '无法用它做封面。',
|
|
203
|
+
creating: '正在创建项目',
|
|
204
|
+
opening: '正在打开项目',
|
|
205
|
+
missing: '找不到文件夹',
|
|
206
|
+
missingOpen: '此项目的文件夹已不在原处:它被移动、重命名或删除了。你可以将它从列表中移除。',
|
|
207
|
+
agentRunning: 'Agent 运行中',
|
|
208
|
+
agentRunningRename: 'Agent 正在这个项目里运行,请先停止它,再重命名项目。',
|
|
209
|
+
exportRunningRename: '这个项目有正在进行或排队中的导出。请等待导出完成或取消后,再重命名项目。',
|
|
210
|
+
agentRunningDelete: 'Agent 正在这个项目里运行,请先停止它,再删除项目。',
|
|
211
|
+
agentRunningDeleteMany: '其中 {n} 个项目里有 Agent 正在运行,请先停止,再删除。',
|
|
212
|
+
removeFromList: '从列表中移除',
|
|
213
|
+
removeTitle: '从列表中移除?',
|
|
214
|
+
removeDesc: '它的文件夹已经不在了,项目的一切(版本历史、对话)都存在那个文件夹里,所以没有残留文件需要删除。这里只是把它从列表中移除。',
|
|
215
|
+
removeAlso: '文件夹已不存在的项目只会从列表中移除。',
|
|
216
|
+
getFromGitHub: '从 GitHub 获取…',
|
|
217
|
+
importFrom: '导入自',
|
|
218
|
+
locate: '定位…',
|
|
219
|
+
locateTitle: '定位“{name}”',
|
|
220
|
+
locateFailed: '无法使用这个文件夹:{error}',
|
|
221
|
+
locateNoFilm: '这个文件夹里没有 film.html。请选择项目现在所在的文件夹。',
|
|
222
|
+
startFilmTitle: '这个文件夹里没有影片',
|
|
223
|
+
startFilmDesc: '“{name}”中没有 film.html。要在这里新建一部影片吗?',
|
|
224
|
+
startFilm: '新建影片',
|
|
225
|
+
browse: {
|
|
226
|
+
title: '打开文件夹',
|
|
227
|
+
pathLabel: '文件夹路径',
|
|
228
|
+
go: '前往',
|
|
229
|
+
up: '上一级',
|
|
230
|
+
places: '位置',
|
|
231
|
+
recent: '最近',
|
|
232
|
+
place: {
|
|
233
|
+
home: '个人文件夹',
|
|
234
|
+
library: '项目',
|
|
235
|
+
desktop: '桌面',
|
|
236
|
+
documents: '文稿',
|
|
237
|
+
downloads: '下载',
|
|
238
|
+
movies: '影片',
|
|
239
|
+
videos: '视频',
|
|
240
|
+
},
|
|
241
|
+
empty: '这里没有文件夹',
|
|
242
|
+
more: '只显示前 1,000 个文件夹。',
|
|
243
|
+
film: '影片',
|
|
244
|
+
hasFilm: '这个文件夹里有影片。',
|
|
245
|
+
noFilm: '这里没有 film.html:打开这个文件夹会在其中新建一部影片。',
|
|
246
|
+
locateNoFilm: '这里没有 film.html。请选择项目现在所在的文件夹。',
|
|
247
|
+
open: '打开',
|
|
248
|
+
startHere: '在这里新建影片',
|
|
249
|
+
useFolder: '使用这个文件夹',
|
|
250
|
+
error: {
|
|
251
|
+
outside: '这里只显示个人文件夹中的文件夹。“打开”仍会打开你输入的路径。',
|
|
252
|
+
denied: '你没有权限打开这个文件夹。',
|
|
253
|
+
notFound: '这个文件夹不存在。',
|
|
254
|
+
file: '这是一个文件,不是文件夹。',
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
fetch: {
|
|
258
|
+
title: '从 GitHub 获取',
|
|
259
|
+
urlLabel: '仓库或仓库中文件夹的地址',
|
|
260
|
+
placeholder: 'https://github.com/owner/repo/tree/main/folder',
|
|
261
|
+
hint: 'Studio 会把它复制到你的项目库,不带 git 历史(.git),这份副本就是你自己的项目。',
|
|
262
|
+
get: '获取',
|
|
263
|
+
cancel: '取消',
|
|
264
|
+
retry: '重试',
|
|
265
|
+
left: '还剩约 {time}',
|
|
266
|
+
close: '关闭',
|
|
267
|
+
phase: {
|
|
268
|
+
lookup: '正在获取文件列表…',
|
|
269
|
+
download: '正在下载…',
|
|
270
|
+
checkout: '正在写入文件…',
|
|
271
|
+
copy: '正在打开…',
|
|
272
|
+
},
|
|
273
|
+
error: {
|
|
274
|
+
url: '这不是仓库或仓库中文件夹的地址。',
|
|
275
|
+
host: 'Studio 只能通过 https 从 github.com 和 gitlab.com 获取影片。',
|
|
276
|
+
access: '找不到,或者是私有仓库。请检查地址。私有仓库需要这台电脑上的 git 用有权限的账号登录。',
|
|
277
|
+
network: '无法连接 GitHub。请检查网络连接。',
|
|
278
|
+
ref: '仓库中没有这个分支或标签。',
|
|
279
|
+
noFolder: '仓库中没有这个文件夹。',
|
|
280
|
+
noFilm: '这个文件夹里没有 film.html,它不是 OpenFilm 影片。',
|
|
281
|
+
tooBig: '内容太大,已停止获取。',
|
|
282
|
+
timeout: '一段时间内没有收到任何数据,已停止。请检查网络连接后重试。',
|
|
283
|
+
git: '这个仓库是私有的或不在 GitHub 上,需要 git。请安装 git 后重试。',
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
examples: {
|
|
287
|
+
title: '示例',
|
|
288
|
+
show: '显示示例',
|
|
289
|
+
hide: '隐藏示例',
|
|
290
|
+
open: '打开',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
library: {
|
|
294
|
+
noMatches: '没有符合搜索条件的项目',
|
|
295
|
+
searchPlaceholder: '搜索',
|
|
296
|
+
sortLabel: '排序',
|
|
297
|
+
sortRecent: '最近打开',
|
|
298
|
+
sortNewest: '最新',
|
|
299
|
+
sortOldest: '最早',
|
|
300
|
+
sortDuration: '时长最长',
|
|
301
|
+
sortTitle: '名称(A–Z)',
|
|
302
|
+
viewLabel: '视图',
|
|
303
|
+
viewCards: '卡片视图',
|
|
304
|
+
viewList: '列表视图',
|
|
305
|
+
select: '选择',
|
|
306
|
+
selectedCount: '已选 {n} 项',
|
|
307
|
+
selectAll: '全选',
|
|
308
|
+
deselectAll: '取消全选',
|
|
309
|
+
deleteSelected: '删除',
|
|
310
|
+
cancelSelect: '取消',
|
|
311
|
+
toggleSelect: '选中此项',
|
|
312
|
+
},
|
|
313
|
+
projectMenu: {
|
|
314
|
+
more: '更多',
|
|
315
|
+
open: '打开',
|
|
316
|
+
rename: '重命名',
|
|
317
|
+
export: '导出',
|
|
318
|
+
history: '版本历史',
|
|
319
|
+
delete: '删除',
|
|
320
|
+
},
|
|
321
|
+
exportDialog: {
|
|
322
|
+
close: '关闭',
|
|
323
|
+
},
|
|
324
|
+
exportCenter: {
|
|
325
|
+
fpsProject: "项目",
|
|
326
|
+
title: '导出',
|
|
327
|
+
dest: {
|
|
328
|
+
social: '社交平台',
|
|
329
|
+
video: '视频文件',
|
|
330
|
+
gif: 'GIF',
|
|
331
|
+
audio: '音频',
|
|
332
|
+
subtitles: '字幕',
|
|
333
|
+
images: '图片',
|
|
334
|
+
slides: '幻灯片与 PDF',
|
|
335
|
+
project: '项目',
|
|
336
|
+
alpha: '透明素材',
|
|
337
|
+
nle: '剪辑工程',
|
|
338
|
+
},
|
|
339
|
+
destHint: {
|
|
340
|
+
social: '覆盖各平台的预设',
|
|
341
|
+
video: '编码、尺寸与画质',
|
|
342
|
+
gif: '用于文档、邮件、README',
|
|
343
|
+
audio: '混音或分轨',
|
|
344
|
+
subtitles: 'SRT、WebVTT、文字稿',
|
|
345
|
+
images: '封面与镜头静帧',
|
|
346
|
+
slides: '每个镜头一页',
|
|
347
|
+
project: '整个项目,方便传给别人',
|
|
348
|
+
alpha: '带 Alpha 通道,用于 AE、Final Cut、网页',
|
|
349
|
+
nle: '{app}、Final Cut Pro、Premiere Pro、DaVinci Resolve',
|
|
350
|
+
},
|
|
351
|
+
destDesc: {
|
|
352
|
+
social: '选择一个或多个平台。每个平台都会得到合适的画幅、尺寸和帧率,一次全部导出。',
|
|
353
|
+
video: '单个视频,可完全控制编码、画幅、分辨率和画质。',
|
|
354
|
+
gif: '循环播放的动图。尽量短小——GIF 的体积增长很快。',
|
|
355
|
+
audio: '混合好的音轨,或将人声、音乐和音效分别导出为独立文件,供你自行混音。',
|
|
356
|
+
subtitles: '用于 YouTube、播放器和译者的字幕文件,或纯文本文字稿。',
|
|
357
|
+
images: '封面图,或每个镜头一张静帧,用作缩略图和社交平台配图。',
|
|
358
|
+
slides: '每个镜头一页的演示文稿或 PDF——可直接演示或打印。',
|
|
359
|
+
project: '项目本身——成片、页面、素材,以及你选择的部分——导出为 zip 或文件夹,可以直接用 OpenFilm 打开。',
|
|
360
|
+
alpha: '透明背景的视频——整部影片或单个元素——可叠加到你自己的剪辑、应用和网站中。',
|
|
361
|
+
nle: '时间轴本身,可以接着剪:{app}草稿,或剪辑软件可导入的 XML。每个页面导出为带 Alpha 通道的片段,你的视频素材和声音各占独立的轨道。',
|
|
362
|
+
},
|
|
363
|
+
group: {
|
|
364
|
+
landscape: '横屏 16:9',
|
|
365
|
+
vertical: '竖屏 9:16',
|
|
366
|
+
feed: '信息流',
|
|
367
|
+
},
|
|
368
|
+
quality: '画质',
|
|
369
|
+
qStandard: '标准',
|
|
370
|
+
qHigh: '高',
|
|
371
|
+
qMaster: '母版',
|
|
372
|
+
burnSubtitles: '烧录字幕',
|
|
373
|
+
subsAuto: '按平台',
|
|
374
|
+
subsOn: '全部',
|
|
375
|
+
subsOff: '无',
|
|
376
|
+
socialHint: '影片画幅与平台不符时,会加黑边适配,绝不裁剪。竖屏信息流默认烧录字幕,因为多数人是静音观看的。',
|
|
377
|
+
tooLong: '超出 {max} 的时长上限',
|
|
378
|
+
codec: '编码',
|
|
379
|
+
codecHint: {
|
|
380
|
+
h264: '处处可播放,最稳妥的默认选项。',
|
|
381
|
+
hevc: '同等画质,体积约小 40%。适用于较新的设备。',
|
|
382
|
+
vp9: '带透明通道的 WebM,用于网页。',
|
|
383
|
+
prores422hq: '剪辑母版,用于 Premiere、Final Cut、Resolve。',
|
|
384
|
+
prores4444: '带透明通道,用于合成和 After Effects。',
|
|
385
|
+
png: '每帧一张带 Alpha 通道的 PNG,用于 3D 和游戏引擎。',
|
|
386
|
+
hevc_alpha: 'Apple 应用和 Safari 可原生播放的透明视频。',
|
|
387
|
+
},
|
|
388
|
+
notOnThisComputer: '这台电脑上的 ffmpeg 无法生成此格式',
|
|
389
|
+
frame: '画幅',
|
|
390
|
+
frameNative: '原始',
|
|
391
|
+
fillContain: '适应并加黑边',
|
|
392
|
+
fillCover: '填充并裁剪',
|
|
393
|
+
resolution: '分辨率',
|
|
394
|
+
fps: '帧率',
|
|
395
|
+
fpsSource: '源',
|
|
396
|
+
audio: '声音',
|
|
397
|
+
includeAudio: '包含声音',
|
|
398
|
+
subtitles: '字幕',
|
|
399
|
+
burnIn: '将字幕烧录到画面中',
|
|
400
|
+
noSidecar: '不导出文件',
|
|
401
|
+
gifWidth: '尺寸',
|
|
402
|
+
gifHint: '提示:选取几秒钟的范围即可。一段 10 秒、640px 的 GIF 通常只有几 MB。',
|
|
403
|
+
format: '格式',
|
|
404
|
+
audioHint: {
|
|
405
|
+
wav: '无损,适合剪辑',
|
|
406
|
+
m4a: '体积小,音质高',
|
|
407
|
+
mp3: '处处可播放',
|
|
408
|
+
},
|
|
409
|
+
contents: '内容',
|
|
410
|
+
audioMix: '完整混音',
|
|
411
|
+
audioStems: '分轨',
|
|
412
|
+
stem: {
|
|
413
|
+
voice: '人声',
|
|
414
|
+
music: '音乐',
|
|
415
|
+
sfx: '音效',
|
|
416
|
+
footage: '视频原声',
|
|
417
|
+
},
|
|
418
|
+
stemsHint: '分轨导出时不做音频闪避,你可以在剪辑软件中重新调整各轨的平衡。',
|
|
419
|
+
transcript: '文字稿',
|
|
420
|
+
subsHint: {
|
|
421
|
+
srt: '几乎处处可用',
|
|
422
|
+
vtt: '网页播放器、YouTube、LMS',
|
|
423
|
+
txt: '纯文本,用于文档和翻译',
|
|
424
|
+
},
|
|
425
|
+
captionCount: '本片共有 {n} 行字幕。',
|
|
426
|
+
poster: '封面',
|
|
427
|
+
posterAt: '导出 {time} 处的画面',
|
|
428
|
+
posterMiddle: '导出中间的画面',
|
|
429
|
+
sceneStills: '镜头静帧',
|
|
430
|
+
sceneStillsDesc: '每个镜头取中间的一帧(共 {n} 个镜头),打包为 zip。',
|
|
431
|
+
stills: '镜头静帧',
|
|
432
|
+
sequence: '序列',
|
|
433
|
+
slidesHint: {
|
|
434
|
+
pptx: '可在 PowerPoint、Keynote 和 Google Slides 中打开',
|
|
435
|
+
pdf: '用于打印和分享',
|
|
436
|
+
},
|
|
437
|
+
range: '范围',
|
|
438
|
+
rangeAll: '整部影片',
|
|
439
|
+
rangePart: '部分',
|
|
440
|
+
rangeFrom: '起点',
|
|
441
|
+
rangeTo: '终点',
|
|
442
|
+
saveTo: '保存到',
|
|
443
|
+
fileName: '名称',
|
|
444
|
+
change: '更改…',
|
|
445
|
+
pickTitle: '选择导出的保存位置',
|
|
446
|
+
pickButton: '选择',
|
|
447
|
+
summary: '{n} 个文件 · {dur}',
|
|
448
|
+
approx: '约',
|
|
449
|
+
emptyFilm: '影片是空的——请先添加一个片段。',
|
|
450
|
+
missingMedia: '缺少 {n} 个媒体文件:{files}。请先在时间线上右键红色片段重新链接,再导出。',
|
|
451
|
+
pickPreset: '请至少选择一个平台。',
|
|
452
|
+
noCaptions: '此影片没有字幕。',
|
|
453
|
+
noAudio: '此影片没有声音。',
|
|
454
|
+
noFolder: '请先选择保存位置。',
|
|
455
|
+
engineDown: '本地引擎没有响应。请重启 OpenFilm 后再试。',
|
|
456
|
+
engineDesktop: '在这台电脑上使用硬件编码渲染,不会上传任何内容。',
|
|
457
|
+
queueing: '正在开始…',
|
|
458
|
+
export: '导出',
|
|
459
|
+
exportN: '导出 {n} 个文件',
|
|
460
|
+
alphaSource: '导出内容',
|
|
461
|
+
alphaWhole: '整部影片',
|
|
462
|
+
alphaWholeHint: '去除背景',
|
|
463
|
+
alphaNoBlocks: '此影片没有可单独导出的页面。',
|
|
464
|
+
alphaCodecHint: {
|
|
465
|
+
prores4444: 'After Effects、Premiere、Final Cut、DaVinci Resolve',
|
|
466
|
+
hevc_alpha: 'Final Cut、Keynote、Safari、iOS 应用——体积远小于 ProRes',
|
|
467
|
+
vp9: '网站:Chrome、Firefox 和 Edge 可将其叠加在页面上播放',
|
|
468
|
+
png: '游戏引擎、3D、Nuke——任何软件都能读取',
|
|
469
|
+
},
|
|
470
|
+
alphaScale: '尺寸',
|
|
471
|
+
alphaHint: '只保留影片绘制的内容,舞台背景会被去除。如果某个元素自己绘制了全屏背景,导出结果将是不透明的——请把该背景放到单独的片段上。',
|
|
472
|
+
nleFor: '用于',
|
|
473
|
+
nleDraftTitle: '{app}草稿',
|
|
474
|
+
nleSrt: '包含字幕(SRT)',
|
|
475
|
+
nleSubs: '包含字幕',
|
|
476
|
+
nleHintFinalCut: '会生成一个文件夹,内含 FCPXML 和一个媒体文件夹。在 Final Cut Pro 中:文件 › 导入 › XML。字幕是标题片段,另附一份 SRT。Final Cut Pro 只有 Mac 版:在 Windows 或 Linux 上导出的,把文件夹移到 Mac 上再重新链接。',
|
|
477
|
+
nleHintPremiere: '会生成一个文件夹,内含 XML 和一个媒体文件夹。在 Premiere Pro 中:文件 › 导入。请保持文件夹位置不变,移动后需要重新链接。',
|
|
478
|
+
nleHintResolve: '会生成一个文件夹,内含 XML 和一个媒体文件夹。在 DaVinci Resolve 中:文件 › 导入 › 时间线。请保持文件夹位置不变,移动后需要重新链接。',
|
|
479
|
+
nleHintDraft: '直接生成到{app}的草稿文件夹,打开{app}首页就能看到({app}开着的话,重启一下)。页面是带 Alpha 通道的片段,字幕是一条文字轨道。',
|
|
480
|
+
nleHintDraftNone: '这台电脑上没有找到{app}:草稿会生成在导出文件夹里,把它移到{app}的草稿文件夹(设置 › 草稿位置)即可。',
|
|
481
|
+
nleAudio: '时间轴上的声音',
|
|
482
|
+
nleAudioClips: '独立片段',
|
|
483
|
+
nleAudioStems: '混合分轨',
|
|
484
|
+
nleAlpha: '页面编码',
|
|
485
|
+
nleAlphaAuto: '自动',
|
|
486
|
+
nleAlphaHint: {
|
|
487
|
+
auto: '逐帧检查每个页面:不透明的用 H.264,体积小、播放流畅;有任何透明的用无损 PNG',
|
|
488
|
+
png: '无损,与画面逐像素一致。体积适中,Mac 和 Windows 都能用',
|
|
489
|
+
prores: '剪辑母版:不透明的页面用 ProRes 422 HQ,有透明的用 4444。体积很大',
|
|
490
|
+
prores4444: '剪辑软件通用的母版格式。体积很大:1080p 每分钟约 2.8 GB',
|
|
491
|
+
},
|
|
492
|
+
projectZip: 'Zip',
|
|
493
|
+
projectZipHint: '一个文件,方便发送或上传。',
|
|
494
|
+
projectFolder: '文件夹',
|
|
495
|
+
projectFolderHint: '项目文件夹的副本,可以直接打开。',
|
|
496
|
+
projectPart: {
|
|
497
|
+
work: '作品',
|
|
498
|
+
history: '版本历史',
|
|
499
|
+
chat: '对话',
|
|
500
|
+
logs: '调试日志',
|
|
501
|
+
},
|
|
502
|
+
projectPartHint: {
|
|
503
|
+
work: '成片、页面和代码、素材、字幕样式。',
|
|
504
|
+
history: '所有提交和分支,接手的人可以回到任何版本。',
|
|
505
|
+
chat: '这个项目的聊天记录和 agent 的会话。属于私人内容,默认不导出。',
|
|
506
|
+
logs: '每次发给模型的完整请求。属于私人内容,默认不导出。',
|
|
507
|
+
},
|
|
508
|
+
projectPartNone: '这个项目还没有。',
|
|
509
|
+
projectHint: '缓存不会导出:项目打开时 OpenFilm 会重新生成。',
|
|
510
|
+
},
|
|
511
|
+
exportTray: {
|
|
512
|
+
running: '正在导出 {n} 项…',
|
|
513
|
+
finished: '导出完成',
|
|
514
|
+
failedOne: '导出失败',
|
|
515
|
+
studioStopped: 'Studio 在导出过程中停止了,这个导出没有完成,请重新导出。',
|
|
516
|
+
failedAll: '导出全部失败',
|
|
517
|
+
cancelledOne: '导出已取消',
|
|
518
|
+
cancelledAll: '导出已全部取消',
|
|
519
|
+
countDone: '{n} 个已完成',
|
|
520
|
+
countCancelled: '{n} 个已取消',
|
|
521
|
+
countFailed: '{n} 个失败',
|
|
522
|
+
took: '用时 {time}',
|
|
523
|
+
fileGone: '该文件已不在导出时的位置:它被移动或删除了。',
|
|
524
|
+
expand: '展开',
|
|
525
|
+
collapse: '收起',
|
|
526
|
+
close: '关闭',
|
|
527
|
+
cancel: '取消',
|
|
528
|
+
open: '打开',
|
|
529
|
+
reveal: `在${FILES}中显示`,
|
|
530
|
+
queued: '等待中…',
|
|
531
|
+
phase: {
|
|
532
|
+
preparing: '准备中',
|
|
533
|
+
audio: '混音中',
|
|
534
|
+
rendering: '渲染中',
|
|
535
|
+
encoding: '编码中',
|
|
536
|
+
finishing: '收尾中',
|
|
537
|
+
copying: '复制中',
|
|
538
|
+
},
|
|
539
|
+
eta: '剩余',
|
|
540
|
+
files: '{n} 个文件',
|
|
541
|
+
cancelled: '已取消',
|
|
542
|
+
cancelling: '正在取消…',
|
|
543
|
+
failed: '导出失败',
|
|
544
|
+
draftsRefused: "草稿文件夹拒绝写入(常见于安全软件拦截),草稿已放到导出文件夹:把它移到 {folder} 即可。",
|
|
545
|
+
diskFull: '磁盘空间不足。清理出一些空间后,再导出一次。',
|
|
546
|
+
notTransparent: '没有透明像素:此元素绘制了自己的背景。',
|
|
547
|
+
},
|
|
548
|
+
player: {
|
|
549
|
+
playTitle: '播放(space / k)',
|
|
550
|
+
pauseTitle: '暂停(space / k)',
|
|
551
|
+
captionsTitle: '字幕(c)',
|
|
552
|
+
exitFullscreenTitle: '退出全屏(f)',
|
|
553
|
+
muteTitle: '静音(m)',
|
|
554
|
+
unmuteTitle: '取消静音(m)',
|
|
555
|
+
volume: '音量',
|
|
556
|
+
settings: '设置',
|
|
557
|
+
speed: '播放速度',
|
|
558
|
+
speedNormal: '正常',
|
|
559
|
+
seek: '播放进度',
|
|
560
|
+
},
|
|
561
|
+
project: {
|
|
562
|
+
projects: '项目',
|
|
563
|
+
previewStageMount: '正在绘制第一帧',
|
|
564
|
+
dropOnPicture: '松开即可放入影片中播放头所在的位置',
|
|
565
|
+
editsUndone: 'Studio 之外的一次修改(智能体保存了 film.html)撤销了你的 {n} 处编辑。',
|
|
566
|
+
editsUndoneShort: '已撤销的编辑:{n}',
|
|
567
|
+
editsRestore: '恢复它们',
|
|
568
|
+
editsLeaveOut: '不恢复',
|
|
569
|
+
previewFailed: '无法绘制预览。',
|
|
570
|
+
previewBrowser: '这个页面用到了当前浏览器不支持的功能。影片是用 Chromium 绘制和导出的,请在 Chrome 或 Edge 里打开 Studio。',
|
|
571
|
+
previewMissing: '媒体丢失:{file} · 右键片段重新链接',
|
|
572
|
+
filmEmptyHint: '把媒体拖到时间轴上开始制作影片,或让智能体帮你做一部。',
|
|
573
|
+
filmBroken: '目前无法读取 film.html,因此 Studio 显示的是影片上一次的样子;修复之前,这里的编辑无法保存:',
|
|
574
|
+
filmNotReady: '视频尚未就绪',
|
|
575
|
+
filmCannotExport: '影片无法绘制,因此无法导出:',
|
|
576
|
+
untitled: '未命名',
|
|
577
|
+
appMenu: '设置',
|
|
578
|
+
close: '关闭',
|
|
579
|
+
deleteFailed: '删除失败,请重试。',
|
|
580
|
+
renameFailed: '重命名失败,请重试。',
|
|
581
|
+
},
|
|
582
|
+
history: {
|
|
583
|
+
stepFade: '淡入淡出',
|
|
584
|
+
stepTransition: '添加转场',
|
|
585
|
+
stepTransitionResize: '转场时长',
|
|
586
|
+
stepTransitionRemove: '移除转场',
|
|
587
|
+
stepDuplicate: "复制一份",
|
|
588
|
+
stepDuplicated: "复制了 {clip}",
|
|
589
|
+
undo: '撤销',
|
|
590
|
+
redo: '重做',
|
|
591
|
+
sessionEmpty: '还没有手动编辑',
|
|
592
|
+
opsTitle: '编辑历史',
|
|
593
|
+
opsHint: '不计入版本 · 退出时清空',
|
|
594
|
+
stepMove: '移动 / 修剪',
|
|
595
|
+
stepTransform: '变换',
|
|
596
|
+
stepStyle: '样式',
|
|
597
|
+
stepVolume: '音量',
|
|
598
|
+
stepTrackOrder: '轨道顺序',
|
|
599
|
+
stepTrackFlag: '轨道开关',
|
|
600
|
+
stepLocked: '锁定 {track}',
|
|
601
|
+
stepUnlocked: '解锁 {track}',
|
|
602
|
+
stepHid: '隐藏 {track}',
|
|
603
|
+
stepShowed: '显示 {track}',
|
|
604
|
+
stepMuted: '静音 {track}',
|
|
605
|
+
stepUnmuted: '取消静音 {track}',
|
|
606
|
+
stepRemove: '删除',
|
|
607
|
+
stepRemoved: '删除 {clip}',
|
|
608
|
+
stepMoved: '移动 {clip}',
|
|
609
|
+
stepTrimmed: '修剪 {clip}',
|
|
610
|
+
stepSplit: '分割 {clip}',
|
|
611
|
+
stepDetachAudio: '分离 {clip} 的音频',
|
|
612
|
+
stepRippleTrimmed: '波纹裁剪了 {clip}',
|
|
613
|
+
stepGapClosed: '合拢了间隙',
|
|
614
|
+
stepGapsClosed: '批量闭合了空隙',
|
|
615
|
+
stepMainClosed: '合拢了主轨',
|
|
616
|
+
stepLinked: '关联了 {clip}',
|
|
617
|
+
stepUnlinked: '取消关联 {clip}',
|
|
618
|
+
stepSpeed: '改了 {clip} 的速度',
|
|
619
|
+
stepPaste: '粘贴',
|
|
620
|
+
stepDrop: '添加素材',
|
|
621
|
+
stepEdit: '编辑',
|
|
622
|
+
stepRestoreEdits: '重新应用我的编辑',
|
|
623
|
+
stepSubtitleTimed: '调整字幕时间',
|
|
624
|
+
stepSubtitleSplit: '拆分字幕',
|
|
625
|
+
stepSubtitleMerged: '合并字幕',
|
|
626
|
+
stepSubtitleRemoved: '删除字幕',
|
|
627
|
+
stepSubtitleText: '修改字幕',
|
|
628
|
+
stepSubtitleAdded: '添加字幕',
|
|
629
|
+
stepMarker: '修改了标记',
|
|
630
|
+
stepNormalized: "响度标准化到 {clip} LUFS",
|
|
631
|
+
stepFroze: "定格了 {clip} 的一帧",
|
|
632
|
+
stepReplaced: "替换了 {clip}",
|
|
633
|
+
justNow: '刚刚',
|
|
634
|
+
minutesAgo: '{n} 分钟前',
|
|
635
|
+
hoursAgo: '{n} 小时前',
|
|
636
|
+
daysAgo: '{n} 天前',
|
|
637
|
+
},
|
|
638
|
+
versions: {
|
|
639
|
+
title: '版本历史',
|
|
640
|
+
close: '关闭',
|
|
641
|
+
working: '处理中…',
|
|
642
|
+
branchOf: '分支:{branch}',
|
|
643
|
+
branches: '分支',
|
|
644
|
+
branchCount: '{n} 个分支',
|
|
645
|
+
branchCountOne: '1 个分支',
|
|
646
|
+
newBranch: '新建分支',
|
|
647
|
+
newBranchTitle: '新建分支',
|
|
648
|
+
newBranchBody: '从「{branch}」现在的位置开始。未提交的改动会一起带过去。',
|
|
649
|
+
newBranchBodyClean: '从「{branch}」现在的位置开始。',
|
|
650
|
+
newBranchFromTitle: '从「{name}」新建分支',
|
|
651
|
+
newBranchFromBody: '从这个版本开始;「{branch}」保持不变。',
|
|
652
|
+
branchName: '分支名称',
|
|
653
|
+
create: '创建',
|
|
654
|
+
switchTitle: '切换到「{name}」?',
|
|
655
|
+
switchBody: '「{branch}」上还有未提交的改动。',
|
|
656
|
+
leaveChanges: '留在 {branch}',
|
|
657
|
+
bringChanges: '带到 {name}',
|
|
658
|
+
cancel: '取消',
|
|
659
|
+
rename: '重命名',
|
|
660
|
+
renameTitle: '重命名「{name}」',
|
|
661
|
+
save: '保存',
|
|
662
|
+
delete: '删除',
|
|
663
|
+
deleteTitle: '删除分支「{name}」?',
|
|
664
|
+
deleteBody: '分支会被删掉。它的版本在其他分支上的,都还保留着。',
|
|
665
|
+
deleteForceTitle: '删除「{name}」和它的版本?',
|
|
666
|
+
deleteForceBody: '「{name}」上有 {n} 个版本不在其他分支上,删除后就再也找不回了。',
|
|
667
|
+
deleteForceBodyOne: '「{name}」上有 1 个版本不在其他分支上,删除后就再也找不回了。',
|
|
668
|
+
deleteForce: '仍然删除',
|
|
669
|
+
mergeInto: '合并到 {branch}',
|
|
670
|
+
mergeTitle: '把「{name}」合并到「{branch}」',
|
|
671
|
+
mergeBody: '「{name}」上做的改动会合并进「{branch}」。',
|
|
672
|
+
mergeMessage: '合并 {name}',
|
|
673
|
+
mergeConfirm: '合并',
|
|
674
|
+
mergeConflictTitle: '「{name}」和「{branch}」改了同一处',
|
|
675
|
+
mergeConflictBody: '两边不一样的地方,选择保留哪一边。其余的改动两边都会保留。',
|
|
676
|
+
keepOurs: '保留 {branch} 的',
|
|
677
|
+
keepTheirs: '用 {name} 的',
|
|
678
|
+
nothingToMerge: '「{branch}」已经包含「{name}」的全部内容。',
|
|
679
|
+
current: '当前',
|
|
680
|
+
parked: '有留在这里的改动',
|
|
681
|
+
parkedStuck: '留在这个分支上的改动和现在的内容冲突,所以暂时还收着。',
|
|
682
|
+
changesTitle: '未提交的改动',
|
|
683
|
+
noChanges: '所有改动都已提交',
|
|
684
|
+
firstCommitHint: '还没有任何提交。提交会把影片此刻的样子存成一个版本,之后随时可以回来。',
|
|
685
|
+
messagePlaceholder: '描述这个版本(必填)',
|
|
686
|
+
commit: '提交',
|
|
687
|
+
discard: '放弃改动',
|
|
688
|
+
discardTitle: '放弃所有未提交的改动?',
|
|
689
|
+
discardBody: `影片会回到最近一次提交。之后新加的文件会移到${TRASH}。`,
|
|
690
|
+
historyOf: '提交记录 · {branch}',
|
|
691
|
+
restore: '恢复到这个版本',
|
|
692
|
+
restoreTitle: '恢复到「{name}」?',
|
|
693
|
+
restoreBody: '影片会变回这个版本,作为未提交的改动出现:提交就保留下来,放弃就回到现在。',
|
|
694
|
+
restoreDirtyBody: `你还有未提交的改动。恢复会先放弃它们(之后新加的文件会移到${TRASH})。`,
|
|
695
|
+
restoreDiscard: '放弃并恢复',
|
|
696
|
+
restoreConfirm: '恢复',
|
|
697
|
+
restoredMessage: '回到「{name}」',
|
|
698
|
+
branchFrom: '从这里新建分支',
|
|
699
|
+
moreActions: '更多',
|
|
700
|
+
scenesAdded: '加了 {n} 个镜头',
|
|
701
|
+
scenesAddedOne: '加了 1 个镜头',
|
|
702
|
+
scenesEdited: '改了 {n} 个镜头',
|
|
703
|
+
scenesEditedOne: '改了 1 个镜头',
|
|
704
|
+
scenesRemoved: '删了 {n} 个镜头',
|
|
705
|
+
scenesRemovedOne: '删了 1 个镜头',
|
|
706
|
+
soundsAdded: '加了 {n} 段声音',
|
|
707
|
+
soundsAddedOne: '加了 1 段声音',
|
|
708
|
+
soundsEdited: '改了 {n} 段声音',
|
|
709
|
+
soundsEditedOne: '改了 1 段声音',
|
|
710
|
+
soundsRemoved: '删了 {n} 段声音',
|
|
711
|
+
soundsRemovedOne: '删了 1 段声音',
|
|
712
|
+
look: '画面细节有改动',
|
|
713
|
+
same: '影片没有变化',
|
|
714
|
+
errorDirty: '请先提交或放弃未提交的改动。',
|
|
715
|
+
errorNothing: '没有可以提交的改动。',
|
|
716
|
+
errorCarry: '你的改动和那个分支的内容冲突,改为把它们留在当前分支吧。',
|
|
717
|
+
errorExists: '已经有同名的分支了。',
|
|
718
|
+
errorName: '这个名称不能用作分支名。',
|
|
719
|
+
errorMessage: '请先描述这个版本。',
|
|
720
|
+
errorCurrent: '你现在就在这个分支上。',
|
|
721
|
+
errorUnavailable: '版本历史暂时不可用,请稍后再试。',
|
|
722
|
+
errorGeneric: '操作没有成功,请重试。',
|
|
723
|
+
progressScan: '正在读取影片的文件… {done}/{total}',
|
|
724
|
+
progressStore: '正在保存媒体… {done}/{total}',
|
|
725
|
+
progressWrite: '正在写入文件… {done}/{total}',
|
|
726
|
+
progressMigrate: '正在更新本项目的版本历史… {done}/{total}',
|
|
727
|
+
heldFiles: '已纳入历史:影片使用的 {n} 个文件',
|
|
728
|
+
heldFilesOne: '已纳入历史:影片使用的 1 个文件',
|
|
729
|
+
ignoredFiles: '未纳入历史:影片未使用的 {n} 个文件',
|
|
730
|
+
ignoredFilesOne: '未纳入历史:影片未使用的 1 个文件',
|
|
731
|
+
},
|
|
732
|
+
stageMenu: {
|
|
733
|
+
align: '对齐',
|
|
734
|
+
lock: '锁定',
|
|
735
|
+
unlock: '解锁',
|
|
736
|
+
lockedHint: '已锁定——解锁后才能移动或编辑',
|
|
737
|
+
hideAll: '隐藏',
|
|
738
|
+
showAll: '显示',
|
|
739
|
+
editText: '编辑文字',
|
|
740
|
+
replacePicture: '替换图片',
|
|
741
|
+
pictureOwn: '换回原图',
|
|
742
|
+
duplicate: '创建副本',
|
|
743
|
+
front: '置于顶层',
|
|
744
|
+
back: '置于底层',
|
|
745
|
+
arrangeHint: '此图层没有定位,无法调整层级',
|
|
746
|
+
arrangeAlone: '它没有和任何东西重叠,层级变化看不出来',
|
|
747
|
+
arrangeBlocked: '无法调整层级:它里面定位的元素会跟着移动',
|
|
748
|
+
arrangeFrontAlready: '已经在与它重叠的元素最前面',
|
|
749
|
+
arrangeBackAlready: '已经在与它重叠的元素最后面',
|
|
750
|
+
hide: '隐藏',
|
|
751
|
+
show: '显示',
|
|
752
|
+
reset: '重置调整',
|
|
753
|
+
resetNone: '还没有手动调整过',
|
|
754
|
+
selectParent: '选择父级',
|
|
755
|
+
selectClip: '选择整个片段',
|
|
756
|
+
copyText: '复制文字',
|
|
757
|
+
resetTransform: '重置变换',
|
|
758
|
+
},
|
|
759
|
+
stageCrop: {
|
|
760
|
+
bar: '裁剪',
|
|
761
|
+
free: '自由',
|
|
762
|
+
original: '原始比例',
|
|
763
|
+
cancel: '取消',
|
|
764
|
+
cancelHint: '保持原来的裁剪(Esc)',
|
|
765
|
+
done: '完成',
|
|
766
|
+
doneHint: '保留这次裁剪(Enter)',
|
|
767
|
+
},
|
|
768
|
+
stageMask: {
|
|
769
|
+
move: '移动蒙版',
|
|
770
|
+
resize: '调整蒙版大小',
|
|
771
|
+
turn: '旋转蒙版',
|
|
772
|
+
feather: '羽化:向外拖动',
|
|
773
|
+
},
|
|
774
|
+
assets: {
|
|
775
|
+
kindPage: '页面',
|
|
776
|
+
catImage: '图片',
|
|
777
|
+
catVideo: '视频',
|
|
778
|
+
catOther: '其他',
|
|
779
|
+
newFolder: '新建文件夹',
|
|
780
|
+
newFolderFailed: '无法创建文件夹',
|
|
781
|
+
rename: '重命名',
|
|
782
|
+
renameFailed: '无法重命名',
|
|
783
|
+
renameTaken: '该名称已被占用',
|
|
784
|
+
renameKind: '“{from}”不能重命名为“{to}”:扩展名表明了文件的类型,这样改会改变它。请保留同类的扩展名。',
|
|
785
|
+
delete: '删除',
|
|
786
|
+
deleteConfirmTitle: '删除此素材?',
|
|
787
|
+
deleteConfirm: `它会被移到${TRASH},你可以从那里找回。`,
|
|
788
|
+
deleteAlsoClip: `它会被移到${TRASH},你可以从那里找回。时间轴上使用它的片段也会被移除。`,
|
|
789
|
+
deleteAlsoClips: `它会被移到${TRASH},你可以从那里找回。时间轴上使用它的 {n} 个片段也会被移除。`,
|
|
790
|
+
deleteFailed: '无法删除',
|
|
791
|
+
extractAudio: '提取音频为新文件',
|
|
792
|
+
extractAudioFailed: '无法从该视频中提取声音',
|
|
793
|
+
download: '下载',
|
|
794
|
+
props: '属性',
|
|
795
|
+
propType: '类型',
|
|
796
|
+
propSize: '大小',
|
|
797
|
+
propDuration: '时长',
|
|
798
|
+
propDimensions: '尺寸',
|
|
799
|
+
propFps: '帧率',
|
|
800
|
+
propModified: '修改时间',
|
|
801
|
+
propLinked: "存放位置",
|
|
802
|
+
propProxy: "代理",
|
|
803
|
+
kindAudio: '音频',
|
|
804
|
+
uploadFailed: '导入失败,请重试',
|
|
805
|
+
unreadable: '“{name}”已导入,但无法作为图片、视频或声音读取({why})。请检查该文件,或导入另一份副本。',
|
|
806
|
+
imported: '已将 {n} 个文件导入到媒体',
|
|
807
|
+
},
|
|
808
|
+
saved: {
|
|
809
|
+
title: '收藏',
|
|
810
|
+
back: '回到项目素材',
|
|
811
|
+
add: '收藏',
|
|
812
|
+
addTogether: '把 {n} 个片段收藏为一组',
|
|
813
|
+
addEach: '逐个收藏',
|
|
814
|
+
added: '已收藏',
|
|
815
|
+
addedMany: '已收藏 {n} 项',
|
|
816
|
+
failed: '收藏失败:{error}',
|
|
817
|
+
emptyTitle: '收藏里还没有东西',
|
|
818
|
+
emptyBody: '收藏在所有项目里都能用。可以上传或拖入任何文件,也可以在时间轴的片段上右键选「收藏」。',
|
|
819
|
+
component: '组件',
|
|
820
|
+
kind_clip: '片段',
|
|
821
|
+
kind_group: '片段组',
|
|
822
|
+
kind_page: '页面',
|
|
823
|
+
},
|
|
824
|
+
media: {
|
|
825
|
+
insertSource: "在播放头处插入",
|
|
826
|
+
overwriteSource: "在播放头处覆盖",
|
|
827
|
+
results: '结果',
|
|
828
|
+
moveFailed: '无法移动到那里。',
|
|
829
|
+
moveAskTitle: '有些路径无法自动更新',
|
|
830
|
+
moveAskBody: '移动网页时,Studio 会改写它能读到的链接。下面这些是页面运行时才拼出来的,移动后仍会指向旧位置:移动后请检查,或让智能体修正。',
|
|
831
|
+
moveAskConfirm: '仍然移动',
|
|
832
|
+
viewGrid: '网格显示',
|
|
833
|
+
viewList: '列表显示',
|
|
834
|
+
moveTaken: '{folder} 中已有名为“{name}”的文件。请先重命名其中一个。',
|
|
835
|
+
emptyFolder: '此文件夹为空',
|
|
836
|
+
deleteFolderTitle: '删除文件夹“{name}”?',
|
|
837
|
+
cannotPreview: '此文件无法在这里预览。',
|
|
838
|
+
scrub: '位置',
|
|
839
|
+
search: '搜索媒体',
|
|
840
|
+
searchShort: "搜索",
|
|
841
|
+
clearSearch: '清除搜索',
|
|
842
|
+
sort: '排序',
|
|
843
|
+
import: '导入媒体',
|
|
844
|
+
upload: '上传',
|
|
845
|
+
filter: '显示',
|
|
846
|
+
filter_all: '全部',
|
|
847
|
+
filter_video: '视频',
|
|
848
|
+
filter_image: '图片',
|
|
849
|
+
filter_audio: '音频',
|
|
850
|
+
filter_page: '页面',
|
|
851
|
+
filter_other: "其他",
|
|
852
|
+
dismiss: '关闭',
|
|
853
|
+
emptyTitle: '还没有媒体',
|
|
854
|
+
emptyBody: "导入视频、图片、声音或任何其他文件,或直接拖到这里。智能体在此项目中保存的任何内容也会显示在这里。",
|
|
855
|
+
noMatch: '没有符合搜索条件的内容。',
|
|
856
|
+
copyPath: '复制路径',
|
|
857
|
+
dropHint: '松开即可导入到此项目',
|
|
858
|
+
sort_name: '名称',
|
|
859
|
+
sort_time: '添加时间',
|
|
860
|
+
sort_duration: '时长',
|
|
861
|
+
sort_type: '类型',
|
|
862
|
+
moveTo: "移动到",
|
|
863
|
+
moveHere: "已经在这里",
|
|
864
|
+
deleteMany: "删除 {n} 项",
|
|
865
|
+
deleteManyTitle: "删除这 {n} 项?",
|
|
866
|
+
deleteManyConfirm: `它们会被移到${TRASH},你可以从那里找回。`,
|
|
867
|
+
deleteManyAlsoClip: `它们会被移到${TRASH},你可以从那里找回。时间轴上使用其中一项的片段也会被移除。`,
|
|
868
|
+
deleteManyAlsoClips: `它们会被移到${TRASH},你可以从那里找回。时间轴上使用它们的 {n} 个片段也会被移除。`,
|
|
869
|
+
importFiles: "导入文件…",
|
|
870
|
+
importFilesNote: "复制一份到项目里",
|
|
871
|
+
linkFiles: "链接文件…",
|
|
872
|
+
linkFilesNote: "文件留在原处,比如 NAS 或其他硬盘",
|
|
873
|
+
linkFolder: "链接文件夹…",
|
|
874
|
+
pickImport: "选择要导入的文件",
|
|
875
|
+
pickLink: "选择要链接的文件",
|
|
876
|
+
pickLinkFolder: "选择要链接的文件夹",
|
|
877
|
+
pickRelink: "它现在在哪里?",
|
|
878
|
+
noDialog: "此系统没有 Studio 能打开的文件对话框,请直接把文件拖到这里。",
|
|
879
|
+
revealOriginal: "显示原文件",
|
|
880
|
+
relink: "重新链接…",
|
|
881
|
+
relinkFailed: "无法链接到那里",
|
|
882
|
+
collect: "复制到项目",
|
|
883
|
+
collectNote: "原文件保留在原处",
|
|
884
|
+
collectFailed: "无法复制到项目",
|
|
885
|
+
linkMissing: "找不到",
|
|
886
|
+
linkedFrom: "链接自 {path}",
|
|
887
|
+
proxy: "代理",
|
|
888
|
+
proxyMaking: "正在生成代理… {p}%",
|
|
889
|
+
proxyWaiting: "代理排队中",
|
|
890
|
+
proxyFailed: "无法生成代理,将直接播放原素材",
|
|
891
|
+
proxyReady: "已就绪:预览时播放代理",
|
|
892
|
+
},
|
|
893
|
+
assetsPane: {
|
|
894
|
+
show: '显示素材',
|
|
895
|
+
hide: '隐藏素材',
|
|
896
|
+
},
|
|
897
|
+
layers: {
|
|
898
|
+
movesGroup: '整组移动:{name}',
|
|
899
|
+
title: '图层',
|
|
900
|
+
showPane: '显示图层',
|
|
901
|
+
hidePane: '隐藏图层',
|
|
902
|
+
resize: '调整图层 / 预览宽度',
|
|
903
|
+
empty: '此刻画面上没有内容。把播放头移到一个片段上。',
|
|
904
|
+
expand: '展开',
|
|
905
|
+
collapse: '收起',
|
|
906
|
+
hide: '隐藏',
|
|
907
|
+
show: '显示',
|
|
908
|
+
lock: '锁定',
|
|
909
|
+
unlock: '解锁',
|
|
910
|
+
notNow: '此刻不在画面上',
|
|
911
|
+
restackFailed: '这个图层没能调整顺序。画面可能刚变过,再试一次。',
|
|
912
|
+
},
|
|
913
|
+
viewer: {
|
|
914
|
+
stats: '{fps} 帧/秒 · 丢 {late}',
|
|
915
|
+
statsRendered: '播放渲染片段',
|
|
916
|
+
loopRange: "循环播放范围",
|
|
917
|
+
loopFilm: "循环播放",
|
|
918
|
+
play: '播放',
|
|
919
|
+
pause: '暂停',
|
|
920
|
+
frameCustom: '自定义',
|
|
921
|
+
ratioOriginal: '原始',
|
|
922
|
+
ratioPhone: '5.8 寸',
|
|
923
|
+
frameCustomW: '宽',
|
|
924
|
+
frameCustomH: '高',
|
|
925
|
+
frameCustomApply: '使用这个比例',
|
|
926
|
+
frameCustomRange: '范围 1:4 到 4:1',
|
|
927
|
+
fullscreen: '全屏',
|
|
928
|
+
playback: '播放设置',
|
|
929
|
+
speed: '播放速度',
|
|
930
|
+
},
|
|
931
|
+
inspector: {
|
|
932
|
+
fades: '淡入淡出',
|
|
933
|
+
fadeIn: '淡入',
|
|
934
|
+
fadeOut: '淡出',
|
|
935
|
+
transition: '转场',
|
|
936
|
+
transitionLength: '时长',
|
|
937
|
+
transitionRemove: '移除转场',
|
|
938
|
+
trackLocked: "在已锁定的轨道上:先在时间线上解锁轨道再修改。",
|
|
939
|
+
frameRate: "帧率",
|
|
940
|
+
frameRateFootage: "取自素材。时间码、逐帧移动和导出的默认帧率都用它。",
|
|
941
|
+
frameRateNote: "时间码、逐帧移动和导出的默认帧率都用它。",
|
|
942
|
+
panel: '检查器',
|
|
943
|
+
show: '显示检查器',
|
|
944
|
+
hide: '隐藏检查器',
|
|
945
|
+
resize: '调整预览 / 检查器大小',
|
|
946
|
+
empty: '点击画面中的任意内容——一行文字、一张图片、一个形状——或时间轴上的一个片段。',
|
|
947
|
+
appearance: '外观',
|
|
948
|
+
typography: '排版',
|
|
949
|
+
content: '文字',
|
|
950
|
+
fontSize: '字号',
|
|
951
|
+
fontWeight: '字重',
|
|
952
|
+
fontFamily: '字体',
|
|
953
|
+
fontSearch: '搜索字体',
|
|
954
|
+
fontUse: '使用“{name}”',
|
|
955
|
+
fontNone: '没有匹配的字体',
|
|
956
|
+
fontGroupLatin: '拉丁文',
|
|
957
|
+
fontGroupZh: '中文',
|
|
958
|
+
fontGroupJa: '日文',
|
|
959
|
+
fontGroupKo: '韩文',
|
|
960
|
+
fontGroupProject: '本项目',
|
|
961
|
+
fontGroupRecent: '最近使用',
|
|
962
|
+
fontElsewhere: '其他页面',
|
|
963
|
+
fontMissing: '未安装 — 画面使用了备用字体',
|
|
964
|
+
fontLoading: '正在载入字体…',
|
|
965
|
+
fontSizes: '常用字号',
|
|
966
|
+
weightItalic: '{name} 斜体',
|
|
967
|
+
color: '颜色',
|
|
968
|
+
fill: '填充',
|
|
969
|
+
opacity: '不透明度',
|
|
970
|
+
letterSpacing: '字间距',
|
|
971
|
+
lineHeight: '行高',
|
|
972
|
+
textAlign: '对齐方式',
|
|
973
|
+
width: '宽度',
|
|
974
|
+
height: '高度',
|
|
975
|
+
radius: '圆角',
|
|
976
|
+
fit: '图片如何填充其框',
|
|
977
|
+
fitContain: '适应',
|
|
978
|
+
fitCover: '填充',
|
|
979
|
+
fitFill: '拉伸',
|
|
980
|
+
cropTop: '裁剪顶部',
|
|
981
|
+
cropBottom: '裁剪底部',
|
|
982
|
+
cropLeft: '裁剪左侧',
|
|
983
|
+
cropRight: '裁剪右侧',
|
|
984
|
+
shadow: '阴影',
|
|
985
|
+
custom: '自定义',
|
|
986
|
+
blend: '混合模式',
|
|
987
|
+
clipCss: '自定义 CSS',
|
|
988
|
+
clipCssEmpty: '每行一个属性,例如 filter: saturate(1.2)',
|
|
989
|
+
mapTextShared: '所有 {n} 个副本共用',
|
|
990
|
+
multi: '已选择 {n} 个片段',
|
|
991
|
+
multiLayers: '已选择 {n} 个图层',
|
|
992
|
+
multiLayersHint: '在画面上拖动可整体移动,用方向键微调,或右键对齐。单击其中一个可单独修改。',
|
|
993
|
+
kindPage: '页面',
|
|
994
|
+
kindVideo: '视频',
|
|
995
|
+
kindAudio: '音频',
|
|
996
|
+
kindCaption: '字幕',
|
|
997
|
+
x: 'X',
|
|
998
|
+
y: 'Y',
|
|
999
|
+
scale: '缩放',
|
|
1000
|
+
rotate: '旋转',
|
|
1001
|
+
resetTransform: '重置变换',
|
|
1002
|
+
at: '开始',
|
|
1003
|
+
duration: '时长',
|
|
1004
|
+
inPoint: '入点',
|
|
1005
|
+
inPointWhole: '片段已经播放整个文件。先缩短它,才能移动入点。',
|
|
1006
|
+
speed: '速度',
|
|
1007
|
+
speedLimit: '慢于 {n}× 会碰到后一个片段。在主轨上,打开时间线的主轨磁吸就会把后面的片段往后推。',
|
|
1008
|
+
speedTooSlow: '慢于 {n}× 会碰到同一轨上的后一个片段。',
|
|
1009
|
+
sound: '声音',
|
|
1010
|
+
gainDb: '音量',
|
|
1011
|
+
pageChanges: '页面内的修改',
|
|
1012
|
+
templateOffPicture: '把播放头移到这个片段上,就能看到它现在的值。',
|
|
1013
|
+
props: '属性',
|
|
1014
|
+
propsEmpty: '在这个页面里选中一层,点它的文字、图片或外观旁的 ◇,就能把它设为属性。',
|
|
1015
|
+
propsAdd: '从页面的变量添加属性',
|
|
1016
|
+
propsNoVars: '这个页面没有变量',
|
|
1017
|
+
propsResetAll: '全部恢复',
|
|
1018
|
+
propReset: '恢复默认',
|
|
1019
|
+
propRename: '重命名',
|
|
1020
|
+
propRenameHint: '双击重命名,右键查看更多',
|
|
1021
|
+
propRemove: '移除属性',
|
|
1022
|
+
propText: '文字',
|
|
1023
|
+
propShowName: '显示{name}',
|
|
1024
|
+
propBound: '属性“{name}”:点击移除',
|
|
1025
|
+
propMakeText: '把文字设为属性',
|
|
1026
|
+
propMakePicture: '把图片设为属性',
|
|
1027
|
+
propMakeShow: '把显示/隐藏设为属性',
|
|
1028
|
+
picture: '图片',
|
|
1029
|
+
templatePictureReplace: '替换图片',
|
|
1030
|
+
templatePictureComputer: '从这台电脑选择…',
|
|
1031
|
+
pageChangeLost: '已不在页面中',
|
|
1032
|
+
pageChangeRemove: '撤销此修改',
|
|
1033
|
+
pageChangeText: '文字',
|
|
1034
|
+
pageChangeMoved: '已移动',
|
|
1035
|
+
pageChangeScaled: '已调整大小',
|
|
1036
|
+
pageChangeRotated: '已旋转',
|
|
1037
|
+
noEdit: '此片段无法编辑',
|
|
1038
|
+
kindText: '文字',
|
|
1039
|
+
kindImage: '图片',
|
|
1040
|
+
kindShape: '形状',
|
|
1041
|
+
kindBox: '容器',
|
|
1042
|
+
dismiss: '关闭',
|
|
1043
|
+
scope: '应用于',
|
|
1044
|
+
scopeOne: '此副本(#{i})',
|
|
1045
|
+
scopeAll: '全部 {n} 个副本',
|
|
1046
|
+
scopeThis: "此文字",
|
|
1047
|
+
scopeSimilar: "所有同类",
|
|
1048
|
+
scopeSimilarIn: "所有同类 · {n} 段",
|
|
1049
|
+
scopeSimilarHint: "样式(颜色、字号、字体等)会同步到片子里所有同类文字:标签和 class 相同,跨所有页面。文字内容和位置各自保留。",
|
|
1050
|
+
timing: '时间',
|
|
1051
|
+
mixed: '混合',
|
|
1052
|
+
clearOverride: '清除我对样式的修改',
|
|
1053
|
+
offsetX: 'X 偏移',
|
|
1054
|
+
offsetY: 'Y 偏移',
|
|
1055
|
+
resetPosition: '重置位置',
|
|
1056
|
+
background: '背景',
|
|
1057
|
+
auto: '自动',
|
|
1058
|
+
alignLeft: '左对齐',
|
|
1059
|
+
alignHCenter: '水平居中对齐',
|
|
1060
|
+
alignRight: '右对齐',
|
|
1061
|
+
alignTop: '顶部对齐',
|
|
1062
|
+
alignVCenter: '垂直居中对齐',
|
|
1063
|
+
alignBottom: '底部对齐',
|
|
1064
|
+
editOnCanvas: '双击画面中的文字即可直接编辑。',
|
|
1065
|
+
aspectLocked: '等比缩放',
|
|
1066
|
+
aspectFree: '自由缩放',
|
|
1067
|
+
position: '位置与大小',
|
|
1068
|
+
cropFill: '裁剪与填充',
|
|
1069
|
+
cropStart: '裁剪',
|
|
1070
|
+
cropShape: '按比例裁剪',
|
|
1071
|
+
cropFree: '自由',
|
|
1072
|
+
cropOriginal: '原比例',
|
|
1073
|
+
cropCustom: '已用自定义形状裁切:请在“高级”中修改。',
|
|
1074
|
+
mask: '蒙版',
|
|
1075
|
+
maskShape: '蒙版形状',
|
|
1076
|
+
maskShapes: {
|
|
1077
|
+
none: '无',
|
|
1078
|
+
linear: '线性',
|
|
1079
|
+
mirror: '镜面',
|
|
1080
|
+
ellipse: '圆形',
|
|
1081
|
+
rect: '矩形',
|
|
1082
|
+
star: '星形',
|
|
1083
|
+
heart: '爱心',
|
|
1084
|
+
},
|
|
1085
|
+
maskX: '蒙版中心 X',
|
|
1086
|
+
maskY: '蒙版中心 Y',
|
|
1087
|
+
maskW: '蒙版宽度',
|
|
1088
|
+
maskH: '蒙版高度',
|
|
1089
|
+
maskBand: '带宽',
|
|
1090
|
+
maskFeather: '羽化',
|
|
1091
|
+
maskInvert: '反转',
|
|
1092
|
+
maskEditOnPicture: '在画面上调整',
|
|
1093
|
+
maskRemove: '去掉蒙版',
|
|
1094
|
+
maskCustom: '已有自定义蒙版:请在“高级”中修改。',
|
|
1095
|
+
framing: '画面在框中的位置',
|
|
1096
|
+
framingX: '水平位置',
|
|
1097
|
+
framingY: '垂直位置',
|
|
1098
|
+
resetSection: '重置',
|
|
1099
|
+
blendShort: '混合',
|
|
1100
|
+
blendModes: {
|
|
1101
|
+
normal: '正常',
|
|
1102
|
+
multiply: '正片叠底',
|
|
1103
|
+
screen: '滤色',
|
|
1104
|
+
overlay: '叠加',
|
|
1105
|
+
darken: '变暗',
|
|
1106
|
+
lighten: '变亮',
|
|
1107
|
+
'color-dodge': '颜色减淡',
|
|
1108
|
+
'color-burn': '颜色加深',
|
|
1109
|
+
'soft-light': '柔光',
|
|
1110
|
+
'hard-light': '强光',
|
|
1111
|
+
difference: '差值',
|
|
1112
|
+
exclusion: '排除',
|
|
1113
|
+
hue: '色相',
|
|
1114
|
+
saturation: '饱和度',
|
|
1115
|
+
color: '颜色',
|
|
1116
|
+
luminosity: '明度',
|
|
1117
|
+
},
|
|
1118
|
+
adjust: '调色',
|
|
1119
|
+
adjustCustom: '它的滤镜是手写的:请在“高级”中修改。',
|
|
1120
|
+
adjustKeys: {
|
|
1121
|
+
brightness: '亮度',
|
|
1122
|
+
contrast: '对比度',
|
|
1123
|
+
saturate: '饱和度',
|
|
1124
|
+
hue: '色相',
|
|
1125
|
+
blur: '模糊',
|
|
1126
|
+
grayscale: '黑白',
|
|
1127
|
+
},
|
|
1128
|
+
effects: '效果',
|
|
1129
|
+
effectAdd: '添加效果',
|
|
1130
|
+
effectRemove: '移除',
|
|
1131
|
+
effectCustom: '手写,见“高级”',
|
|
1132
|
+
effectsNone: '还没有:用 + 添加投影、模糊或渐隐边缘。',
|
|
1133
|
+
shadowX: '投影 X',
|
|
1134
|
+
shadowY: '投影 Y',
|
|
1135
|
+
shadowBlur: '投影模糊',
|
|
1136
|
+
shadowColor: '投影颜色',
|
|
1137
|
+
stroke: '描边',
|
|
1138
|
+
strokeAdd: '添加描边',
|
|
1139
|
+
strokePosition: '描边位置',
|
|
1140
|
+
strokePositions: { inside: '内部', center: '居中', outside: '外部' },
|
|
1141
|
+
strokeCut: '裁切、遮罩或边缘渐隐会切掉画在边外的描边,选「内部」才能完整显示。',
|
|
1142
|
+
fillAdd: '添加填充',
|
|
1143
|
+
fillRemove: '移除填充',
|
|
1144
|
+
innerShadow: '内阴影',
|
|
1145
|
+
layerBlur: '图层模糊',
|
|
1146
|
+
backgroundBlur: '背景模糊',
|
|
1147
|
+
shadowSpread: '扩展',
|
|
1148
|
+
cornersEach: '独立圆角',
|
|
1149
|
+
cornersCropped: '裁切的四个角圆角相同',
|
|
1150
|
+
corners: { 'top-left': '左上', 'top-right': '右上', 'bottom-right': '右下', 'bottom-left': '左下' },
|
|
1151
|
+
textDecoration: '装饰线',
|
|
1152
|
+
decorations: { none: '无', underline: '下划线', lineThrough: '删除线' },
|
|
1153
|
+
strokeWidth: '描边粗细',
|
|
1154
|
+
strokeStyle: '描边样式',
|
|
1155
|
+
strokeColor: '描边颜色',
|
|
1156
|
+
strokeStyles: {
|
|
1157
|
+
solid: '实线',
|
|
1158
|
+
dashed: '虚线',
|
|
1159
|
+
dotted: '点线',
|
|
1160
|
+
},
|
|
1161
|
+
fade: '渐隐边缘',
|
|
1162
|
+
fadeSides: '要渐隐的边',
|
|
1163
|
+
fadeSize: '渐隐范围',
|
|
1164
|
+
fadeSide: {
|
|
1165
|
+
top: '上边',
|
|
1166
|
+
right: '右边',
|
|
1167
|
+
bottom: '下边',
|
|
1168
|
+
left: '左边',
|
|
1169
|
+
},
|
|
1170
|
+
textCase: '大小写',
|
|
1171
|
+
caseNone: '原样',
|
|
1172
|
+
caseUpper: '全部大写',
|
|
1173
|
+
caseLower: '全部小写',
|
|
1174
|
+
caseTitle: '首字母大写',
|
|
1175
|
+
alignTextLeft: '文字左对齐',
|
|
1176
|
+
alignTextCenter: '文字居中',
|
|
1177
|
+
alignTextRight: '文字右对齐',
|
|
1178
|
+
alignTextJustify: '两端对齐',
|
|
1179
|
+
advanced: '高级',
|
|
1180
|
+
classes: '类名',
|
|
1181
|
+
classesEmpty: '影片样式中的类名,例如 card',
|
|
1182
|
+
timeUnit: '时间显示为',
|
|
1183
|
+
timeTimecode: '时间码(每秒 30 帧,与播放器一致)',
|
|
1184
|
+
timeSeconds: '秒',
|
|
1185
|
+
sourceBar: '素材',
|
|
1186
|
+
slipHint: '拖动:在原位置播放素材的另一段;拖两端:裁剪',
|
|
1187
|
+
trimHead: '裁剪开头',
|
|
1188
|
+
trimTail: '裁剪结尾',
|
|
1189
|
+
distributeH: '水平均匀分布',
|
|
1190
|
+
distributeV: '垂直均匀分布',
|
|
1191
|
+
film: '影片',
|
|
1192
|
+
stage: '画布',
|
|
1193
|
+
stageShape: '画布比例',
|
|
1194
|
+
redesignOpen: '让智能体按这个画布重新排版',
|
|
1195
|
+
redesignBody: '把下面这句话粘贴到对话里,智能体会按当前画布重新排版每个页面和片段。',
|
|
1196
|
+
redesignAsk: '这部影片的画布现在是 {ratio}({size})。请按这个画布重新排版每个页面和片段,并用 look 检查每一幕。',
|
|
1197
|
+
redesignCopy: '复制这句话',
|
|
1198
|
+
redesignCopied: '已复制,粘贴到对话里即可',
|
|
1199
|
+
filmInfo: '内容',
|
|
1200
|
+
tracks: '轨道',
|
|
1201
|
+
clipsCount: '片段',
|
|
1202
|
+
pageChangeStyled: '样式已改',
|
|
1203
|
+
weights: {
|
|
1204
|
+
w100: '极细',
|
|
1205
|
+
w200: '特细',
|
|
1206
|
+
w300: '细体',
|
|
1207
|
+
w400: '常规',
|
|
1208
|
+
w500: '中等',
|
|
1209
|
+
w600: '半粗',
|
|
1210
|
+
w700: '粗体',
|
|
1211
|
+
w800: '特粗',
|
|
1212
|
+
w900: '黑体',
|
|
1213
|
+
},
|
|
1214
|
+
},
|
|
1215
|
+
colorPicker: {
|
|
1216
|
+
close: '关闭',
|
|
1217
|
+
eyedropper: '从屏幕上吸取颜色',
|
|
1218
|
+
hex: 'Hex',
|
|
1219
|
+
recent: '最近使用',
|
|
1220
|
+
},
|
|
1221
|
+
layout: {
|
|
1222
|
+
title: '布局',
|
|
1223
|
+
assets: '素材',
|
|
1224
|
+
layers: '图层',
|
|
1225
|
+
timeline: '时间轴',
|
|
1226
|
+
inspector: '检查器',
|
|
1227
|
+
},
|
|
1228
|
+
timeline: {
|
|
1229
|
+
renameTrack: "重命名轨道",
|
|
1230
|
+
mediaMissing: '找不到媒体',
|
|
1231
|
+
mediaMissingHint: '该文件已不在项目中。右键点击以重新链接。',
|
|
1232
|
+
menuRelink: '重新链接媒体',
|
|
1233
|
+
menuRelinkPick: '选择文件…',
|
|
1234
|
+
mediaCannotPlay: '此片段无法在应用中播放,影片的其余部分不受影响。',
|
|
1235
|
+
noLength: '无时长',
|
|
1236
|
+
noLengthHint: '此片段没有时长:它本身不占用播放时间(例如图片,或没有设定时长的页面),也不提供时长。拖动它的结尾来设定播放多久。',
|
|
1237
|
+
mediaReconnecting: '正在重新连接此片段…它会自动恢复。',
|
|
1238
|
+
resize: '调整时间轴大小',
|
|
1239
|
+
seek: '拖动播放头',
|
|
1240
|
+
split: '分割',
|
|
1241
|
+
subtitles: '字幕',
|
|
1242
|
+
subtitlesNone: '还没有字幕——影片有了人声后就会出现',
|
|
1243
|
+
subtitlesMakeOne: '生成字幕:有一个人声片段还没有文字稿',
|
|
1244
|
+
subtitlesMake: '生成字幕:有 {n} 个含语音的片段还没有文字稿',
|
|
1245
|
+
subtitlesMaking: '正在生成字幕…',
|
|
1246
|
+
subtitlesConnect: '生成字幕需要一个语音转写服务:请在设置(左上角的 OpenFilm 标志)→ 服务商中连接一个',
|
|
1247
|
+
subtitlesFailed: '无法生成字幕:{error}',
|
|
1248
|
+
subtitleLines: '字幕行',
|
|
1249
|
+
subtitleLineAt: '{time} 处的字幕',
|
|
1250
|
+
subtitleLineGo: '跳转到 {time}',
|
|
1251
|
+
subtitleLineInLanguage: '{time} 处的字幕({lang})',
|
|
1252
|
+
subtitleLineUntranslated: '尚未翻译',
|
|
1253
|
+
subtitleLinesMakeOne: '为一个文字稿缺失或已过期的人声片段生成字幕',
|
|
1254
|
+
subtitleLinesMake: '为 {n} 个文字稿缺失或已过期的片段生成字幕',
|
|
1255
|
+
subtitleStyle: '字幕样式',
|
|
1256
|
+
subtitleLanguageGroup: '字幕语言',
|
|
1257
|
+
subtitleLanguageOriginal: '原文',
|
|
1258
|
+
subtitleLanguageOriginalNamed: '原文 · {lang}',
|
|
1259
|
+
subtitleLanguageTranslate: '翻译为',
|
|
1260
|
+
subtitleLanguageShow: '显示',
|
|
1261
|
+
subtitleShowTranslation: '译文',
|
|
1262
|
+
subtitleShowBoth: '原文 + 译文',
|
|
1263
|
+
subtitleTranslating: '正在将语音翻译为 {lang}…',
|
|
1264
|
+
subtitleTranslateFailed: '暂时无法翻译。',
|
|
1265
|
+
subtitleTranslateNetwork: '无法连接到翻译服务。',
|
|
1266
|
+
subtitleTranslateRetry: '重试',
|
|
1267
|
+
subtitleTranslateConnect: '请在设置(左上角的 OpenFilm 标志)→ 服务商中连接一个翻译服务。',
|
|
1268
|
+
subtitleSize: '大小',
|
|
1269
|
+
subtitleLook: {
|
|
1270
|
+
outline: '描边(默认)',
|
|
1271
|
+
bar: '背景条',
|
|
1272
|
+
bold: '粗体粗描边',
|
|
1273
|
+
yellow: '黄色',
|
|
1274
|
+
clean: '无描边',
|
|
1275
|
+
},
|
|
1276
|
+
subtitleFontGroup: '字体',
|
|
1277
|
+
subtitleEffectGroup: '效果',
|
|
1278
|
+
subtitleKaraoke: '逐字高亮',
|
|
1279
|
+
subtitleKaraokeMode: '样式',
|
|
1280
|
+
subtitleKaraokeBox: '高亮底框',
|
|
1281
|
+
subtitleKaraokeColor: '变色',
|
|
1282
|
+
subtitleKaraokePop: '弹跳',
|
|
1283
|
+
subtitleFade: '淡入淡出',
|
|
1284
|
+
subtitleKaraokeTint: '高亮颜色',
|
|
1285
|
+
subtitleFamily: '字体',
|
|
1286
|
+
subtitleFamilyDefault: '默认',
|
|
1287
|
+
subtitleWeight: '字重',
|
|
1288
|
+
subtitleItalic: '斜体',
|
|
1289
|
+
subtitleUpper: '大写',
|
|
1290
|
+
subtitleTracking: '字距',
|
|
1291
|
+
subtitleLeading: '行距',
|
|
1292
|
+
subtitleInkGroup: '颜色',
|
|
1293
|
+
subtitleFill: '填充',
|
|
1294
|
+
subtitleStroke: '描边',
|
|
1295
|
+
subtitleShadow: '阴影',
|
|
1296
|
+
subtitleBlur: '模糊',
|
|
1297
|
+
subtitleOffsetY: '偏移',
|
|
1298
|
+
subtitleBox: '底框',
|
|
1299
|
+
subtitleOpacity: '不透明度',
|
|
1300
|
+
subtitleRadius: '圆角',
|
|
1301
|
+
subtitleLayoutGroup: '布局',
|
|
1302
|
+
subtitleAlign: '对齐',
|
|
1303
|
+
subtitleAlignLeft: '左',
|
|
1304
|
+
subtitleAlignCenter: '居中',
|
|
1305
|
+
subtitleAlignRight: '右',
|
|
1306
|
+
subtitleWidth: '最大宽度',
|
|
1307
|
+
subtitleReset: '重置',
|
|
1308
|
+
subtitleDrag: '在画面上拖动即可移动。',
|
|
1309
|
+
subtitleSaved: '此样式随项目保存,导出时也会使用。',
|
|
1310
|
+
removeBlock: '删除',
|
|
1311
|
+
rippleRemove: '波纹删除',
|
|
1312
|
+
menuSplitHere: '在播放头处分割',
|
|
1313
|
+
menuDetachAudio: '分离音频',
|
|
1314
|
+
menuDetachAudioNone: '此视频没有声音',
|
|
1315
|
+
menuCopy: '复制',
|
|
1316
|
+
menuPaste: '粘贴',
|
|
1317
|
+
menuPasteEmpty: '还没有复制任何内容',
|
|
1318
|
+
menuSplitOutside: '播放头不在此片段上——请把它移到要分割的位置',
|
|
1319
|
+
menuCopyNone: '此片段不在 film.html 中,因此无法在这里修改',
|
|
1320
|
+
menuExportClip: '导出此片段',
|
|
1321
|
+
menuExportNoId: '此片段不在 film.html 中,因此无法导出',
|
|
1322
|
+
modeSelect: '选择',
|
|
1323
|
+
modeSplit: '分割',
|
|
1324
|
+
applying: '正在保存 film.html…',
|
|
1325
|
+
emptyStudio: '把素材拖到这里开始制作影片,或让智能体帮你做一部。',
|
|
1326
|
+
zoomIn: '放大',
|
|
1327
|
+
zoomOut: '缩小',
|
|
1328
|
+
zoomFit: '适应宽度',
|
|
1329
|
+
zoom: '缩放',
|
|
1330
|
+
snap: '吸附',
|
|
1331
|
+
snapOn: '开:拖动时吸附到片段边缘、播放头和标记',
|
|
1332
|
+
snapOff: '关:松手在哪就放在哪',
|
|
1333
|
+
mainTrack: '主轨',
|
|
1334
|
+
magnet: '主轨磁吸',
|
|
1335
|
+
magnetOn: '开:主轨上的片段自动首尾相接,不留空隙',
|
|
1336
|
+
magnetOff: '关:主轨上的片段放在哪就在哪',
|
|
1337
|
+
linkage: '联动',
|
|
1338
|
+
linkageOn: '开:字幕、画中画、声音跟着下面的主轨片段一起移动、删除',
|
|
1339
|
+
linkageOff: '关:编辑主轨时只动主轨',
|
|
1340
|
+
previewAxis: '预览轴',
|
|
1341
|
+
previewAxisOn: '开:鼠标在时间线上移动,画面跟着走',
|
|
1342
|
+
previewAxisOff: '关:画面停在播放头处',
|
|
1343
|
+
rippleShort: '其他轨道上有片段挡着:为保持同步,留下了 {s} 秒的空隙。',
|
|
1344
|
+
menuCloseGap: '合拢间隙',
|
|
1345
|
+
menuCloseGaps: '批量闭合空隙',
|
|
1346
|
+
menuRippleStart: '波纹裁剪开头到播放头',
|
|
1347
|
+
menuRippleEnd: '波纹裁剪结尾到播放头',
|
|
1348
|
+
menuLink: '关联',
|
|
1349
|
+
menuUnlink: '取消关联',
|
|
1350
|
+
tip: {
|
|
1351
|
+
trim: '裁剪',
|
|
1352
|
+
ripple: '波纹',
|
|
1353
|
+
sourceEnd: '素材到头了',
|
|
1354
|
+
},
|
|
1355
|
+
trackLocked: '轨道已锁定',
|
|
1356
|
+
dropNotClip: '此素材不能放到时间轴上',
|
|
1357
|
+
dropFromComputer: '新文件',
|
|
1358
|
+
editFail: '该修改没有生效',
|
|
1359
|
+
removeFail: '无法删除',
|
|
1360
|
+
splitFail: '无法分割',
|
|
1361
|
+
detachFail: '无法分离此片段的音频',
|
|
1362
|
+
pasteGone: '复制的片段已不在影片中',
|
|
1363
|
+
lockTrack: '锁定轨道',
|
|
1364
|
+
unlockTrack: '解锁轨道',
|
|
1365
|
+
hideTrack: '关闭此轨道:无画面也无声音',
|
|
1366
|
+
showTrack: '重新开启此轨道',
|
|
1367
|
+
muteTrack: '关闭原声',
|
|
1368
|
+
unmuteTrack: '开启原声',
|
|
1369
|
+
muteSoundTrack: '轨道静音',
|
|
1370
|
+
unmuteSoundTrack: '取消轨道静音',
|
|
1371
|
+
},
|
|
1372
|
+
/* the timeline's audio and editing tools: meters, solo, markers, loudness, freeze frame, replace, track heights */
|
|
1373
|
+
editorTools: {
|
|
1374
|
+
meters: "音频电平表",
|
|
1375
|
+
metersClip: "削波:声音达到了 0 dB。点击清除",
|
|
1376
|
+
metersPeak: "最近的最高峰值,dBFS",
|
|
1377
|
+
solo: "独听:只听这条轨道,仅在此处(⌥ 点击:只独听这一条)",
|
|
1378
|
+
unsolo: "取消独听这条轨道",
|
|
1379
|
+
resizeTrack: "拖动调整轨道高度 · 双击:恢复默认高度",
|
|
1380
|
+
markerAdd: "添加标记",
|
|
1381
|
+
markerAddClip: "在片段上添加标记",
|
|
1382
|
+
markerAddedOn: "已在 {clip} 上添加标记",
|
|
1383
|
+
markerColor: "颜色",
|
|
1384
|
+
markerDelete: "删除标记",
|
|
1385
|
+
markerName: "标记名称",
|
|
1386
|
+
markerUntitled: "标记",
|
|
1387
|
+
colors: {
|
|
1388
|
+
blue: "蓝色",
|
|
1389
|
+
green: "绿色",
|
|
1390
|
+
yellow: "黄色",
|
|
1391
|
+
orange: "橙色",
|
|
1392
|
+
red: "红色",
|
|
1393
|
+
purple: "紫色",
|
|
1394
|
+
},
|
|
1395
|
+
trackHeight: "轨道高度",
|
|
1396
|
+
allTracksHeight: "所有轨道的高度",
|
|
1397
|
+
size: {
|
|
1398
|
+
small: "小",
|
|
1399
|
+
medium: "中",
|
|
1400
|
+
large: "大",
|
|
1401
|
+
},
|
|
1402
|
+
normalize: "响度标准化",
|
|
1403
|
+
target: {
|
|
1404
|
+
web: "{lufs} LUFS · 网络视频",
|
|
1405
|
+
podcast: "{lufs} LUFS · 播客",
|
|
1406
|
+
broadcast: "{lufs} LUFS · 广播",
|
|
1407
|
+
},
|
|
1408
|
+
normalizeNone: "选中的内容里没有可标准化的声音",
|
|
1409
|
+
normalizing: "正在测量响度…",
|
|
1410
|
+
normalized: "已将 {n} 个片段标准化到 {target} LUFS",
|
|
1411
|
+
normalizedOne: "{clip}:{from} LUFS → {target} LUFS(音量 {pct}%)",
|
|
1412
|
+
normalizeShort: "{clip} 达不到 {target} LUFS:音量 500% 时为 {lufs} LUFS",
|
|
1413
|
+
normalizeSilent: "{clip} 没有可测量的声音",
|
|
1414
|
+
normalizeFail: "无法测量 {clip}:{reason}",
|
|
1415
|
+
freeze: "定格帧",
|
|
1416
|
+
freezeOutside: "先把播放头放到这个片段上",
|
|
1417
|
+
freezeFail: "无法把这一帧做成静帧:{reason}",
|
|
1418
|
+
replace: "替换为…",
|
|
1419
|
+
replaceNone: "项目里没有可以替换它的文件",
|
|
1420
|
+
replaceKind: "画面只能用画面替换,声音只能用声音替换",
|
|
1421
|
+
replaceShort: "新文件更短:片段短了 {s} 秒",
|
|
1422
|
+
replaceButton: "替换",
|
|
1423
|
+
replaceFromComputer: "从电脑选择…",
|
|
1424
|
+
replacePick: "选择用来替换的文件",
|
|
1425
|
+
},
|
|
1426
|
+
/* a clip's attributes copied onto others (lib/clip-attrs, components/PasteAttrsDialog) */
|
|
1427
|
+
clipAttrs: {
|
|
1428
|
+
title: '粘贴属性',
|
|
1429
|
+
picture: '画面',
|
|
1430
|
+
sound: '音频',
|
|
1431
|
+
place: '位置大小',
|
|
1432
|
+
blend: '混合(不透明度、混合模式)',
|
|
1433
|
+
volume: '音量',
|
|
1434
|
+
fade: '淡入/淡出',
|
|
1435
|
+
paste: '粘贴',
|
|
1436
|
+
copy: '复制属性',
|
|
1437
|
+
pasteMenu: '粘贴属性…',
|
|
1438
|
+
copied: '已复制属性:选中片段后按 ⌘⇧V 粘贴',
|
|
1439
|
+
nothing: '请先复制一个片段的属性(⌘⇧C)',
|
|
1440
|
+
selectFirst: '请先选中片段',
|
|
1441
|
+
},
|
|
1442
|
+
transitions: {
|
|
1443
|
+
dissolve: '交叉溶解',
|
|
1444
|
+
'dip-black': '黑场过渡',
|
|
1445
|
+
'dip-white': '白场过渡',
|
|
1446
|
+
'fade-in': '淡入',
|
|
1447
|
+
'fade-out': '淡出',
|
|
1448
|
+
crossfade: '音频交叉淡化',
|
|
1449
|
+
remove: '移除转场',
|
|
1450
|
+
atCut: '转场',
|
|
1451
|
+
locked: '要改动的片段在锁定的轨道上',
|
|
1452
|
+
none: '这里没有剪切点:请选中一个片段,或把播放头放在剪切点旁',
|
|
1453
|
+
short: '片段太短,放不下',
|
|
1454
|
+
mark: '{kind} · {s} 秒 — 拖动边缘调整时长;按 Delete 移除',
|
|
1455
|
+
handle: '{what}:{s} 秒 — 向内拖动来淡化(⌥:只改这个片段)',
|
|
1456
|
+
fadeTip: '{what} {s} 秒',
|
|
1457
|
+
},
|
|
1458
|
+
subtitleRow: {
|
|
1459
|
+
editOnTimeline: '在时间线上编辑',
|
|
1460
|
+
showRow: '在时间线上以一行显示字幕,便于调整时间、拆分和合并',
|
|
1461
|
+
hideRow: '隐藏时间线上的字幕行',
|
|
1462
|
+
name: '字幕',
|
|
1463
|
+
add: '在播放头处添加字幕',
|
|
1464
|
+
hide: '隐藏字幕行',
|
|
1465
|
+
hideNote: '可在“字幕样式 › 在时间线上编辑”中重新打开。',
|
|
1466
|
+
split: '在播放头处拆分',
|
|
1467
|
+
splitWhere: '把播放头放到字幕中间,离开它的两端',
|
|
1468
|
+
merge: '与下一条合并',
|
|
1469
|
+
mergeWhy: '只能和同一个声音的下一条合并',
|
|
1470
|
+
edit: '编辑文字',
|
|
1471
|
+
delete: '删除',
|
|
1472
|
+
newText: '新字幕',
|
|
1473
|
+
nothingHeard: '播放头处没有声音:字幕是配音或视频说的话',
|
|
1474
|
+
noRoom: '这里放不下字幕',
|
|
1475
|
+
gone: '这条字幕已经不在了',
|
|
1476
|
+
notNext: '这两条字幕不相邻',
|
|
1477
|
+
},
|
|
1478
|
+
confirm: {
|
|
1479
|
+
ok: '确认',
|
|
1480
|
+
deleteTitle: '删除此项目?',
|
|
1481
|
+
deleteDesc: `它的文件夹,连同影片和其中的所有内容,都会被移到${TRASH}。`,
|
|
1482
|
+
deleteManyTitle: '删除这 {n} 个项目?',
|
|
1483
|
+
deleteManyDesc: `它们的文件夹,连同影片和其中的所有内容,都会被移到${TRASH}。`,
|
|
1484
|
+
delete: '删除',
|
|
1485
|
+
cancel: '取消',
|
|
1486
|
+
},
|
|
1487
|
+
/* what an agent's `openfilm get` asks before it spends (see SpendAsks) */
|
|
1488
|
+
asks: {
|
|
1489
|
+
videoTitle: '智能体想生成一段视频片段',
|
|
1490
|
+
videoNote: '视频是最昂贵的一类媒体。',
|
|
1491
|
+
make: '生成',
|
|
1492
|
+
skip: '跳过',
|
|
1493
|
+
balanceTitle: '{provider}:余额不足',
|
|
1494
|
+
balanceBody: '{provider} 的余额不足,请去那边充值或切换服务后再试。',
|
|
1495
|
+
manage: '管理',
|
|
1496
|
+
close: '关闭',
|
|
1497
|
+
},
|
|
1498
|
+
settings: {
|
|
1499
|
+
title: '设置',
|
|
1500
|
+
done: '完成',
|
|
1501
|
+
search: '搜索',
|
|
1502
|
+
noResults: '没有匹配的设置',
|
|
1503
|
+
groups: {
|
|
1504
|
+
help: '帮助',
|
|
1505
|
+
},
|
|
1506
|
+
links: {
|
|
1507
|
+
github: 'GitHub',
|
|
1508
|
+
examples: '示例',
|
|
1509
|
+
site: '官网',
|
|
1510
|
+
},
|
|
1511
|
+
sections: {
|
|
1512
|
+
agents: '智能体',
|
|
1513
|
+
providers: '服务商',
|
|
1514
|
+
models: '服务',
|
|
1515
|
+
developer: '开发者',
|
|
1516
|
+
general: '通用',
|
|
1517
|
+
shortcuts: '键盘快捷键',
|
|
1518
|
+
advanced: '高级',
|
|
1519
|
+
},
|
|
1520
|
+
appearance: {
|
|
1521
|
+
group: '外观',
|
|
1522
|
+
theme: '主题',
|
|
1523
|
+
light: '浅色',
|
|
1524
|
+
dark: '深色',
|
|
1525
|
+
system: '跟随系统',
|
|
1526
|
+
language: '语言',
|
|
1527
|
+
languageSystem: '跟随系统',
|
|
1528
|
+
themeHint: '浅色、深色,或跟随系统。',
|
|
1529
|
+
languageHint: 'OpenFilm 界面使用的语言。',
|
|
1530
|
+
},
|
|
1531
|
+
storage: {
|
|
1532
|
+
group: '存储位置',
|
|
1533
|
+
projects: '项目位置',
|
|
1534
|
+
projectsPick: '选择项目位置',
|
|
1535
|
+
pickButton: '选择',
|
|
1536
|
+
change: '更改…',
|
|
1537
|
+
show: '打开',
|
|
1538
|
+
reset: '恢复默认',
|
|
1539
|
+
save: '保存',
|
|
1540
|
+
free: '所在磁盘剩余 {size}',
|
|
1541
|
+
moveTitle: '把现有项目一起移过去?',
|
|
1542
|
+
moveDesc: '{from} 里有 {count} 个项目。可以一起移到 {to},也可以留在原处,项目列表里照样能打开。',
|
|
1543
|
+
moveYes: '移动项目',
|
|
1544
|
+
moveNo: '留在原处',
|
|
1545
|
+
moved: '已移动 {count} 个项目。',
|
|
1546
|
+
moveFailed: '这些项目没能移动,仍在原处:{names}',
|
|
1547
|
+
},
|
|
1548
|
+
playback: {
|
|
1549
|
+
group: "播放",
|
|
1550
|
+
proxies: "为大体积素材生成代理",
|
|
1551
|
+
proxiesHint: "超过 1080p(比如 4K)或解码较慢(ProRes、HEVC、10 位)的素材,会在后台生成一份轻量副本用于预览播放。导出始终使用原素材。",
|
|
1552
|
+
proxySize: "代理分辨率",
|
|
1553
|
+
proxySizeHint: "越小播放越流畅,越大预览越清晰。",
|
|
1554
|
+
},
|
|
1555
|
+
advanced: {
|
|
1556
|
+
intro: "这些已设为最佳体验,一般不用改。",
|
|
1557
|
+
fitPages: "按查看器尺寸绘制网页",
|
|
1558
|
+
fitPagesHint: "网页里的 Canvas 和 3D 按查看器实际显示的尺寸绘制,看起来一样,播放更流畅。关闭后按影片完整尺寸绘制。导出始终按完整尺寸。",
|
|
1559
|
+
renders: "渲染播放卡顿的片段",
|
|
1560
|
+
rendersHint: "查看器无法全速播放的片段,会在停止播放后于后台渲染,之后就能流畅播放。",
|
|
1561
|
+
},
|
|
1562
|
+
about: {
|
|
1563
|
+
group: '关于',
|
|
1564
|
+
check: '检查更新',
|
|
1565
|
+
checking: '正在检查…',
|
|
1566
|
+
failed: '连不上 npm,请稍后再试。',
|
|
1567
|
+
newer: 'OpenFilm {version} 已发布。',
|
|
1568
|
+
upToDate: '已是最新版本。',
|
|
1569
|
+
source: '从源码运行:用 git pull 更新。',
|
|
1570
|
+
off: '这里关闭了更新检查(OPENFILM_NO_UPDATE_CHECK)。',
|
|
1571
|
+
never: '还没有检查过。',
|
|
1572
|
+
inApp: 'Studio 随桌面端一起更新:OpenFilm → Check for Updates…',
|
|
1573
|
+
howTitle: '更新',
|
|
1574
|
+
how: '点「更新」,或运行这条命令,或让你的智能体更新 OpenFilm:Studio 会以新版本重新启动。',
|
|
1575
|
+
appOff: '这是从源码运行的开发版,不会自动更新;安装的正式版会自己更新。',
|
|
1576
|
+
appChecked: '上次检查:{time}。',
|
|
1577
|
+
appDownloading: '正在下载 OpenFilm {version}…',
|
|
1578
|
+
appStaging: '正在准备 OpenFilm {version}…',
|
|
1579
|
+
appRetry: '重试',
|
|
1580
|
+
whatsNew: '查看本次更新内容',
|
|
1581
|
+
appOffline: '连不上更新服务,请检查网络。',
|
|
1582
|
+
appUnavailable: '更新服务暂时不可用,请稍后再试。',
|
|
1583
|
+
appFailed: '更新没能完成,请稍后再试。',
|
|
1584
|
+
},
|
|
1585
|
+
report: {
|
|
1586
|
+
title: '诊断报告',
|
|
1587
|
+
hint: 'OpenFilm 在这台电脑和这个浏览器里检查到的情况、各个智能体和最近一周的问题,可以贴到 issue 里。主目录下的路径显示为 ~,不含密钥、账号和项目。',
|
|
1588
|
+
copy: '复制报告',
|
|
1589
|
+
making: '检查中…',
|
|
1590
|
+
copied: '已复制',
|
|
1591
|
+
failed: '报告没有生成,请再试一次。',
|
|
1592
|
+
select: '浏览器不允许 Studio 复制,请选中下面的报告手动复制。',
|
|
1593
|
+
group: '诊断',
|
|
1594
|
+
export: '诊断文件',
|
|
1595
|
+
exportHint: '其余能说明问题原因的内容,打成一个 zip 放在导出文件夹里:报告、最近两周的问题、日志,以及失败的那几轮是怎么进行的。附到 issue 之前请先看一下。',
|
|
1596
|
+
exportButton: '导出',
|
|
1597
|
+
exporting: '导出中…',
|
|
1598
|
+
exported: '已导出 {name},并在文件夹中显示。',
|
|
1599
|
+
exportFailed: '文件没有写成,请再试一次。',
|
|
1600
|
+
conversations: '包括失败那几轮的对话',
|
|
1601
|
+
conversationsHint: '关闭时,每个失败的回合在文件里只记录过程:用的哪个智能体和模型、每一步什么时候开始和结束、每个工具的类型和成没成功、智能体的提示和报错。不包含你的消息、智能体的回复、命令、文件名或你文件里的任何内容。',
|
|
1602
|
+
problems: '最近的问题',
|
|
1603
|
+
problemsHint: '最近两周出过的问题,最新的在前。只保存在这台电脑上。',
|
|
1604
|
+
noProblems: '最近两周没有问题。',
|
|
1605
|
+
more: '显示全部 {count} 条',
|
|
1606
|
+
conversationsOn: '已打开:下一次导出的文件会带上失败回合里的对话,内容就是打开时列出的那些。关闭即可不带。',
|
|
1607
|
+
addsTitle: '打开后,最近两周内最后五个失败的回合会多带上:',
|
|
1608
|
+
adds1: '你发的消息原文(你附上的图片不会带上)。',
|
|
1609
|
+
adds2: '智能体的回复和它的思考过程。',
|
|
1610
|
+
adds3: '每一步的标题、命令、输入和输出,其中可能有你的文件名、文件内容和命令打印出的内容。',
|
|
1611
|
+
adds4: '智能体问你的问题,以及你的回答。',
|
|
1612
|
+
adds5: '智能体启动时收到的说明,包括你在它的设置里自己写的说明。',
|
|
1613
|
+
addsKept: '仍然会去掉:你的主目录(显示为 ~)、密钥、令牌和邮箱地址。不会发送到任何地方:文件一直留在这台电脑上,直到你自己附到别处。',
|
|
1614
|
+
addsWho: '能看到你附件的人都能读到它,公开的 GitHub issue 也一样。只发到你想发的地方。',
|
|
1615
|
+
addsYes: '确认带上',
|
|
1616
|
+
addsNo: '取消',
|
|
1617
|
+
exportedHas: '文件里有:',
|
|
1618
|
+
partReport: '诊断报告',
|
|
1619
|
+
partProblems: '最近两周的问题',
|
|
1620
|
+
partLogs: 'Studio 和应用的 {count} 份日志的最后一段',
|
|
1621
|
+
partTurns: '{count} 个失败回合的过程,不含对话',
|
|
1622
|
+
partTurnsWords: '{count} 个失败回合,含对话',
|
|
1623
|
+
partCodex: 'Codex 自己在出问题前后的警告和报错',
|
|
1624
|
+
},
|
|
1625
|
+
agents: {
|
|
1626
|
+
intro: '对话可以使用的智能体。Codex、Claude Code 等「你的智能体」是你自己的,使用这台电脑上已登录的账号:想换账号,就在智能体里切换,再回到这里断开后重新连接。自有密钥使用你自己配置的模型,每个模型可以接不同的服务。',
|
|
1627
|
+
byokName: '自有密钥',
|
|
1628
|
+
groupYours: '你的智能体',
|
|
1629
|
+
groupMore: '还可以接入的智能体',
|
|
1630
|
+
recommended: '推荐',
|
|
1631
|
+
recommendedHint: '最划算:用你已有的订阅',
|
|
1632
|
+
ready: '已连接',
|
|
1633
|
+
off: '未连接',
|
|
1634
|
+
signedOut: '未登录',
|
|
1635
|
+
waiting: '正在等待你完成登录…',
|
|
1636
|
+
waitingHint: '请在刚打开的窗口中完成登录,然后回到这里。',
|
|
1637
|
+
waitingHintMinimax: '请在刚打开的窗口中完成登录,然后回到这里。国际版账号无法在该窗口选择站点:请在终端中运行 mcode login --region global,再点「重新开始」。',
|
|
1638
|
+
waitingHintCodebuddy: '请在刚打开的窗口中完成登录,然后回到这里。该窗口是 CodeBuddy 自己的,标题为 CodeBuddy,不是 OpenFilm 或终端。',
|
|
1639
|
+
startAgain: '重新开始',
|
|
1640
|
+
missing: '这台电脑上尚未安装',
|
|
1641
|
+
claudeSetup: '打开一次 Claude 应用的 Code 标签页即可安装 Claude Code',
|
|
1642
|
+
locate: '手动选择…',
|
|
1643
|
+
locateTitle: '选择 {name} 程序',
|
|
1644
|
+
locateButton: '使用这个',
|
|
1645
|
+
chosenAt: '正在使用你选择的程序:{path}',
|
|
1646
|
+
automatic: '改回自动检测',
|
|
1647
|
+
notAProgram: '这不是这台电脑能启动的程序。请选择智能体程序本身(Windows 上是 .exe 或 .cmd 文件)。',
|
|
1648
|
+
appOnly: '已安装 {app} 应用,但连接需要 {name} 的命令行智能体。',
|
|
1649
|
+
installing: '正在终端窗口中安装… 装好后 OpenFilm 会找到它。',
|
|
1650
|
+
installConfirm: 'OpenFilm 会打开一个终端窗口,运行 {name} 的官方安装命令:',
|
|
1651
|
+
installRun: '运行安装',
|
|
1652
|
+
notTheAgentApp: '这是编辑器或桌面应用,不是 {name} 的命令行智能体。连接需要 {name} 的命令行智能体。',
|
|
1653
|
+
notCursorAgent: '这不是 Cursor 的命令行智能体(它安装在 cursor-agent 文件夹里)。连接需要 Cursor 的命令行智能体。',
|
|
1654
|
+
didNotStart: '从这里启动失败:',
|
|
1655
|
+
unreadable: '它读不了自己的设置,所以无法启动。请修改它的配置文件里提到的那一项,或更新它:',
|
|
1656
|
+
whyMissing: '为什么检测不到?',
|
|
1657
|
+
searching: '正在查找…',
|
|
1658
|
+
hintChosenMissing: '你选择的程序已经不在了。重新选择,或改回自动检测。',
|
|
1659
|
+
hintWsl: '它装在 WSL(Windows 里的 Linux)中,OpenFilm 用不了。请在 Windows 里也装一份,然后回到这里。',
|
|
1660
|
+
hintUnusable: '找到了同名文件,但都无法启动。请用“手动选择…”选中程序本身。',
|
|
1661
|
+
hintNone: '在查找过的文件夹里都没有找到。如果 {program} 在你的终端里能用,在终端里查出它的位置(Windows 用“where {program}”,Mac 用“which {program}”),再用“手动选择…”选中那个文件。',
|
|
1662
|
+
hintFound: '已找到:{path}',
|
|
1663
|
+
reportNote: '如果还是检测不到,复制诊断信息,附在 issue 里发给我们。里面有这台电脑上的文件夹路径。',
|
|
1664
|
+
copyReport: '复制诊断信息',
|
|
1665
|
+
copied: '已复制',
|
|
1666
|
+
close: '关闭',
|
|
1667
|
+
needsKey: '尚未设置',
|
|
1668
|
+
unavailable: '暂未开放,后续版本推出',
|
|
1669
|
+
checking: '正在检查…',
|
|
1670
|
+
connect: '连接',
|
|
1671
|
+
disconnect: '断开连接',
|
|
1672
|
+
disconnectHint: '停止在 OpenFilm 中使用,它的登录保持不变。想用别的账号,先在 {name} 里切换账号,再回来重新连接。',
|
|
1673
|
+
accountChatgpt: 'ChatGPT 账号',
|
|
1674
|
+
accountApiKey: 'API 密钥',
|
|
1675
|
+
accountConsole: 'Anthropic Console',
|
|
1676
|
+
usage: '用量',
|
|
1677
|
+
usageLoading: '正在读取剩余额度…',
|
|
1678
|
+
usageFiveHour: '5 小时',
|
|
1679
|
+
usageWeek: '本周',
|
|
1680
|
+
usageWindow: '{hours} 小时',
|
|
1681
|
+
usageUsed: '已用 {percent}%',
|
|
1682
|
+
usageResets: '{time}重置',
|
|
1683
|
+
signIn: '登录',
|
|
1684
|
+
install: '安装',
|
|
1685
|
+
setUpKey: '设置',
|
|
1686
|
+
change: '更改',
|
|
1687
|
+
showInChat: '在对话中显示',
|
|
1688
|
+
showHint: '只有打开的智能体会显示在对话中。',
|
|
1689
|
+
failed: '没有成功,请重试。',
|
|
1690
|
+
format: 'API 格式',
|
|
1691
|
+
address: '地址',
|
|
1692
|
+
model: '模型',
|
|
1693
|
+
modelPlaceholder: '模型名,与服务中的写法一致',
|
|
1694
|
+
addModel: '添加模型',
|
|
1695
|
+
name: '名称',
|
|
1696
|
+
namePlaceholder: '聊天里显示的名字(留空则用模型名)',
|
|
1697
|
+
edit: '编辑',
|
|
1698
|
+
done: '完成',
|
|
1699
|
+
keySame: '留空则使用「{name}」的密钥',
|
|
1700
|
+
removeModel: '移除 {name}',
|
|
1701
|
+
efforts: '推理档位',
|
|
1702
|
+
effortStart: '起始档位',
|
|
1703
|
+
effortHint: '勾选这个模型支持的推理档位,聊天里只会出现这些档位。「自动」不发送推理参数,由服务决定。',
|
|
1704
|
+
effortLevels: { auto: '自动', off: '不思考', minimal: '极低', low: '低', medium: '中', high: '高', xhigh: '超高', max: '最高' },
|
|
1705
|
+
context: '上下文长度',
|
|
1706
|
+
contextHint: '单位是 token,以模型服务的文档为准。留空为 128K。',
|
|
1707
|
+
contextBad: '填一个整数,单位是 token,32,000 到 10,000,000 之间。',
|
|
1708
|
+
key: 'API 密钥',
|
|
1709
|
+
keyPlaceholder: '粘贴你的 API 密钥',
|
|
1710
|
+
keyKept: '尾号为 {last4} 的密钥(留空则保留)',
|
|
1711
|
+
byokNote: '每个模型都需要能看图:智能体会查看自己生成的画面。密钥只保存在这台电脑上,且只会发送给各自的服务。',
|
|
1712
|
+
byokRules: '它遵循的规则只来自项目文件夹里的 AGENTS.md(或 CLAUDE.md)。放在别处的,比如上层文件夹或智能体自己的设置目录里,都不会被读取。',
|
|
1713
|
+
save: '检查并保存',
|
|
1714
|
+
checkingKey: '正在检查…',
|
|
1715
|
+
cancel: '取消',
|
|
1716
|
+
mcpSummary: '你的 MCP 服务:{n} 个,其中 {on} 个在 OpenFilm 里使用',
|
|
1717
|
+
mcpManage: '选择',
|
|
1718
|
+
mcpDone: '完成',
|
|
1719
|
+
mcpNote: '你自己给 {agent} 添加的 MCP 服务,在 OpenFilm 里默认不使用,打开开关后才会使用。它自带的服务始终保留。',
|
|
1720
|
+
mcpAllow: '在 OpenFilm 里使用 {name}',
|
|
1721
|
+
skillsSummary: '你的 skill:{n} 个,其中 {on} 个在 OpenFilm 里使用',
|
|
1722
|
+
skillsNote: '你自己给 {agent} 装的 skill,在 OpenFilm 里默认不使用,这样每次做出的片子更稳定;打开开关后才会使用。它自带的 skill 始终保留。',
|
|
1723
|
+
skillsAllow: '在 OpenFilm 里使用 {name}',
|
|
1724
|
+
skillsUnfiltered: '{agent} 在 OpenFilm 里会使用你自己的全部 {n} 个 skill,和它自己的应用里一样。',
|
|
1725
|
+
mcpUnfiltered: '{agent} 在 OpenFilm 里会使用你自己的全部 {n} 个 MCP 服务,和它自己的应用里一样。',
|
|
1726
|
+
},
|
|
1727
|
+
developer: {
|
|
1728
|
+
playbackGroup: '播放',
|
|
1729
|
+
playbackStats: '显示播放统计',
|
|
1730
|
+
playbackStatsHint: '播放时在查看器角落显示每秒画出的影片帧数、屏幕每秒有几次没拿到新帧,以及当前是否在播放渲染好的片段。',
|
|
1731
|
+
intro: '用来弄清楚哪里出了问题,以及智能体到底做了什么、为什么这么做;这里的设置不会改变智能体的行为。',
|
|
1732
|
+
group: '每一轮',
|
|
1733
|
+
changes: '显示每一轮的改动',
|
|
1734
|
+
changesHint: '每条回复下面列出这一轮新增、删除或修改的文件,以及增减的行数。点开一个文件可以看到改动的行。',
|
|
1735
|
+
logs: '显示每一轮的日志',
|
|
1736
|
+
logsHint: '打开后,对话里每一轮都有“日志”按钮:提示词和所在会话、每次工具调用的输入和输出、每个提问和回答、这一轮怎么结束的,都按智能体发来的原样显示。',
|
|
1737
|
+
where: '不论是否打开,每一轮都会记录在项目的 .film/logs 文件夹里,只保存在这台电脑上。',
|
|
1738
|
+
releaseGroup: '发版',
|
|
1739
|
+
previewWhatsNew: '更新内容弹窗',
|
|
1740
|
+
previewWhatsNewHint: '按用户更新后看到的样子,显示 {version} 的更新内容。',
|
|
1741
|
+
preview: '预览',
|
|
1742
|
+
},
|
|
1743
|
+
shortcuts: {
|
|
1744
|
+
hint: "按键随操作系统而定,输入文字时暂停。选一个方案即可用其他剪辑软件的按键;在自定义方案里可以改任何一个键。",
|
|
1745
|
+
addMedia: "把选中的素材加到时间线",
|
|
1746
|
+
deselect: '取消选择',
|
|
1747
|
+
nudge: '将所选元素移动 1 px',
|
|
1748
|
+
nudgeFast: '将所选元素移动 10 px',
|
|
1749
|
+
editText: '编辑所选文字',
|
|
1750
|
+
commitText: '应用文字编辑',
|
|
1751
|
+
cancelText: '取消文字编辑 / 取消选择',
|
|
1752
|
+
splitModeAll: '分割工具下按住它点击:所有轨道都在这里切开',
|
|
1753
|
+
editModeSwap: '放下片段时按住:插到中间,后面的片段跟着后移',
|
|
1754
|
+
copyDrag: '按住它拖动片段:在松手处复制一份,原片段不动',
|
|
1755
|
+
customName: "自定义 {n}",
|
|
1756
|
+
scheme: "快捷键方案",
|
|
1757
|
+
restore: "恢复默认值",
|
|
1758
|
+
save: "保存",
|
|
1759
|
+
cancel: "取消",
|
|
1760
|
+
recording: "请按键…",
|
|
1761
|
+
change: "点击修改",
|
|
1762
|
+
editCopy: "点击后在副本里修改",
|
|
1763
|
+
none: "无",
|
|
1764
|
+
clear: "移除按键",
|
|
1765
|
+
replace: "替换",
|
|
1766
|
+
copied: "{from} 是内置方案,已复制到 {to},修改都保存在那里。",
|
|
1767
|
+
started: "{to} 从 {from} 的副本开始。",
|
|
1768
|
+
full: "三个自定义方案都已使用。请选择其中一个来修改按键。",
|
|
1769
|
+
conflict: "{keys} 已用于“{action}”。要替换吗?",
|
|
1770
|
+
fixed: "这些按键不能修改。",
|
|
1771
|
+
saveFailed: "无法保存快捷键:{error}",
|
|
1772
|
+
shuttleHold: "后退 / 前进一帧(按住停止键)",
|
|
1773
|
+
tabs: { timeline: "时间线", player: "播放器", basic: "基础", other: "其他" },
|
|
1774
|
+
/* the editor's actions (lib/keymap ACTIONS) */
|
|
1775
|
+
actions: {
|
|
1776
|
+
"split": "在播放头处分割",
|
|
1777
|
+
"split-all": "分割所有轨道",
|
|
1778
|
+
"select-mode": "选择工具",
|
|
1779
|
+
"split-mode": "分割工具",
|
|
1780
|
+
"ripple-start": "波纹裁剪开头",
|
|
1781
|
+
"ripple-end": "波纹裁剪结尾",
|
|
1782
|
+
"select-left": "向左全选",
|
|
1783
|
+
"select-right": "向右全选",
|
|
1784
|
+
"nudge-back": "片段左移一帧",
|
|
1785
|
+
"nudge-forward": "片段右移一帧",
|
|
1786
|
+
"toggle-magnet": "主轨磁吸开关",
|
|
1787
|
+
"toggle-snap": "吸附开关",
|
|
1788
|
+
"toggle-linkage": "联动开关",
|
|
1789
|
+
"toggle-preview-axis": "预览轴开关",
|
|
1790
|
+
"zoom-in": "时间轴放大",
|
|
1791
|
+
"zoom-out": "时间轴缩小",
|
|
1792
|
+
"zoom-reset": "重置缩放",
|
|
1793
|
+
"zoom-fit": "缩放到整片",
|
|
1794
|
+
"add-marker": "添加标记",
|
|
1795
|
+
"next-marker": "下一个标记",
|
|
1796
|
+
"prev-marker": "上一个标记",
|
|
1797
|
+
"speed": "片段变速",
|
|
1798
|
+
"detach-audio": "分离音频",
|
|
1799
|
+
"play-pause": "播放 / 暂停",
|
|
1800
|
+
"play-range": "从入点播放到出点",
|
|
1801
|
+
"loop": "循环播放",
|
|
1802
|
+
"shuttle-back": "倒放",
|
|
1803
|
+
"shuttle-stop": "停止",
|
|
1804
|
+
"shuttle-forward": "正放",
|
|
1805
|
+
"frame-back": "后退一帧",
|
|
1806
|
+
"frame-forward": "前进一帧",
|
|
1807
|
+
"jump-back": "后退 10 帧",
|
|
1808
|
+
"jump-forward": "前进 10 帧",
|
|
1809
|
+
"prev-cut": "上一个剪切点",
|
|
1810
|
+
"next-cut": "下一个剪切点",
|
|
1811
|
+
"start": "跳到开头",
|
|
1812
|
+
"end": "跳到结尾",
|
|
1813
|
+
"mark-in": "设入点",
|
|
1814
|
+
"mark-out": "设出点",
|
|
1815
|
+
"clear-range": "清除入点和出点",
|
|
1816
|
+
"range-clip": "以选中片段设入点和出点",
|
|
1817
|
+
"go-in": "跳到入点",
|
|
1818
|
+
"go-out": "跳到出点",
|
|
1819
|
+
"insert-source": "从素材预览插入",
|
|
1820
|
+
"overwrite-source": "从素材预览覆盖",
|
|
1821
|
+
"undo": "撤销",
|
|
1822
|
+
"redo": "重做",
|
|
1823
|
+
"cut": "剪切",
|
|
1824
|
+
"copy": "复制",
|
|
1825
|
+
"paste": "在播放头处粘贴",
|
|
1826
|
+
"duplicate": "创建副本",
|
|
1827
|
+
"remove": "删除",
|
|
1828
|
+
"ripple-delete": "波纹删除",
|
|
1829
|
+
"select-all": "全选",
|
|
1830
|
+
"copy-attrs": "复制属性",
|
|
1831
|
+
"paste-attrs": "粘贴属性",
|
|
1832
|
+
"refer": "添加到对话",
|
|
1833
|
+
},
|
|
1834
|
+
},
|
|
1835
|
+
providers: {
|
|
1836
|
+
desc: '配音、音乐、音效、文字稿、图片和视频从哪里来。即使不连接任何服务,OpenFilm 也能制作和编辑影片:等智能体需要素材时再连接即可。每种媒体具体用哪一个,在「服务」里选择。',
|
|
1837
|
+
groupRecommended: '推荐',
|
|
1838
|
+
groupMore: '更多服务商',
|
|
1839
|
+
connect: '连接',
|
|
1840
|
+
disconnect: '断开连接',
|
|
1841
|
+
connected: '已连接',
|
|
1842
|
+
and: '和',
|
|
1843
|
+
keyNote: '你的密钥直接向该服务付费。它只保存在这台电脑上,且只会发送给对应的服务。',
|
|
1844
|
+
getKey: '获取 {name} 密钥',
|
|
1845
|
+
key: '密钥',
|
|
1846
|
+
region: '区域(如 eastus)',
|
|
1847
|
+
azureNote: "配音。Azure 的每项服务各有自己的密钥和资源所在区域,两者都在资源的“密钥和终结点”页面里。",
|
|
1848
|
+
pasteKey: '粘贴你的 {name} API 密钥',
|
|
1849
|
+
save: '保存',
|
|
1850
|
+
cancel: '取消',
|
|
1851
|
+
keyEnding: '尾号为 {last4} 的密钥',
|
|
1852
|
+
useEnv: '使用环境变量 ${env} 里的密钥',
|
|
1853
|
+
own: {
|
|
1854
|
+
title: "自定义服务",
|
|
1855
|
+
note: "上面没列出的服务都可以加在这里,数量不限:本机运行的或线上的都行(你自己的声音、语音转写服务、没列出的 API),接口可以完全自定义。OpenFilm 不会自动调用它们:智能体读你写的说明来调用,密钥只留在这台电脑上,智能体看不到。也可以不加在这里,直接在对话里把服务告诉智能体;需要密钥的服务建议加在这里,密钥就不会出现在对话中。",
|
|
1856
|
+
add: "添加自定义服务",
|
|
1857
|
+
edit: "编辑",
|
|
1858
|
+
remove: "移除",
|
|
1859
|
+
name: "名称",
|
|
1860
|
+
namePlaceholder: "例如:我的声音",
|
|
1861
|
+
url: "地址",
|
|
1862
|
+
key: "密钥",
|
|
1863
|
+
keyOptional: "可选",
|
|
1864
|
+
keyKeep: "留空则保留尾号为 {last4} 的密钥",
|
|
1865
|
+
removeKey: "移除密钥",
|
|
1866
|
+
what: "说明",
|
|
1867
|
+
whatPlaceholder: "例如:用我的声音朗读文案:POST /tts,内容 {\"text\": \"…\"},返回 WAV。也可以只写 API 文档地址:https://…",
|
|
1868
|
+
},
|
|
1869
|
+
verbs: {
|
|
1870
|
+
tts: '配音',
|
|
1871
|
+
voice: '音色',
|
|
1872
|
+
music: '音乐',
|
|
1873
|
+
sfx: '音效',
|
|
1874
|
+
asr: '语音转写',
|
|
1875
|
+
image: '图片',
|
|
1876
|
+
'image-search': '图片搜索',
|
|
1877
|
+
video: '视频',
|
|
1878
|
+
translate: '字幕翻译',
|
|
1879
|
+
'web-search': '网页搜索',
|
|
1880
|
+
},
|
|
1881
|
+
},
|
|
1882
|
+
models: {
|
|
1883
|
+
desc: '每种媒体用哪个服务来生成:从已连接服务商的模型中选择。连接服务商后,会自动填补尚未设置的类型;你也可以在这里修改任意一项。',
|
|
1884
|
+
nothing: '尚未连接任何服务商。连接一个服务商即可选择它的模型。',
|
|
1885
|
+
goConnect: '连接服务商',
|
|
1886
|
+
none: '无',
|
|
1887
|
+
connectNamed: '连接 {names}',
|
|
1888
|
+
about: {
|
|
1889
|
+
tts: '朗读脚本,并寻找合适的音色',
|
|
1890
|
+
music: '根据描述生成配乐',
|
|
1891
|
+
sfx: '根据描述生成音效',
|
|
1892
|
+
asr: '逐字记录所说的内容,用于字幕',
|
|
1893
|
+
image: '根据描述生成图片',
|
|
1894
|
+
'image-search': '在网络上查找图片',
|
|
1895
|
+
video: '根据描述或图片生成视频片段',
|
|
1896
|
+
translate: '将字幕翻译成其他语言',
|
|
1897
|
+
'web-search': '搜索网页并读取页面内容',
|
|
1898
|
+
},
|
|
1899
|
+
},
|
|
1900
|
+
},
|
|
1901
|
+
};
|